Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arduino
Arduino
13 de noviembre de 2009
I.T.I. Sistemas
Universidad de Córdoba
i52enher@uco.es
http://creativecommons.org/licenses/by-nc-sa/3.0/
Creative Commons
Índice general
1. PREFACIO
7
2. INTRODUCCIÓN
8
3. HARDWARE
10
3.2.2. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.3. Alimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.4. Memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.6. Comunicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.7. Programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.1.1. Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.3. GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.2. Menús . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2.3. Preferencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5. COMENZANDO CON ARDUINO
30
5.1. Estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.4. Aritmética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.5. Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.9. Tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.10. Matemáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.11. Aleatorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.12. Serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
45
A.1. Salida digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
49
Índice de cuadros
Índice de guras
Capítulo 1
PREFACIO
Por último, la guía está pensada para aquellas personas que no han
usado Arduino pero les
Capítulo 2
INTRODUCCIÓN
a Windows.
y ahorrar dinero.
Capítulo 3
HARDWARE
Attribution-ShareAlike 2.5.
Serial: Es una placa básica que usa RS232 como un interfaz con el
ordenador para programa-
Serial Single Sided: Esta placa está diseñada para ser grabada y
ensamblada a mano. Es
10
3.2. Arduino Diecimila
Arduino.
11
3.2.2. Resumen
Característica
Descripción
Microcontrolador
ATmega168
Voltaje de operación
5V
7 - 12 V
6 - 20 V
Pines digitales de E/S
40 mA
50 mA
Memoria Flash
SRAM
1 KB
EEPROM
512 bytes
Frecuencia de reloj
16 MHz
3.2.3. Alimentación
El Arduino Diecimila puede ser alimentado a través de la conexión
USB o con un suministro de energía externo. La fuente de energía
se selecciona mediante el jumper PWR_SEL: para alimentar a la
placa desde la conexión USB, colocarlo en los dos pines más
cercanos al conector USB, para un suministro de energía externo,
en los dos pines más cercanos al conector de alimentación externa.
es de 50 mA.
12
3.2.4. Memoria
Cada uno de los 14 pines digitales del Diecimila puede ser usado
como entrada o salida, usando funciones pinMode(), digitalWrite() y
digitalRead()2. Operan a 5 voltios. Cada pin puede proporcionar o
recibir un máximo de 40 mA y tiene una resistencia interna pull-up
(desconectada por defecto) de 20-50 KOhms. Además, algunos
pines tienen funciones especiales:
Serial: 0 (Rx) y 1 (Tx). Usados para recibir (Rx) y transmitir (Tx) datos
TTL en serie.
te()4.
LED: 13. Hay un LED empotrado conectado al pin digital 13. Cuando
el pin está a valor
13
3.2.6. Comunicación
una librería Wire para simplicar el uso del bus 12C8. Para usar la
comunicación SPI, consultar el esquema del ATmega168.
3.2.7. Programación
14
Capítulo 4
SOFTWARE
4. Conectar la placa.
5. Conectar un LED.
7. Subir un programa.
ejemplo).
16
4.1.1. Windows
VCP.htm.
4.Conectar la placa.
Para alimentar la placa desde una fuente externa (6-12 V), coloca el
jumper en los dos pines más cercanos al conector de alimentación.
En cualquier caso, conecta la placa a un puerto USB de tu
ordenador.
17
Figura 4.2: Conexión del cable USB a la placa Arduino
18
Figura 4.4: Asistente para Nuevo Hardware MS-Windows - Paso 2
19
7.Subir un programa.
Abrir la rutina de ejemplo de parpadeo del LED: File > Sketchbook >
Examples > Digital > Blink.
20
Figura 4.7: Entorno Arduino
21
Figura 4.9: Menú de selección de puerto del Entorno Arduino
ejecutándose.
22
VCP.htm.
4.Conectar la placa.
Para alimentar la placa desde una fuente externa (6-12 V), coloca el
jumper en los dos pines más cercanos al conector de alimentación.
En cualquier caso, conecta la placa a un puerto USB de tu
ordenador.
23
7.Subir un programa.
Abrir la rutina de ejemplo de parpadeo del LED: File > Sketchbook >
Examples > Digital > Blink.
24
Figura 4.14: Entorno Arduino
25
Figura 4.16: Menú de selección de placa del Entorno Arduino
ejecutándose.
4.1.3. GNU/Linux
26
9. Cierra Synaptic.
debería abrirse.
4.2. Introducción al Entorno Arduino
Verify/Compile
Stop
27
New
Open
cargarla.
Serial Monitor
Tab Menu
28
4.2.2. Menús
Sketch
Tools
Auto Format: Esto formatea tu código amigablemente.
Serial Port: Este menú contiene todos los dispositivos serie (reales o
virtuales) de tu máquina.
(para una placa Serie) o COM4, COM5, COM7 o superior (para una
placa USB) - para
descubrirlo, busca USB serial device en la sección puertos del
Gestor de dispositivos de
Windows.
4.2.3. Preferencias
29
Capítulo 5
void setup()
{ statements;
void loop()
{ statements;
setup()
void setup()
loop()
30
void loop()
delay(1000);
//espera un segundo
delay(1000);
//espera un segundo
funciones
type functionName(parameters)
{ statements;
int delayVal()
{ int v;
v /= 4;
return v;
}
llaves {}
void loop()
{ statements;
31
punto y coma ;
*/
comentarios de línea //
5.2. Variables
int inputVariable = 0;
//analógico 2
32
declaración de variable
Todas las variables tienen que ser declaradas antes de que puedan
ser usadas. Declarar una
variable signica denir su tipo de valor, como int, long, oat, etc.,
denir un nombre especíco, y, opcionalmente, asignar un valor
inicial. Esto sólo necesita hacerse una vez en un programa pero el
valor puede cambiarse en cualquier momento usando aritmética y
varias asignaciones.
int inputVariable = 0;
ámbito de la variable
Una variable global es una que puede ser vista y usada por
cualquier función y declaración en un programa. Esta variable se
declara al comienzo del programa, antes de la función setup().
diferentes valores.
int value; //'value' es visible por cualquier función
void setup()
void loop()
{ for(int i=0; i<20;) //'i' es sólo visible dentro del bucle for
{ i++;
33
byte
int
long
oat
arrays
34
5.4. Aritmética
y = y+3;
x = x-7;
i = j*6;
r = r/5;
otro al vuelo.
asignaciones compuestas
x++;
x--;
operadores de comparación
x == y; //x es igual a y
x != y; //x no es igual a y
35
operadores lógicos
//AND logico:
if(x>0 && x<5) //verdadero sólo si las dos expresiones son ciertas
//OR logico:
//NOT logico:
if(!(x>0))
5.5. Constantes
true/false
if(b == TRUE)
{ doSomething;
high/low
digitalWrite(13, HIGH);
input/output
u OUTPUT.
pinMode(13, OUTPUT);
36
if
if(someVariable ?? value)
{ doSomething;
if. . . else
if(inputPin == HIGH)
{ doThingA;
}else
{ doThingB;
{ doThingA;
{ doThingB;
}else
{ doThingC;
37
for
{ doSomething;
digitalWrite(13, HIGH);
//activa el pin 13
delay(250);
digitalWrite(13, LOW);
//desactiva el pin 13
delay(250);
while
while(someVariable ?? value)
{ doSomething;
{ doSomething;
someVariable++;
//incrementa la variable en 1
do. . . while
38
do
{ doSomething;
}while(someVariable ?? value);
do
{ x = readSensors();
delay(50);
//pausa de 50 milisegundos
pinMode(pin, mode)
o como OUTPUT.
pinMode(pin, INPUT);
digitalWrite(pin, HIGH);
digitalRead(pin)
39
digitalWrite(pin, value)
digitalWrite(pin, HIGH);
//Ejemplo de programa
int pin = 7;
void setup()
pinMode(pin, INPUT);
void loop()
digitalWrite(led, value);
analogRead(pin)
value = analogRead(pin);
analogWrite(pin, value)
analogWrite(pin, value);
40
Valor
Nivel de salida
0 V (t)
64
0 V (3/4 de t) y 5 V (1/4 de t)
128
0 V (1/2 de t) y 5 V (1/2 de t)
192
0 V (1/4 de t) y 5 v (3/4 de t)
255
5 V (t)
int pin = 0;
int value;
void setup(){}
//setup no es necesario
void loop()
value /= 4;
5.9. Tiempo
delay(ms)
delay(1000);
millis()
41
5.10. Matemáticas
min(x,y)
max(x,y)
5.11. Aleatorio
randomSeed(seed)
randomSeed(value);
random(min, max)
int randNumber;
//aleatorio
//en el pin 10
42
void setup(){}
//setup no es necesario
void loop()
{ randomSeed(millis());
//asigna millis() como semilla
randNumber = random(255);
delay(500);
5.12. Serie
Serial.begin(rate)
void setup()
Serial.println(data)
Serial.println(analogValue);
//Ejemplo de aplicacion
void setup()
{ Serial.begin(9600);
void loop()
delay(1000);
43
Bibliografía
12-17.
arduino.cc/es/
arduino.cc
44
Apéndice A
void setup()
void loop()
delay(1000);
//pausa 1 segundo
//pausa 1 segundo
45
int inPin = 2;
void setup()
{ pinMode(ledPin, OUTPUT);
pinMode(inPin, INPUT);
void loop()
delay(1000);
//pausa 1 segundo
digitalWrite(ledPin, LOW);
//desactiva el LED
delay(1000);
//pausa 1 segundo
46
int ledPin = 9;
void loop()
delay(100);
//pausa 100 ms
delay(100);
//pausa 100 ms
int potPin = 0;
//pin de entrada para el potenciometro
void setup()
47
void loop()
delay(analogRead(potPin));
//pausa el programa
digitalWrite(ledPin, LOW);
//desactiva ledPin
delay(analogRead(potPin));
//pausa el programa
48
Apéndice B
49