Arduino, se ha convertido en la plataforma programable preferida por los Geeks de todo el mundo para el desarrollo de sus proyectos de robótica y control.
Las principales razones de su éxito se pueden resumir en los siguientes puntos:
Permite empezar a trabajar de forma inmediata y fácil de usar, no hace falta un programador caro (ni barato).
Es una plataforma hardware abierta. El circuito electrónico de la placa está a disposición del público bajo licencia CC, se puede estudiar y modificar sin permiso de nadie.
Es un sistema muy potente y flexible.
El lenguaje de programación es bastante sencillo.
Hay una comunidad enorme de gente haciendo cosas y compartiéndolas, se puede aprender mucho muy rápido.
Hay un montón de librerías para programar el comportamiento de casi cualquier cosa que quieras conectar a la placa.
Te lo puedes hacer tu mismo.http://www.arduino.cc/en/Reference/Board
En está página se describe cómo empezar, básicamente necesitas: Una placa Arduino (yo uso la UNO, cuesta unos 24 Euros) y un cable USB (El de la impresora) para programarla.
Enlace a la página de explica como empezar.
Lista de reproducción del curso de Arduino de Code Madrid
Lista de reproducción del curso Arduino desde Cero
La placa de Arduino UNO, tiene una serie de pines a los que se pueden conectar cosas. Para una descripción más detallada. Haz click en la imagen y te llevará a la página oficial de Arduino donde se describe como usar cada pin en detalle:
Vamos a explicar la función de cada pin, primero los más usados.
Pines básicos
GND: Masa. Hay tres pines de masa (GND) en la placa, todos los terminales de masa van conectados al polo - de la alimentación (normalmente pila). Cuando se conecta la placa con un circuito externo, hay que conectar la masa del circuito externo (el negativo) a uno de estos pines de forma obligatoria. Normalmente, todas las cosas que se conecten a la placa tienen que tener una masa común, es decir, los negativos de todas las alimentaciones de todos los circuitos hay que conectarlos siempre juntos.
5V: Sirve para dos cosas:
1- Proporciona 5V que se sacan del propio circuito de alimentación de la placa. Pero da muy poca corriente, se seuele usar para alimentar los sensores que funcionan a 5V y así nos ahorramos otra batería.
2- Sirve para alimentar la placa. La placa se puede alimentar de 4 maneras:
- A través del cable USB (Conector amarillo)
- A través de una batería, normalmente de 9V (Conector rosa). Aunque se admite un amplio rango de voltajes (ver especificación)
- A través del Pin de 5V. Se puede alimentar la placa conectando una fuente de tensión de 5V entre GND (negativo) y esl pin de 5 V
- A través del Pin de Vin (9V en la imagen). Se puede alimentar la placa conectando una bateria de, normalmente, 9V entre el pin Vin y GND (negativo). Se admite un amplio rango de voltajes de alimentación, (ver especificación).
9V o Vin (depende el modelo): Sirve para dos cosas:
1- Alimentar la placa: Conectando aquí el positivo de la batería (normalmente 9V) y el negativo a cualquier GND.
2- Toma directa a la batería: Si la batería se conecta a la placa con el conector rosa, este pin va conectado directamente al terminal positivo de la batería. Usado de esta manera el pin Vin nos da la corriente necesaria para alimentar pequeños motores, bombillas etc.
Pines del 2 al 13: Entradas y salidas digitales. Estos pines se pueden configurar como entrada (permiten recibir información del exterior) o salida (permiten enviar información al exterior). Pueden tener 2 valores de voltaje diferentes (con respecto a masa):
0 Voltios; se corresponde con el valor lógico 0 o LOW.
5 Voltios; se corresponde con el valor lógico 1 o HIGH.
Si queremos configurar un pin de estos, hay que escribir la instrucción pinMode(pin,mode) dentro de la función setup() del programa de la placa, y luego usa la instrucción digitalWrite(pin,value) para establecer el valor de la salida y digitalRead(pin) para leer el valor de una entrada. En el siguiente ejemplo se usan todas las funciones arriba mencionadas.
Pines del A0 al A5: Entradas analógicás. Sirven para conectar sensores que proporcionan un rango continuo de voltajes entre 0 y 5V en logar de solo dos valores como las entradas digitales. Cuando se lee el valor de una entrada analógicá mediante la función analogRead(pin) se obtiene un valor entre 0 y 1023 que se corresponde con el voltaje de la entrada, asignándose el valor 0 al voltaje 0V y el 1023 al voltaje 5V.
Al contrario que los pines digitales, los analógicos no hay que configurarlos dentro de la función setup()
Programa de ejemplo
/*
* Configuramos los pines de Arduino de la siguiente manera:
* Pin 13: Salida Cuando se escriba 1 (HIGH) en la salida, el voltaje
* de esta será de 5V y cuando se escriba un 0 (LOW)
* el voltaje de esta salida será de 0V.
* Pin 12: Entrada Cuando se conecte a 5 Voltios se
* leerá un 1 (HIGH) y cuando a 0 voltios un 0 (LOW).
*
* En la placa Arduino UNO, el pin 13 va conectado a un LED amarillo al lado
* del Pin, por lo que al poner la salida a 5V el led se encenderá.
*
* Para poner el pin 12 a 0 Voltios, basta conectar un cable del pin 12 a masa.
* Para poner el pin 12 a 5 Voltios basta conectar un cable del pin 12 al pin
* de la placa que da 5v
*/
void setup()
{
pinMode(13,OUTPUT);
pinMode(12,INPUT);
}
/*
* Repite de forma indefinida la siguiente secuencia de instrucciones:
*
* Si el valor de la entrada 12 es alto (HIGH);
* poner la salida 13 a nivel alto
* Y si no
* poner la salida 13 a nivel bajo
*
* En otras palabras:
*
* Si el voltaje de la entrada 12 es 5V, entonces, poner
* el voltaje de la salida 13 a 5V;
* En cualquier otro caso, poner el voltaje de la salida 13 a 0V
*/
void loop()
{
if(digitalRead(12) == HIGH) {
digitalWrite(13,HIGH);
} else {
digitalWrite(13,LOW);
}
}