INTRODUCCIN A
ARDUINO
Arduino es una plataforma open-hardware basada en
una sencilla placa con entradas y salidas (E/S),
analgicas y digitales,
Su corazn es el microcontrolador Atmega8, un chip
sencillo y de bajo coste que permite el desarrollo de
mltiples diseos.
Al ser open-hardware tanto su diseo como su
distribucin es libre, puede utilizarse libremente para
desarrollar cualquier tipo de proyecto sin tener que
adquirir ningn tipo de licencia.
(Arduino UNO)
Tiene:
- 14 pines de entrada/salida digital (de los cuales 6
pueden ser usados como salidas PWM),
- 6 entradas analgicas,
- una conexin USB,
- un conector para alimentacin,
- un botn de reset
COMENZANDO CON ARDUINO
1.- Descargar el entorno Arduino.
2.-Instalar los drivers USB.
[Link] la placa.
Para programar la placa Arduino
necesitas el entorno Arduino.
Descarga la ltima versin desde
[Link]
ftware
La ltima versin de los drivers
se puede encontrar en
[Link]
[Link].
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 PROGRAMACIN
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 seccin de declaracin de funciones
EN UN PROGRAMA PUEDE HABER:
- INSTRUCCIONES
- FUNCIONES
- DEFINICIN 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
pinMode(pin,modo)
- INSTRUCCIONES
digitalRead(pin)
digitalWrite(pin, valor)
- POSIBLES VALORES
- pin, entre 0 y 13
- modo, entre INPUT y OUTPUT
- valor, entre HIGH y LOW
INSTRUCCIONES DE E/S ANALGICAS
- HAY 6 PINES DE E/S DIGITALES NUMERADOS DEL A0 AL A5
- AL SER ANALGICOS, SIEMPRE SON DE LECTURA (NO NECESITA
LA INSTRUCCIN pinMode)
- INSTRUCCIONES
analogRead(pin)
- pin, entre 0 y 5
- el valor que devuelve est entre 0 y 1023
- pinPWM, a elegir entre
analogWrite(pinPWM, valor)
3, 5, 6, 9, 10 y 11
- valor, entre 0 y 255
PIN PWM (MODULACIN POR ANCHO
DE PULSO)
- HAY SEIS PINS PWM, 3, 5, 6, 9, 10 Y 11
- POSIBLES VALORES PARA LA INSTRUCCIN 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.
- valor de 64 mantiene 0 voltios
partes del tiempo y 5 voltios del
Valores entre 0 y 255, el pin saca
tiempo;
tensiones entre 0 y 5 voltios
- 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.
EJEMPLO 1 DE PROGRAMA
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
}
ELEMENTOS DEL LENGUAJE
- llaves { }
void loop ()
{
Bloque de sentencias;
}
- punto y coma ;
- bloques de comentarios /*
*/
/* este sera un ejemplo de
comentario que contina en
otras lneas*/
- comentarios de una sola lnea //
int contador = 0; //declaro la var contador y la
inicializo a cero
EJEMPLO 2 DE PROGRAMA
int tiempo=200; int n; // Declaracin inicial
void setup()
{ //comienza la configuracion
for (n=5;n<9;n++)
{
pinMode (n, OUTPUT);
}
}
/*A continuacin defino una funcin 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();
}
- variables y declaracin
int contador = 0;
- Tipos
de variables
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 costeReparacin= 354.16;
ESTRUCTURAS
IF (condicin)
{
Instrucciones;
}
ELSE
{
Instrucciones;
}
FOR (inicializacin; condicin; expresin)
{
Instrucciones;
}
WHILE (condicin)
{ sentencias;}
EJERCICIOS
SOLUCIONES
Secuencia de luces
Semforos
El coche fantstico
Ejemplo de divisor de tensin
aplicado a un motor elctrico
(Esquema elctrico)
Programa
PROGRAMACIN DE UN SERVO MOTOR