Libro Basico de Arduino - 2
Libro Basico de Arduino - 2
+Digital I/O
- pinMode() U
- digitalWrite() N
- digitalRead() C
+Números aleatorios
- randomSeed() I
+Analogo I/O - random()
- analogReference() O
- analogRead() N
- analogWrite() - PWM E
+Bits y Bytes
- lowByte() S
+Avanzadas I/O - highByte()
- tone()
- bitRead()
- noTone()
- bitWrite()
- shiftOut()
- bitSet()
- shiftIn()
- bitClear()
-pulseIn()
- bit()
L
- EEPROM - leer y escribir I
- Ethernet - conectarse a Internet B
- Cristal líquido - control de LCD
- SD - lectura y escritura de tarjetas SD
R
- Servo - control de servomotores E
- SPI - comunicación por el bus SPI R
- Paso a paso - control de motores
Í
- Wire - enviar y recibir datos TWI/I2C
A
… y muchas más visita S
arduino.cc
41
Hoja dejada en blanco de manera intencional
42
6. ARDUINO
Proyecto Arduino
El proyecto comenzó en Ivrea, Italia (el sitio de la compañía de
computadoras Olivetti), en el año 2005 con el fin de crear un
dispositivo para estudiantes para el control integrado de proyec-
tos de diseño e interacción, con la finalidad de que fuera más
barato que los sistemas de creación de prototipos disponibles en
ese entonces. A partir de mayo de 2011, más de 300.000 unida-
des de Arduino han sido distribuidas. Los fundadores Massimo
Banzi y David Cuartielles nombraron el proyecto como Arduino de Ivrea, un protago- 6A
nista histórico de la ciudad. En primer lugar "Arduino" es un termino masculino ita-
liano, que significa "gran amigo".
1 Entrevista con Ben Fry y Casey Reas por Shiffman Daniel (Sep 23, 2009), ver más
43
Familia Arduino
Como toda familia que se respete, tenemos de los integrantes más grandes a los más
pequeños, te invitamos a conocerlos:
Muchas entradas y
El más vendido,
todo en uno
salidas
Arduino Pro Arduino Fio Arduino Mini
44
Expandir Arduino con los shields
Un Shield o escudo es una placa que permite expandir funcionalidades a tu Arduino,
con lo cual puedes conectar motores, o a la red celular, a una red WiFi, a una red
Ethernet o tener un MP3 en el Arduino, entre muchos más solo mira:
6C
Celular Ethernet Proto GPS
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T01AB
ASÍ
HD
VISITA LA OPCIÓN DE
45
6D Placa Arduino Uno y sus partes
2 3
5
6 4
1
8
10
11 99
12
13 14
Vistas auxiliares
46
D
E
1 Conector USB para el cable Tipo AB
S
C
2 Pulsador de Reset
R
I
3 Pines de E/S digitales y PWM P
C
4 LED verde de placa encendida I
Ó
5 LED naranja conectado al pin13 N
14 Entradas análogas
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T02AB
ASÍ
HD
VISITA LA OPCIÓN DE
47
6E Instalando drivers
MAC y LINUX
Si tu computador tiene de sistema operativo alguna versión de Mac o una distribu-
ción de LINUX, lo único que debes hacer es:
WINDOWS 7, Vista y XP
Si tu computador tiene de sistema operativo Windows en versión
7, Vista o XP, debes realizar la siguiente sucesión de sencillos
pasos:
3 Conectar la placa Arduino Uno al PC y ver este aviso. No nos debemos pre-
ocupar
48
WINDOWS 7, Vista y XP
6
Ingresar a la opción Buscar software de controlador en el equipo
49
Recibimos la confirmación del Puerto COM asignado, este número de Puerto
9
COM es muy importante tenerlo en cuenta a la hora de programar.
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T07AB
ASÍ
HD
VISITA LA OPCIÓN DE
50
Conociendo el software Arduino
6F
Guardar
Abrir
Cargar a la placa
Compilar
1 Puerto COM
51
2 Seleccionar la placa a trabajar
3
Consola serial
6G
1
52
Cargando mi primer programa
Antes de continuar con el siguiente paso asegúrate de configura de manera correc-
ta:
A– Puerto COM, revisa el Paso 1 de la sección 6F, recuerda que el valor del
puerto COM lo obtuvimos en el Paso 9 de la sección 6E
B– Board, revisa el Paso 2 de la sección 6F, recuerda que para este caso la
placa es Arduino UNO
53
Ejercicio
A partir del ejemplo cargado en la sección anterior, ahora te proponemos que modi-
fiques un poco el programa, para ello en las dos líneas de código donde dice:
delay(1000);
Cambia el valor de 1000 por 2000 y vuelve a cargar el programa a tu placa Arduino
Uno, ¿que observas?
54
7. KIT BÁSICO
Descripción
La Tienda de Robótica trae el Kit Básico de
Arduino que comprende una cuidadosa selec-
ción de los mejores componentes para iniciar
en el mundo de Arduino. Es una herramienta
diseñada para los principiantes que cuenta
7A
con todo lo necesario para desarrollar progra-
mas que contribuyan al aprendizaje y manejo
del Arduino.
KIT BÁSICO 7 6
2 5 7B
1
3 4
1 3 5
1 x Arduino Uno 5 x Led 5mm 5 x Resistencia 220Ω
7
1 x Cable USB Tipo AB
10 x Conectores rápidos MM
55
Fotos
7C
DESPLIEGUE DE COMPONENTES
EN SU CAJA DE KIT
56
8. FRITZING
Una gran Software para diseñar los montajes en protoboard y a partir de
ello generar el plano y la PCB (Circuito impreso), así de fácil :)
Software
Fritzing permite a los diseñadores, artistas, investigadores y aficionados
documentar sus prototipos basados en Arduino y crear esquemas de cir-
cuitos impresos para su posterior fabricación.
8A
Vista protoboard
8B
Tomado de fritzing.org/projects/interruptgesteuertes-lauflicht/
Ajuste de la velocidad de los LEDS
Realizado por tux60
57
Vista esquema
8C
8D
58
EJERCICIO MÁSTER
1
En el siguiente ejercicio queremos que afiances tus
capacidades de montaje en Fritzing, es un ejercicio que
requiere que coloques a prueba tus capacidades de
reconocimiento de montajes electrónicos y cableado
entre el Arduino y una protoboard, es un resumen
práctico de los capítulos anteriores. Para desarrollarlo
te recomendamos que trabajes junto con el software y
de la imagen que se presenta a continuación. El software lo puedes encontrar
en:
fritzing.org/download/ 8E
DIY
59
9. TUTORIALES
Estos tutoriales son diseñados con ejercicios prácticos que permiten com-
prender el concepto y de manera constante se está verificando lo aprendido
mediante preguntas. Finalmente se plantean ejercicios que involucran ca-
sos de la vida real.
A
E
F
C
G
D
60
G Prueba tu aprendizaje
H
I Tips de mucha utilidad
J Ejercicios aplicados
61
T1 Hola mundo—LED intermitente
Materiales
1 1
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
ASÍ
HD
VISITA LA OPCIÓN DE
62
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Completa R
de esta resistencia? función? E
G
digitalRead()
U
_______________ ?
I = ___ N
_____Ω
_______________ R T
_____KΩ
A
63
C /*
Ó -----------------------------------
D Hola Mundo
I -----------------------------------
G Enciende un LED por un segundo y lo apaga por el mismo tiempo
0 */
//------------------------------------
D
//Función principal
E
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
P
pinMode(13,OUTPUT); // Inicializa el pin 13 como una salida
R
}
O
G
R
//------------------------------------
A
//Función cíclica
M
//------------------------------------
A
void loop() // Esta función se mantiene ejecutando
C
{ // cuando este energizado el Arduino
I
digitalWrite(13,HIGH); // Enciende el LED
Ó
delay(1000); // Temporiza un segundo (1s = 1000ms)
N
digitalWrite(13,LOW); // Apaga el LED
delay(1000); // Temporiza un segundo (1s = 1000ms)
}
2– Las señales digitales (Encendido o apagado) están muy presentes en todos los
sistemas, y muchos sensores trabajan sobre este principio, te invitamos a conocer
algunos:
64
EJERCICIOS
1
A partir del código de programación explicado anteriormente, queremos que
un LED prenda de manera intermitente de la siguiente manera:
Tip: 1s = 1000ms
3
Un Strober es un bombillo que prende y apaga muy rápido,
muy usado en las fiestas, tu misión es realizar tu strober
casero con un LED, con el mismo esquema montado en este
tutorial.
MI CUADERNO DE APUNTES
65
T2 Encender un LED con un pulsador
Materiales
1
1
1
LED Amarillo
Arduino UNO 1
Protoboard
Pulsador
1
1 4
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T10AB
ASÍ
HD
VISITA LA OPCIÓN DE
66
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Un ejemplo de R
de esta resistencia? función? un lenguaje de alto E
nivel G
digitalWrite()
U
_______________ _______________ N
_____Ω
_____KΩ _______________ T
A
67
C /*
-----------------------------------
Ó Encender LED con un pulsador
-----------------------------------
D
Oprimir un pulsador y mientras este se mantenga accionado
I un LED se enciende
G Cosas de Mecatrónica y Tienda de Robótica
0
*/
//------------------------------------
D //Declara puertos de entradas y salidas
//------------------------------------
E int pulsador=2; //Pin donde se encuentra el pulsador, entrada
int led=13; //Pin donde se encuentra el LED, salida
//------------------------------------
P //Funcion principal
//------------------------------------
R void setup() // Se ejecuta cada vez que el Arduino se inicia
{
O pinMode(pulsador, INPUT); //Configurar el pulsador como una entrada
G pinMode(led,OUTPUT); //Configurar el LED como una salida
}
R
A //------------------------------------
//Funcion ciclicla
M //------------------------------------
A void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
C
//Condicional para saber estado del pulsador
I if (digitalRead(pulsador)==HIGH)
{
Ó //Pulsador oprimido
N digitalWrite(led,HIGH); //Enciende el LED
}
else
{
//Pulsador NO oprimido
digitalWrite(led,LOW); //Apaga el LED
}
}
//Fin programa
68
EJERCICIOS
1
La multinacional francesa Flante experta en ma-
quinaria industrial te ha contratado para que auto-
matices una máquina cortadora de papel. La condi-
ción principal es que el operario de la máquina
cuando vaya a realizar el corte siempre mantenga
las dos manos ocupadas, esta es una regla de segu-
ridad industrial para evitar accidentes. El operario debe oprimir los dos pulsa-
dores uno con cada mano y la cuchilla cortadora debe bajar y hacer el corte. El
siguiente montaje simula el control de la máquina, los dos pulsadores (S1 y S2)
y el LED rojo simula la cuchilla cortadora.
S1 S2
MI CUADERNO DE APUNTES
69
T3 Lectura serial de una entrada digital
Materiales
1
1
Arduino UNO
Pulsador Protoboard
1
1
4
Resistencia 1K
Cable USB Tipo AB
Conectores MM
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T11AB
ASÍ
HD
VISITA LA OPCIÓN DE
70
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Este símbolo a R
de esta resistencia? función? que corresponde E
G
Serial.println()
U
_______________ N
_____Ω
_____KΩ _______________ _______________ T
A
71
/*
C --------------------------------------
Lectura serial de una entrada digital
Ó --------------------------------------
D Leer una entrada digital y mostrar por la pantalla del
computador (consola serial) el estado del pulsador
I cuando es oprimido
G Cosas de Mecatrónica y Tienda de Robótica
0 */
//------------------------------------
//Declara puertos de entradas y salidas
D //------------------------------------
int boton=2; //Pin donde se encuentra el pulsador, entrada
E
//------------------------------------
//Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
P //Configuración
pinMode(boton,INPUT); //Configurar el boton como una entrada
R Serial.begin(9600); //Inicia comunicación serial
}
O
G //------------------------------------
//Funcion ciclicla
R //------------------------------------
void loop() // Esta funcion se mantiene ejecutando
A { // cuando este energizado el Arduino
M //Guardar en una variable entera el valor del boton 0 ó 1
int estado = digitalRead(boton);
A
//Condicional para saber estado del pulsador
C if (estado==1)
{
I // Pulsado
Serial.println("Pulsado"); //Imprime en la consola serial
Ó } // "Pulsado"
else
N {
// No esta pulsado
Serial.println("NO Pulsado"); //Imprime en la consola serial
} // "NO Pulsado"
delay(100); //Retardo para la visualización de datos en la consola
}
//Fin programa
4 100
2– Para recordar
5 101
6 110
7 111
- Para leer una señal digital usa: digitalRead(numeroPin);
72
EJERCICIOS
1
Una empresa de gaseosas tiene un sistema con dos
sensores, uno de ellos indica si la botella se ha llena-
do con el líquido y el otro sensor indica si la botella
ya tiene la tapa. Para este caso simularemos los dos
sensores por medio de dos pulsadores (S1 y S2).
MI CUADERNO DE APUNTES
73
T4 Lectura serial de una entrada análoga
Materiales
1
1
1
Arduino UNO
Protoboard
1
Potenciómetro 10K
3
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T12AB
ASÍ
HD
VISITA LA OPCIÓN DE
74
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Este símbolo a R
de esta resistencia? función? que corresponde E
G
analogRead()
U
_______________ N
_____Ω _______________
_____KΩ _______________ T
A
75
C /*
--------------------------------------
Ó Lectura serial de entrada análoga
D --------------------------------------
*/
D
//------------------------------------
E //Funcion principal
//------------------------------------
void setup() // Se ejecuta cada vez que el Arduino se inicia
{
P Serial.begin(9600); //Inicia comunicación serial
}
R
O //------------------------------------
//Funcion ciclicla
G //------------------------------------
R void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
A
M //Guardar en una variable entera el valor del potenciómetro 0 a 1024
int valor= analogRead(A0);
A
C //Imprime en la consola serial el valor de la variable
Serial.println(valor);
I
Ó //Retardo para la visualización de datos en la consola
delay(100);
N
}
//Fin programa
2– Para recordar
76
EJERCICIOS
MI CUADERNO DE APUNTES
77
T5 Escritura serial
Polaridad de un LED
Materiales
1 1
ESCANEA CON TU
SMARTPHONE
BUSCA
VIDEOTUTORIAL
T13AB
ASÍ
HD
VISITA LA OPCIÓN DE
78
P
L
A
N
O
E
S
Q
U
E
M
A
P
1— ¿Cuál es el valor 2— ¿Qué hace está 3— Nombra 4 tipos R
de esta resistencia? función? de variables E
G
Serial.read() a._______
U
_______________ b._______ N
_____Ω
_______________ c._______ T
_____KΩ
d._______ A
79
/*
C --------------------------------------
Escritura serial
Ó --------------------------------------
D Consiste en escribir por la pantalla del computador (consola serial)
una letra predeterminada, la primera vez que se escriba está
I un LED se enciende, si se vuelve a escribir por segunda vez
el LED se apaga.
G
Cosas de Mecatrónica y Tienda de Robótica
0
*/
//--------------------------------------------------
D //Declara puertos de entradas y salidas y variables
//--------------------------------------------------
E int led = 13; //Pin donde se encuentra el LED, salida
char leer; //Variable donde se almacena la letra
boolean prendido=false; //Estado LED la primera vez, apagado
//------------------------------------
P //Funcion principal
//------------------------------------
R void setup() // Se ejecuta cada vez que el Arduino se inicia
{
O Serial.begin(9600); //Inicia comunicación serial
pinMode(led, OUTPUT); //Configurar el LED como una salida
G }
R
//------------------------------------
A //Funcion ciclicla
//------------------------------------
M void loop() // Esta funcion se mantiene ejecutando
{ // cuando este energizado el Arduino
A
//Guardar en una variable el valor de la consola serial
C leer=Serial.read();
I // Si es la letra 'a' y además el LED está apagado
if ( (leer=='a') && (prendido==false) )
Ó {
digitalWrite(led,HIGH); // Enciende el LED
N prendido=true; // Actualiza el estado del LED
}
// Si es la letra 'a' y además el LED está encendido
else if ( (leer=='a') && (prendido==true) )
{
digitalWrite(led,LOW); // Apaga el LED
prendido=false; // Actualiza el estado del LED
}
}
//Fin programa
T 1– Las tablas booleanas son muy útiles para entender la lógica de los programas,
I ¿sabes cuál es la tabla booleana de AND(&&), OR(||) y NOT(!) ?
P
S
80