Professional Documents
Culture Documents
Qu es Arduino?
Es una plataforma de prototipos electrnica. El hardware y software son muy fciles de usar. El Arduino siente. Puedes programarlo con Wiring y el Processing. Arduino puede ser autnomo o comunicar su software con el ordenador
Existen otras plataformas similares a Arduino como: Parallax Basic Stamp. Netmedia's BX-24. Phidgets. MIT's Handyboard.
Pero
Por qu Arduino?
Barato Multiplataforma. Entorno de programacin simple y claro. Cdigo abierto y software extensible. Diseo abierto y hardware extensible.
Tipos de Arduinos
Arduino Diecimila
Microcontrolador: Atmega168 Tiene 14 pines de entrada/salida 6 entradas analogicas. Oscilador de cuarzo 16 MHz. Conexin USB SRAM: 1 KB EEPROM: 512 bytes
Puede ser alimentado a travs de la conexin USB o suministro externo. El modo de alimentacin se define mediante PWR_SEL. Energa USB: Conectar jumper en los dos pines mas cercanos al USB Energa Externa: Conectar jumper en los dos pines mas cercanos al conector de alimentacin externa.
NOTA IMPORTANTE: SI EL ARDUINO DIECIMILA OPERA CON VOLTAJE INFERIOR A 7 V SU FUNCIONAMIENTO SE VUELVE INESTABLE.
Programacin: Software
Requisitos para instalar el Software Arduino: 1. Obtener una placa Arduino y un cable. 2. Descargar el entorno Arduino. 3. Instalar los drivers USB. 4. Conectar la placa. 5. Conectar un LED. 6. Ejecutar el entorno Arduino. 7. Subir un programa. 8. Buscar el Led que parpadea.
Si estas usando un Arduino USB, necesitars instalar los drivers para el chip FTDI de la placa. Estos pueden encontrarse en el directorio drivers/FTDI USB Drivers de la distribucin Arduino.
Selecciona Instalar desde una lista o ubicacin especificada (Avanzado) y haz click en siguiente.
Asegurate que Buscar el mejor driver en estas ubicaciones est marcado; desmarca Buscar dispositivos extrables; marca Incluir esta ubicacin en la bsqueda y navega a la ubicacin donde descomprimiste los drivers USB en el paso anterior. Haz click en siguiente.
El asistente buscar el driver y dir que se encontr USB Serial Converter. Haz click en finalizar.
Subir un programa
Abrir la rutina de ejemplo de parpadeo del LED: File > Sketchbook > Examples > Digital >Blink.
Seleccionar el dispositivo serie de la placa Arduino desde el menu Herramientas > Puerto Serie.
En Windows, este debera ser COM1 o COM2 para la placa serie Arduino, o COM3, COM4 o COM5 para la placa USB. Para descubrirlo, abrir el Administrador de Dispositivos de Windows (En la pestaa Hardware o en el Panel de Control de Sistema). Buscar un _USB Serial Port_ en la seccin Puertos; esa es la placa Arduino.
Ahora, simplemente haz click en el botn _Upload_ del entorno. Espera unos pocos segundos (deberas ver los LEDs Rx y Tx de la placa iluminndose). Si la carga es correcta, el mensaje _Done uploading_ aparacer en la barra de estado.
Save
Serial Monitor
Tab Menu
Burn Bootloader
Funcin setup() La funcin setup debera contener la declaracin de cualquier variable al comienzo del programa. Ejemplo: void setup() { pinMode(pin, OUTPUT); //ajusta 'pin' como salida }
Funcion loop() La funcin loop se ejecuta a continuacin e incluye el cdigo que se ejecuta continuamente leyendo entradas, activando salidas, etc. Esta funcin es el ncleo de todos los programas Arduino y hace la mayor parte del trabajo.
Ejemplo: void loop() { digitalWrite(pin, HIGH); //Activa 'pin' delay(1000); //espera un segundo digitalWrite(pin, LOW); //Desactiva 'pin' delay(1000); //espera un segundo }
Smbolo
Llaves { }
Descripcion
Definen el comienzo y el final de bloques de funcin y bloques de declaraciones como void loop() y sentencias for e if. Un punto y coma debe usarse al final de cada declaracin y separa los elementos del programa.
Ejemplo
void loop() { statements; }
Punto y coma
int x = 13;
Smbolo
Bloques de comentarios /* .. */
Descripcin
Son reas de texto ignoradas por el programa y se usan para grandes descripciones de cdigo o comentarios que ayudan a otras personas a entender partes del programa Proporcionan ms informacin sobre qu lleva la declaracin o proporcionar un recordatorio en el futuro.
Ejemplo
/* Este es un bloque de comentario encerrado no olvides cerrar el comentario tienen que estar balanceados! */
Comentarios de lnea
//
Smbolo
Variables
Tipos de datos
Descripcin Almacena un valor numrico de 8 bits sin puntos decimales. Tienen un rango de 0 a 255 Datos primarios para almacenamiento de nmeros sin puntos decimales y almacenan un valor de 16 bits con un rango de -32,768 a 32,767
int
Tipos de datos
Tipos de Datos
long
Descripcin
Tipo de datos de tamao extendido para enteros largos, sin puntos decimales, almacenados en un valor de 32 bits con un rango de -2,146,483,648 a 2,147,483,647 . Los nmeros en punto flotante tienen mayor resolucin que los enteros y se almacenan como valor de 32 bits con un rango de 3.4028235E+38 a 3.4028235E+38.
Ejemplo
long someVariable = 90000;
float
Tipos de datos
Descripcin
Ejemplo
Es una coleccin de int myArray[5]; valores que son accedidos con un ndice numrico
Aritmtica en el Arduino
Los operadores aritmticos incluyen suma, resta, multiplicacin y divisin. Ejemplo: y = y+3; x = x-7; i = j*6; r = r/5;
Asignaciones compuestas
Las asignaciones compuestas combinan una operacin aritmtica con una asignacin de variable. Ejemplo: x++; //lo mismo que x = x+1 x--; //lo mismo que x = x-1 x += y; //lo mismo que x = x+y x -= y; //lo mismo que x = x-y x *= y; //lo mismo que x = x*y x /= y; //lo mismo que x = x/y
Operadores de comparacin
Su principal funcin es determinar si una condicin especfica es cierta. Ejemplo: x == y; //x es igual a y x != y; //x no es igual a y x < y; //x es menor que y x > y; //x es mayor que y x <= y; //x es menor o igual que y x >= y; //x es mayor o igual que y
Operadores lgicos
Arduino usa tres operadores lgicos que son: AND, OR y NOT. Devuelven generalmente TRUE o FALSE. Ejemplo:
//AND lgico: if(x>0 && x<5) //verdadero slo si las dos expresiones son ciertas //OR lgico: if(x>0 || y>0) //verdadero si al menos una expresin es cierta //NOT lgico: if(!(x>0)) //verdadero slo si la expresin es falsa
Constantes
Descripcin
True / False Son constantes Booleanas. FALSE=0 TRUE=1 Defines los niveles lgicos de los puertos digitales. HIGH=5 Volts LOW=0 Volts. Usadas con la funcin pinMode() para definir el modo de un pin digital como INPUT u OUTPUT.
Ejemplo
if(b == TRUE) { doSomething; } digitalWrite(13, HIGH);
high/low
input/output
pinMode(13, OUTPUT);
Control de Flujo
Descripcin
if Comprueban si cierta condicin ha sido alcanzada y ejecutan todas las sentencias dentro de las llaves si la declaracin es cierta. Si es falsa el programa ignora la sentencia. . else else puede preceder a otra comprobacin if, por lo que mltiples y mutuas comprobaciones exclusivas pueden ejecutarse al mismo tiempo
Ejemplo
if(someVariable ?? value) { doSomething; }
If
Control de Flujo
Descripcin for Repite un bloque de declaraciones encerradas en llaves un nmero especfico de veces Este bucle se repetir continuamente e infinitamente hasta que la expresin dentro del parntesis se vuelva falsa
while
Control de Flujo
Descripcin do. . . while Bucle que trabaja de la misma forma que el bucle while con la excepcin de que la condicin es testeada al final del bucle, por lo que el bucle do. . . while siempre se ejecutar al menos una vez
Ejemplo do { x = readSensors(); //asigna el valor de readSensors() a x delay(50); //pausa de 50 milisegundos }while(x < 100); //repite si x es menor que 100
Tiempo
delay(ms) Pausa tu programa por la cantidad de tiempo especificada en milisegundos, donde 1000 es igual a 1 segundo. delay(1000); //espera por un segundo
Tiempo
millis() Devuelve el nmero de milisegundos desde que la placa Arduino empez a ejecutar el programa actual como un valor long sin signo. value = millis(); //ajusta 'value' igual a millis()
Nota: Este nmero se desbordar (resetear de nuevo a cero), despus de aproximadamente 9 horas.
Comunicacin: Serial
Serial.begin(rate) Inicializa el puerto serial y asigna una tasa de baudios para la transmisin . void setup() { Serial.begin(9600); //abre el puerto serie //ajusta la tasa de datos a 9600 bps }
Nota: Cuando se usa la comunicacin serie, los pines digitales 0 (Rx) y 1 (Tx) no pueden ser usados al mismo tiempo.
Comunicacin: Serial
Serial.println(data) Imprime datos al puerto serie, seguido de un retorno de carro y avance de lnea automticos. Este comando toma la misma forma que Serial.print(), pero es ms fcil para leer datos en el Serial Monitor. Serial.println(analogValue); //envia el valor de 'analogValue' //Ejemplo de aplicacin void setup() { Serial.begin(9600); //ajusta al serie a 9600 bps } void loop() { Serial.println(analogRead(0)); //envia valor analogico delay(1000); //pausa por 1 segundo }