Arduino es una plataforma open-hardware basada en una sencilla placa con entradas y salidas (E/S), analógicas y digitales,
Su corazón es el microcontrolador Atmega8, un chip sencillo y de bajo coste que permite el desarrollo de múltiples diseños.
Al ser open-hardware tanto su diseño como su distribución es libre, puede utilizarse libremente para desarrollar cualquier tipo de proyecto sin tener que adquirir ningún tipo de licencia.
(Arduino UNO)
Tiene:
– 14 pines de entrada/salida digital (de los cuales 6 pueden ser usados como salidas PWM),
– 6 entradas analógicas,
– una conexión USB,
– un conector para alimentación,
– un botón de reset
COMENZANDO CON ARDUINO
1.- Descargar el entorno Arduino.
2.-Instalar los drivers USB.
3.Conectar la placa.
Para programar la placa Arduino necesitas el entorno Arduino. Descarga la última versión desde http://www.arduino.cc/en/Main/Software
La última versión de los drivers se puede encontrar en http://www.ftdichip.com/Drivers/ VCP.htm.
Se puede alimentar la placa desde el puerto USB (bueno para controlar dispositivos de baja potencia como LEDs). Para alimentar la placa desde una fuente externa (6-12 V).
En cualquier caso, conecta la placa a un puerto USB de tu ordenador.
ESTRUCTURA DEL LENGUAJE DE PROGRAMACIÓN ARDUINO
1.- Organizado en al menos, dos funciones
void setup()
{
Declaraciones;
}
void loop()
{
Declaraciones;
}
2.- Ambas son necesarias para que el programa funcione
3.-Se puede incluir una sección de declaración de funciones
EN UN PROGRAMA PUEDE HABER:
– INSTRUCCIONES
– FUNCIONES
– DEFINICIÓN DE VARIABLES
INSTRUCCIONES DE E/S DIGITALES
– HAY 14 PINES DE E/S DIGITALES NUMERADOS DEL 0 AL 13
– AL SER DIGITALES, LOS VALORES QUE SE LEEN Y/O ESCRIBEN SON 0 Y 1
– INSTRUCCIONES
– POSIBLES VALORES
pinMode(pin,modo)
digitalRead(pin)
digitalWrite(pin, valor)
– pin, entre 0 y 13
– modo, entre INPUT y OUTPUT
– valor, entre HIGH y LOW
INSTRUCCIONES DE E/S ANALÓGICAS
– HAY 6 PINES DE E/S DIGITALES NUMERADOS DEL A0 AL A5
– AL SER ANALÓGICOS, SIEMPRE SON DE LECTURA (NO NECESITA
LA INSTRUCCIÓN pinMode)
– INSTRUCCIONES
analogRead(pin)
analogWrite(pinPWM, valor)
– pinPWM, a elegir entre
3, 5, 6, 9, 10 y 11
– valor, entre 0 y 255
– pin, entre 0 y 5
– el valor que devuelve está entre 0 y 1023
PIN PWM (MODULACIÓN POR ANCHO DE PULSO)
– HAY SEIS PINS PWM, 3, 5, 6, 9, 10 Y 11
– POSIBLES VALORES PARA LA INSTRUCCIÓN analogWrite(pinPWM, valor)
Valor 0 -> salida de 0 voltios en el pin especificado;
Valor de 255 -> salida de 5 voltios de salida en el pin especificado.
Valores entre 0 y 255, el pin saca
tensiones entre 0 y 5 voltios
– valor de 64 mantiene 0 voltios ¾ partes del tiempo y 5 voltios ¼ del tiempo;
– valor de 128 mantiene 0 voltios la mitad del tiempo y 5 voltios la otra mitad,
– valor de 192 mantiene 0 voltios ¼ del tiempo y 5 voltios ¾ partes del tiempo.
int led = 10; //define el pin 10 como 'led'
int analog = 0; // define el pin 0 como 'analog'
int valor; // define la variable 'valor'
void setup() { //no es necesario configurar entradas y salidas
void loop()
{
valor =analogRead(analog); //lee el pin 0 y lo asocia a
//la variable valor
valor /= 4; //divide valor entre 4 y lo reasigna a valor
analogWrite(led, value); // escribe en el pin10 valor
}
EJEMPLO 1 DE PROGRAMA
ELEMENTOS DEL LENGUAJE
– llaves { }
void loop ()
{
Bloque de sentencias;
}
– punto y coma ;
– bloques de comentarios /* */
/* este sería un ejemplo de
comentario que continúa en
otras líneas*/
– comentarios de una sola línea //
int contador = 0; //declaro la var contador y la inicializo a cero
int tiempo=200; int n; // Declaración inicial
void setup()
{ //comienza la configuracion
for (n=5;n< 9;n++)
{
pinMode (n, OUTPUT);
}
}
/*A continuación defino una función llamada secuencia
Que será invocada por loop de manera continua */
void secuencia()
{
for (n=5;n< 9;n++)
{
digitalWrite (n, HIGH); //activa el pin n
delay (tiempo); //cuenta 200 milisegundos
digitalWrite (n, LOW); //desactiva el pin n
delay (tiempo); //cuenta 200 milisegundos
}
}
void loop()
{
secuencia();
}
EJEMPLO 2 DE PROGRAMA
– variables y declaración de variables
int contador = 0;
– Tipos de variables:
byte (entre 0 y 255 sin signo y sin coma decimal)
byte unaVariable=0;
int (entre 32767 y 32767, sin coma decimal, con signo.)
int saldoCuenta=0;
long (entre 2147483647 y 2147483647 sin coma decimal)
long gastosGasolina= – 3541668;
float (entre 3.4028235 · 1038 y 3.4028235 · 1038 con coma decimal )
float costeReparación= 354.16;
IF (condición)
{
Instrucciones;
}
ELSE
{
Instrucciones;
}
FOR (inicialización; condición; expresión)
{
Instrucciones;
}
WHILE (condición) { sentencias;}
EJERCICIOS
SOLUCIONES
Secuencia de luces
Semáforos
El coche fantástico
Ejemplo de divisor de tensión
aplicado a un motor eléctrico
(Esquema eléctrico)
Programa
PROGRAMACIÓN DE UN SERVO MOTOR