Manual Basico Arduino
Manual Basico Arduino
Manual Basico Arduino
Se trata de una placa open hardware por lo que su diseo es de libre distribucin y
utilizacin, que incluso podemos construirnos nosotros mismos (En la Figura 1 se observa
el aspecto de la placa). En la siguiente web puede encontrarse mucha informacin relativa a
la placa:
http://arduino.cc/
Entorno de desarrollo
"Done compiling". Una vez que el cdigo ha sido verificado procederemos a cargarlo en la
placa. Para ello tenemos que pulsar el botn de reset de la placa (Figura 3.b) e
inmediatamente despus pulsar el botn que comienza la carga (Figura 3.c).
Durante la carga del programa, en la placa USB, se encendern los LED que indican que se
estn enviando y recibiendo informacin por el puerto serie: TX/RX. Si todo se ha
realizado correctamente debe aparecer el mensaje "Done uploading". Ahora tan slo queda
esperar unos 8 segundos aproximadamente para comprobar que todo ha salido bien. Si el
led colocado en el pin 13 de la placa se enciende y se apaga cada segundo entonces todo ha
ido bien. Por fin tenemos todo listo para empezar a trabajar con la placa Arduino.
Como se observa en este bloque de cdigo cada instruccin acaba con ; y los comentarios
se indican con //. Al igual que en C se pueden introducir bloques de comentarios con /* ...
*/.
Funciones
Una funcin es un bloque de cdigo identificado por un nombre y que es
ejecutado cuando la funcin es llamada. La declaracin de una funcin
incluye en primer lugar el tipo de datos que devuelve la funcin (e.j.
int si lo que devuelve es un valor entero). Despus del tipo de datos se
especifica el nombre de la funcin.
int delayVal() {
int v;
// crea una variable temporal 'v'
v = analogRead(pot);
// lee el valor del potencimetro
v /= 4;
// convierte los valores 0-1023 a 0-255
return v;
// devuelve el valor final de la variable
}
Variables
Una variable puede ser declarada en el inicio del programa antes de setup(), localmente a
una determinada funcin e incluso dentro de un bloque como pueda ser un bucle. El sitio en
el que la variable es declarada determina el mbito de la misma. Una variable global es
aquella que puede ser empleada en cualquier funcin del programa. Estas variables deben
ser declaradas al inicio del programa (antes de la funcin setup()).
int v;
void setup() {
// no se requiere setup
}
void loop() {
for (int i=0; i<20;)
// 'i' es visible solo en el bucle
i++;
float f;
// 'f' es visible nicamente en la funcin loop()
}
Tipos de datos
Arduino permite manejar los siguientes tipos de datos:
Arrays Se trata de una coleccin de valores que pueden ser accedidos con un
nmero de ndice (el primer valor del ndice es 0). Ejemplos de utilizacin:
o Definicin y asignacin. int myArray[] = {value0, value1, value2...}
o Definicin. int myArray[5]; // declara un array de 6 enteros
o Asignacin del cuarto componente. myArray[3] = 10;
o Recuperar el cuarto componente y asignarlo a x. x = myArray[3];
Operadores aritmticos
Empleando variables, valores constantes o componentes de un array pueden
realizarse operaciones aritmticas y se puede utilizar el operador cast
para conversin de tipos. Ej. int a = (int)3.5; Adems pueden hacerse las
siguientes asignaciones:
x ++. Lo mismo que x = x + 1.
x --. Lo mismo que x = x - 1, or decrements x by -1.
x += y. Lo mismo que x = x + y, or increments x by +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.
Para su utilizacin en sentencias condicionales u otras funciones Arduino
permite utilizar los siguientes operadores de comparacin:
x == y. x es igual a y.
x != y. x no es igual a y.
x < y, x > y, x <= y, x >= y.
Y los siguientes operadores lgicos:
Y lgico: if (x > 0 && x < 5). Cierto si las dos
expresiones lo son.
O lgico: if (x > 0 || y > 0). Cierto si alguna expresin lo es.
NO lgico: if (!x > 0). Cierto si la expresin es falsa.
El lenguaje de Arduino presenta las siguientes constantes predefinidas:
TRUE / FALSE.
HIGH/LOW. Estas constantes definen los niveles de los pines como HIGH o
LOW y son empleados cuando se leen o escriben en las entradas o salidas
digitales. HIGH se define como el nivel lgico 1 (ON) o 5 V. LOW es el
nivel lgico 0, OFF, o 0 V.
INPUT/OUTPUT. Constantes empleadas con la funcin pinMode() para definir
el tipo de un pin digital usado como entrada INPUT o salida OUTPUT. Ej.
pinMode(13, OUTPUT);
Sentencias condicionales
El lenguaje de arduino permite realizar sentencias condicionales if, if... else, for, while, do...
while. Su utilizacin es similar a las funciones correspondientes en C.
Entradas y salidas digitales y analgicas
Puerto serie
Ejemplos de cdigo
Salida digital
En este ejemplo el LED conectado al pin 13 parpadea cada segundo.
int ledPin = 13;
void setup(){
pinMode(ledPin, OUTPUT);
}
void loop(){
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
Salida digital II
En este ejemplo el LED conectado al pin 13 parpadea en un intervalo de tiempo variable
que depende del nmero de veces que se ejecuta el programa (funcin loop)
int ledPin = 13;
// LED que se encuentra en el pin 13
int n = 0;
//Entero que contar el paso por la funcin loop
void setup(){
pinMode(ledPin, OUTPUT);
// El p1n 13 ser una salida digital
}
void loop(){
digitalWrite(ledPin, HIGH); // Enciende el LED
delay(1000);
// Pausa de 1 segundo
digitalWrite(ledPin, LOW);
// Apaga el LED
n++;
//Incrementamos n
delay(delayVal(n));
//Pausa de un tiempo variable
}
Entrada digital
Este ejemplo lee el valor de un interruptor conectado en el pin 2. Cuando el interruptor est
cerrado en el pin de entrada habr un estado alto (HIGH) y se encender el LED.
Salida PWM
Modulacin por ancho de pulso (PWM) puede emplearse, por ejemplo, para establecer el
brillo de un led o controlar un servomotor. En el siguiente ejemplo se va aumentando y
decrementando el brillo del pin 9 mediante PWM.
int ledPin = 9;
// Pin controlado por PWM
void setup(){}
void loop() {
for (int i=0; i<=255; i++){
analogWrite(ledPin, i); // Establece el brillo a i
delay(100);
// Pausa de 100 ms
}
for (int i=255; i>=0; i--) {
analogWrite(ledPin, i);
delay(100);
}
}