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