Arduino
Es una plataforma electronica abierta para la creacion de prototipos basada en software y hardware flexibles y faciles de usar.
Tipos de Arduino
Arduino Uno
·
Microcontrolador: ATmega328
·
Voltaje de funcionamiento 5V
·
Alimentación: 7-12V
·
Voltaje máximo de entrada 20V
·
Pines digitales I/O 14 (de los cuales 6 dan
salida PWM)
·
Corriente DC por I/O Pin 40 mA
·
Corriente DC para el pin 3.3V 50 mA
·
Memoria Flash: 32 KB (ATmega328) y 0.5 KB usados
por el bootloader
·
SRAM: 2 KB (ATmega328)
·
EEPROM 1 KB (ATmega328)
·
Velocidad de reloj 16 MHz
Arduino Leonardo
·
Micro controlado: ATmega32u4
·
Voltaje de operación: 5V
·
Voltaje de entrada: 7-12V
·
Máximo de entrada: 20V
·
Pines digitales I/O 20 (de los cuales 7 dan
salida PWM)
·
Pines de entrada analógica12
·
Corriente DC por I/O Pin 40mA
·
Corriente DC para el pin 3.3V 50 mA
·
Memoria
Flash: 32 KB
·
SRAM: 3.3 KB
·
EEPROM:
1 KB
·
Velocidad de reloj: 16MHz
Arduino Due
§ Microcontrolador:
AT91SAM3X8E
§ Voltaje
de operación: 3,3V
§ Voltaje
de entrada (recomendado): 7-12V
§ Límites
de voltaje: 6-20V
§ Pines
I/O: 54 (12 con PWM)
§ Entradas
analógicas: 12
§ Salidas
analógicas: 2 (DAC)
§ Salida
máxima I/O: 130mA
§ Corriente
máxima: 800mA
§ SRAM:
96 KB (64 + 32 KB)
§ Memoria
para programa: 512 KB
§ Velocidad:
84 MHz
Arduino Yun
§ Procesador:
Atheros AR9331
§ Arquitectura:
MIPS @400MHz
§ Alimentación:
3.3V
§ Puerto
Ethernet: IEEE 802.3 10/100Mbit/s
§ Conexión
WiFi: IEEE 802.11b/g/n
§ USB
Type-A: 2.0 Host/Device
§ Lector
de tarjetas: Micro-SD
§ RAM:
64 MB DDR2
§ Memoria
Flash: 32 MB
§ Soporte
para PoE tipo 802.3af
Arduino Tre
§ Procesador Texas
Instruments Sitara AM335x ARM Cortex-A8 processor corriendo a 1GHz 512Mb
de RAM
§ HDMI
(HD)
§ audio
stereo
§ USB
§ Ethernet
§ tarjeta
microSD como almacenamiento externo
Arduino Micro
§ Dimensiones:
48x18mm
§ Peso:
6.5g
§ Microcontrolador:
ATmega32u4
§ Funcionamiento:
5V
§ Alimentación
recomedada: 7-12V
§ Limites
de entrada (max): 6-20V
§ Pines
I/O totales: 20
§ Pines
PWM: 7
§ Pines
analógicos: 12
§ Imax
de los pines I/O: 40 mA
§ Corriente
máxima del pin 3.3V: 50 mA
§ Memoria
flash: 32 KB (4 KB usados por el bootloade)
§ SRAM:
2.5 KB
§ EEPROM:
1 KB
§ Velocidad:
16 MHz
Arduino Robot
§ Microcontrolador:
ATmega32u
§ Voltaje
de funcionamiento: 5V
§ Pines
digitales PWM: 6
§ Pines
de entrada analógica: 4
§ Corriente
DC por I/O Pin: 40 mA
§ Botones:
5
§ Potenciómetro
conectado a una entrada analógica
§ Pantalla
LCD color Bajo comunicación SPI
§ Zócalo
micro SD para terjetas en formato FAT16
§ Altavoz de 8 Ohms
§ Brújula
digital da la desviación respecto al Norte en grados
§ Memoria
Flash 32 KB (ATmega328) 4 KB usados por el
bootloader
§ SRAM 2.5 KB (ATmega32u4)
§ EEPROM:
1 KB (ATmega32u4)
§ Velocidad de reloj 16 MHz
Arduino Esplora
§ Microcontrolador:
ATmega32u4
§ Alimentación:
5V
§ Memoria
Flash: 32 KB (4 KB usados por el bootloader)
§ SRAM:
2.5 KB
§ EEPROM:
1 KBç
§ Velocidad
de reloj: 16 MHz
Arduino Mega ADK
§ Microcontrolador:
ATmega2560
§ Alimentación:
5V
§ Entrada:
7-12V
§ Límites
(max): 5.5-16V
§ Pines
digitales: 54 (14 con PWM)
§ Pines
analógicos: 16
§ Corriente
por pin: 40 mA
§ Corriente
sobre pin 3,3V: 50 mA
§ Memroia
Flash (programa): 256 KB (8 KB usados para el bootloader)
§ SRAM:
8 KB
§ EEPROM:
4 KB
§ Reloj:
16 MHz
Arduino Ethernet
§ Microcontrolador
: ATmega328
§ Voltaje
de funcionamiento: 5V
§ Alimentación:
7-12V
§ Voltaje
máximo de entrada: 20V
§ Pines
digitales I/O 14 (de los cuales 6 dan salida PWM)
§ Pines
de entrada analógica 6
§ Corriente
DC por I/O Pin 40 mA
§ Corriente
DC para el pin 3.3 50 mA
§ Memoria
Flash: 32 KB 0.5 KB usados por el bootloader
§ SRAM:
2 KB (ATmega328)
§ EEPROM:
1 KB (ATmega328)
§ Velocidad
de reloj 16 MHz
Arduino Mega 2560
§ Microcontrolador: ATmega2560
§ Tensión
de alimentación: 5V
§ Tensión
de entrada
§ recomendada: 7-12V
§ Límite
de entrada: 6-20V
§ Pines
digitales: 54 (14 con PWM)
§ Entradas
analógicas: 16
§ Corriente
máxima por pin: 40 mA
§ Corriente
máxima para el pin 3.3V: 50 mA
§ Memoria
flash: 256 KB
§ SRAM: 8
KB
§ EEPROM: 4
KB
§ Velocidad
de reloj: 16 MHz
Arduino Mini
§ Chip
ATmega328 a 16MHz con cristal de cuarzo externo (toleracia: 0.5%)
§ Auto-reset
§ Regulador
5V integrado
§ Max:
150mA por salida
§ Protección
de sobrecarga
§ Protección
contra inversión de polaridad
§ Entrada
DC de 5V hasta 12V
§ LED
de power y estado
LiYPad Arduino USB
§ Micro
controlador: ATmega328V
§ Tensión
de alimentación 2.7-5.5 V
§ Tensión
de entrada: 2.7-5.5 V
§ Pines
digitales: 14
§ Entradas
analógicas: 6
§ Corriente
máxima por pin: 40 mA
§ Memorial
flash: 16 KB (2 KB para bootloader)
§ SRAM: 1KB
§ EEPROM:
512 bytes
§ Velocidad
de reloj: 8 MHz
LilyPad Arduino
§ Microcontrolador
: ATmega168V o ATmega328V
§ Voltaje
de funcionamiento 2.7-5.5V
§ Voltaje
de entrada 2.7-5.5 V
§ Pines
E/S Digitales 14 (de las cuales 6 proporcionan salida PWM)
§ Pines
Entradas Analógicas Input
§ Pins
6
§ Intensidad
por pin 40 mA
§ Memora
Flash 16 KB (de las
§ cuales
2 KB las usa el gestor de arranque(bootloader))
§ SRAM 1 KB
§ EEPROM
512 bytes
§ Velocidad
de reloj 8 MHz
Arduino Nano
§ Microcontrolador:
ATmega328
§ Voltage
de funcionamiento 5V
§ Alimentación
: 7-9V
§ Pines
digitales I/O 14 (de los cuales 6 dan salida PWM)
§ Pines
de entrada analógica 8
§ Corriente
DC por I/O Pin 40 mA
§ Corriente
DC para el pin 3.3 50 mA
§ Memoria
Flash 32 KB (ATmega328)
§ SRAM 2 KB (ATmega328)
§ EEPROM
1 KB (ATmega328)
§ Velocidad
de reloj 16 MHz
Arduino Pro Mini
§ Chip
ATmega328 a 8MHz con cristal de cuarzo externo (toleracia: 0.5%)
§ Auto-reset
§ Alimentación:
3.3V a 12V
§ Max:
150mA por salida
§ Protección
de sobrecarga
§ Protección
contra inversión de polaridad
§ LED
de power y estado
Arduino Pro
§ Microcontrolador
ATmega328 con cristal de 16MHz.
§ Pines
laterales de conexión del UART
§ Regulador
5V incorporado
§ Protegido
contra inversión de polaridad
§ Alimentación:
DC de 5V a 12V
§ Protección
en caso de cortocircuito
§ Conmutador
de ON/OFF
Arduino Fio
§ ATmega328V
a 8MHz
§ Incluye
el Arduino Bootloader
§ Zócalo
para XBee (módulo xbee no incluido)
§ Compatible
con baterías de Litio Polímeto
§ Cargador
LiPo MAX1555 integrado
§ botón
de RESET
§ Interruptor
On/Off integrado
§ Indicadores
LED: Status/Charge/RSSI
Arduino GSM Shield
§ Alimentación:
5V (suministrados desde la placa Arduino)
§ Conectividad:
Redes GSM y GPRS
§ Funcionalidades:
SMS, llamadas telefónicas, datos GPRS
§ Conexión
Arduino con Softserial
§ Conector
de antena SMA hembra
§ Incluye
una tarjeta SIM de Movistar/Bluevia
Arduino WifiShield
§ Trabaja
a 5V (suministrados por Arduino)
§ Conexión
802.11b/g
§ Seguridad
WEP y WPA2
§ Comunicación
con Arduino por SPI
§ Zócalo
micro SD
§ Pines
ICSP
§ Conector
Mini-USB para actualizar el firmware WiFi
Arduino Wireless SD Shield
La placa Arduino se comunica con
la micro-SD utilizando el bus SPI. Esto se encuentra en los pines
digitales 11, 12 y 13 en el modelo UNO y en los pines 50, 51 y 52 del modelo
MEGA. En ambas placas el pin 4 para la micro-SD.
Arduino Motor Shield
Sencillo control de los motores
DC con un pin digital para el sentido de giro, un pin PWM para la velocidad, un
pin digital para el freno (desconectable) y un pin analógico para leer el
consumo del motor (desconectable).
Arduino Proto Shield
Shield con pistas de cobre y
agujeros soldables para que montes tus prototipos y los acoples directamente a
tu Arduino UNO o Mega ADK como si de un Shield comercial se tratara.
Cuenta con espacios para 2 LEDs,
un pulsador, un IC de 16 patillas, un IC SMD de 14 patillas y una amplia zona
para soldar componentes.
Modulos
Modulo 4D.- Permitte conectar pantallas con tecnologia 4D al arduino por medio del puerto serial.
Modulo GPS/GPRS/GSM.- Basado en un modulo cuatribandaSIM908, incorpora un receptor GPS y conectividad via GSM para comunicación.
Modulo GSM.- Capaz de enviar y recibir SMS, realizar y recibir llamadas de voz y datos por medio de una tarjeta SIM de cualquier operador de telefonía.
Modulo TFT Touch.- Con una pantalla tactil de 2.8 pulgadas, puede ser utilizado para proyectos que requieran de salida gráfica.
Modulo Solar Charger.- Permite alimentar al Arduino con una bateria y recargarla al mismo tiempo con un panel solar.
Modulo MP3.- Permite convertir al Arduino en un completo reproductor de archivos MP3 y cuenta con un zocalo para tarjetas microSD.
Modulo WiFi SD.- Permite la conectividad inalambrica y dispone de un zocalo para tarjetas MicroSD.
Modulo USB.- Añade un puerto USB para poder tener conectividad al Arduino con cualquier dispositivo USB.
Modulo Ethernet.- Permite conectar el Arduino a una red cableada a traves de un puerto ethernet.
Funciones
Los programas de arduino tienen los mismo componentes
que un lenguaje de programación convencional y moderno, tales como control de
flujo, ciclos, comentarios, operadores aritméticos y operadores lógicos, e
incluso operadores binarios.
Para iniciar un programa en arduino se utiliza la
función setup(), la cual se utiliza para iniciar variables, establecer estados
de los pines etc.. Cabe mencionar que dicha función solo se ejecuta una vez.
Después de declarar la funcion setup() se utiliza la
función loop() para controlar la placa.
Al igual que en los lenguajes de programación de alto
nivel, arduino te permite utilizar estructuras de control.
En el caso de la sintaxis usada en arduino, la
encontramos muy parecida a los lenguajes de alto nivel, utilizando:
● punto y coma “;” para finalizar instrucciones
● los braces “{}”
● #define para definir nombres de constantes, y por último
● #include para incluir librerías externas.
También encontramos el operador de puntero (referencia y dereferencia).
● punto y coma “;” para finalizar instrucciones
● los braces “{}”
● #define para definir nombres de constantes, y por último
● #include para incluir librerías externas.
También encontramos el operador de puntero (referencia y dereferencia).
Podemos usar constantes, que facilitan la lectura del codigo.
Se pueden dividir las constantes en grupos:
● Las que definen niveles lógicos (true
and false)
● Las que definen los niveles de los
pines (HIGH y LOW)
● Las que definen los pines digitales
(INPUT y OUTPUT)
Encontramos que utiliza tipos de datos primitivos
necesarios para realizar operaciones básicas en nuestro programa. Algo
interesante que encontramos es que a diferencia de Java y C++, entre algunos
otros lenguajes de alto nivel, en arduino se implementa el tipo de dato:
Word
El cual almacena sin signo 16 bits, desde 0 a 65535.
Igual como un entero sin signo.
Ejemplo: word w = 10000;
Como programadores sabemos que difícilmente nuestros
tipos de datos siempre serán compatibles con las operaciones que nos toque
realizar en tiempo de ejecución, por lo que necesitamos que el lenguaje nos de
la libertad de convertir nuestros tipos de datos, para ello arduino nos brinda
funciones de conversión (to cast) tales como:
- · char()
- · byte()
- · int()
- · word()
- · long()
- · float()
Estas funciones reciben como parámetro un valor de
cualquier tipo y lo convierten a su respectivo.
También nos brinda definir el alcance de variables y
calificadores, para determinar el acceso de los métodos a las variables y como
el compilador las tratará, aquí podemos encontrar cosas diferentes a lo
convencional (const, static, scope variables for each method or function) como:
·
volatile
Este es un calificador para indicar que su valor puede
cambiar por algo más allá del control del código de la sección en la que
aparece.
Una de las utilidades de arduino es el operador
sizeof() que nos permite obtener el numero de bytes que ocupa una variable o un
arreglo.
Revisando la documentación oficial nos encontramos que
contiene funciones básicas de entrada y de salida (Input and Output) tanto
digital y análogo.
Enseguida explicaremos algunas de estas funciones.
-En el caso de las funciones de I/O digital tenemos
-En el caso de las funciones de I/O digital tenemos
● pinMode(): Que nos permite configurar
un pin, para que se comporte como entrada o salida.
● digitalWrite(): Escribe un valor hacia
un pin digital (HIGH o LOW)
● digitalRead(): Lee el valor de un pin
digital.
-En el caso de las funciones de I/O análogo encontramos
la función analogReference() que configura el voltaje de referencia utilizado
por la entrada analógica. Tenemos tres opciones:
● DEFAULT: Valor por defecto (5volts en placas de 5V y 3.3volts en placas de 3.3V)
● INTERNAL
● EXTERNAL
● DEFAULT: Valor por defecto (5volts en placas de 5V y 3.3volts en placas de 3.3V)
● INTERNAL
● EXTERNAL
Tambien encontramos funciones avanzadas de Entrada y
Salida como son:
● Tone(): Genera una onda cuadrada de la frecuencia
especificada.
● NoTone(): Detiene la señal de la onda cuadrada. En caso de que no se genere ningun sonido, esta función no tiene efecto.
● shiftOut(): Desplaza un byte de datos bit a bit. Empieza desde el bit mas significante o el menos significante.
● shiftIn(): Desplaza un byte de datos un bit a la vez.
● pulseIn(): Lee un pulso en un pin.
● NoTone(): Detiene la señal de la onda cuadrada. En caso de que no se genere ningun sonido, esta función no tiene efecto.
● shiftOut(): Desplaza un byte de datos bit a bit. Empieza desde el bit mas significante o el menos significante.
● shiftIn(): Desplaza un byte de datos un bit a la vez.
● pulseIn(): Lee un pulso en un pin.
Nos encontramos también que contiene funciones para
medir el tiempo y usar funciones matemáticas tales como trigonométricas y
funciones básicas como min(), max(), abs(), entre otras.
Algo muy interesante que encontramos en las funciones
fué:
interrupts() y
noInterrupts()
Las cuales son funciones útiles ya que podemos llamar
noInterrupts() para ejecutar sin ser interrumpidas nuestras líneas de código dentro
de una determinada sección hasta que se indiqué un interrupt(). Se realiza un
proceso crítico y tal como en los sistemas operativos comunes, realizan
adquisición de locks para realizar un proceso crítico y soltarlo hasta que
termine. Lo cual podemos utilizar para evitar deadlocks.
Ejemplos Basicos
Código mínimo necesario para comenzar a compilar en un
boceto de arduino:
- setup () method
- loop ()method
Setup () method: es
llamada cuando se inicia la estructura de un programa de arduino, se usa para
iniciar variables, modes, pin, empezar a utilizar las librerías, etc. La
función setup solo se ejecutara una vez, después de cada arranque o reinicio de
la placa de arduino.
Despues de creada la función setup, la función loop realiza
lo que su nombre indica, loops de forma consecutica lo que permite al programa
cambiar y responder mientras se ejecuta. La seecion del código se utiliza para
controlar activamente la placa del arduino.
Código necesario para comenzar una estructura de programa de
arduino o sketch
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Blink
Este ejemplo muestra los comandos necesarios para encender o
apagar un led.
Lo primero que se debe de hacer es inicializar el pin 13
como un pin de salida con la línea:
Void setup () {
pinMode(13,
OUTPUT);
}
En el main loop se enciende el led con la línea:
Void
loop () {
digitalWrite(13,
HIGH);
}
y para apagar con la línea:
digitalWrite(13, LOW);
Digital Read
Serial
Muestra como supervisar el estado de un switch mediante la comunicación
en serie entre su arduino y el ordenador atraves de USB.
La primer cosa que hay que hacer es el setup () function es
comenzar la comunicaciones en serie 9600
bits de datos por segundo con la línea:
Serial.begin(9600);
Después inicializar el pin digital 2, el pin leerá
la salida del botón como una entrada:
pinMode(2,INPUT);
Ahora que su configuración se ha completado, Se
trata de una entrada digital, lo que significa que el interruptor sólo puede
estar en cualquiera de los dos en estado activo ( visto por el Arduino como un
" 1 " , o HIGH ) o un estado de apagado ( visto por el Arduino como
un " 0 " , o BAJO ) , sin nada en medio.
Lo primero que hay que hacer en el bucle
principal del programa es establecer una variable para contener la información
que viene de su conmutador. Dado que la información que viene del interruptor
será un " 1 " o un "0 " , se puede utilizar un tipo de datos
int :
int
sensorValue = digitalRead ( 2 );
Una vez que el Arduino ha leído la entrada ,
hacer que imprima esta información a la computadora como un valor decimal.
Usted puede hacer esto con el comando
Serial.println () en la última línea de
código:
Serial.println ( sensorValue );
Fading
La función analogWrite () que va a utilizar en el
main loop de su código requiere dos
argumentos: uno que cuenta la función a que pin va escribir, y uno que indica
cuál es el valor de PWM para escribir.
El valor PWM se ajusta mediante una variable
llamada brightness. Cada vez a través del bucle, aumenta por el valor de la
variable fadeAmount .
/*
Fade
This example shows how to fade an LED on pin 9
using the analogWrite() function.
This example code is in the public domain.
*/
int led = 9; // the pin that the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:
void setup() {
// declare pin 9 to be an output:
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// set the brightness of pin 9:
analogWrite(led, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
Fade
This example shows how to fade an LED on pin 9
using the analogWrite() function.
This example code is in the public domain.
*/
int led = 9; // the pin that the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:
void setup() {
// declare pin 9 to be an output:
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// set the brightness of pin 9:
analogWrite(led, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness == 0 || brightness == 255) {
fadeAmount = -fadeAmount ;
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
Pin();
Configura el pin especificado
a comportarse ya sea como una entrada o una salida.
void setup()
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
Tutoriales
Link : http://arduino.cc/es/Tutorial/HomePage
Referencias
http://www.bricogeek.com/shop/53-shields-arduino
http://arduino.cc/en/Main/Products
0 comentarios:
Publicar un comentario