Descripción
El desarrollo del libro está pensado para servir de apoyo a la docencia, para aficionados que deseen aprender de forma autodidacta, o como obra de consulta permanente para técnicos en electrónica. Sus contenidos cubren, a nivel básico, todo lo necesario para conocer e iniciar su trabajo con el Hardware y software de Arduino.
Poco a poco haga sus programas o agregue a su código un gran número de funciones, que ya han hecho otros, y ahorre muchas horas de trabajo. Arduino permite que cualquier persona pueda realizar circuitos electrónicos que sean capaces de interaccionar con el mundo físico real, gracias a su sencillez, campos como la robótica o la domótica se han visto radicalmente impulsados, aunque es utilizado en muchos otros campos multidisciplinares, tales como el control y monitoreo de sensores, la activación remota de circuitos electromecánicos, el montaje de instalaciones audiovisuales, etcétera.
Arduino es tanto una placa de circuito impreso que incluye un microcontrolador, como un entorno de desarrollo diseñado para facilitar su programación mediante un lenguaje tremendamente intuitivo Arduino es hardware y software libre; es decir, que puede descargarse gratuitamente de su web y utilizarse para el desarrollo de cualquier tipo de proyecto sin adquirir ninguna licencia porque su código fuente es público para todo el mundo.
Ventajas Competitivas
- Esta obra incluye gran cantidad de ejemplos que facilitan al lector toda la información necesaria para realizar sus propios proyectos, sin requerir ninguna consulta externa
- Con la ayuda de una placa Arduino UNO y un conjunto básico de componentes electrónicos, podrá hacer realidad todos los circuitos descritos
Conozca
- La tarjeta Arduino
- Las bases de la programación en Arduino
- Las librerías para trabajar con diferentes tipos de hardware
- Información acerca del hardware Arduino
Aprenda
- Cómo trabajar con el lenguaje de programación Arduino usando componentes electrónicos comunes
- Cómo ampliar el hardware y software Arduino
- Cómo potenciar la interacción y comunicación de una máquina usando sensores y actuadores
INTRODUCCIÓN ……………………………………………………………………………………….. XV
CAPÍTULO 1. ELECTRÓNICA BÁSICA ……………………………………………………………….. 1
CONCEPTOS TEÓRICOS SOBRE ELECTRICIDAD …………………………………………………. 1
¿Qué es la electricidad? ……………………………………………………………………………….. 1
¿Qué es el voltaje? ………………………………………………………………………………………. 2
¿Qué es la intensidad de corriente? ………………………………………………………………. 3
¿Qué es la corriente continua (DC) y la corriente alterna (AC)? …………………………. 4
¿Qué es la resistencia eléctrica? ……………………………………………………………………. 4
¿Qué es la Ley de Ohm? ……………………………………………………………………………….. 5
¿Qué es la potencia? ……………………………………………………………………………………. 6
¿Qué son las señales digitales y las señales analógicas? ……………………………………. 7
¿Qué son las señales periódicas y las señales aperiódicas? ……………………………….. 9
CIRCUITOS ELÉCTRICOS BÁSICOS ………………………………………………………………… 10
Representación gráfica de circuitos ……………………………………………………………… 10
Conexiones en serie y en paralelo ……………………………………………………………….. 12
El divisor de tensión …………………………………………………………………………………… 15
Las resistencias “pull-up” y “pull-down” ……………………………………………………….. 16
FUENTES DE ALIMENTACIÓN ELÉCTRICA ………………………………………………………. 18
Tipos de pilas/baterías ……………………………………………………………………………….. 18
Características de las pilas/baterías ……………………………………………………………… 20
Conexiones de varias pilas/baterías ……………………………………………………………… 22
Compra de pilas/baterías ……………………………………………………………………………. 24
Compra de cargadores ……………………………………………………………………………….. 25
Características de los adaptadores AC/DC …………………………………………………….. 26
ÍNDICE
ARDUINO. CURSO PRÁCTICO DE FORMACIÓN
VIII
COMPONENTES ELÉCTRICOS ……………………………………………………………………… 29
Resistencias ………………………………………………………………………………………………. 29
Potenciómetros …………………………………………………………………………………………. 31
Otras resistencias de valor variable ……………………………………………………………… 33
Diodos y LEDs ……………………………………………………………………………………………. 34
Condensadores …………………………………………………………………………………………. 36
Transistores ………………………………………………………………………………………………. 40
Pulsadores ………………………………………………………………………………………………… 42
Reguladores de tensión ……………………………………………………………………………… 44
Placas de prototipado ………………………………………………………………………………… 46
USO DE UNA PLACA DE PROTOTIPADO ………………………………………………………… 50
USO DE UN MULTÍMETRO DIGITAL ……………………………………………………………… 57
CAPÍTULO 2. HARDWARE ARDUINO ……………………………………………………………. 61
¿QUÉ ES UN SISTEMA ELECTRÓNICO? ………………………………………………………….. 61
¿QUÉ ES UN MICROCONTROLADOR? …………………………………………………………… 62
¿QUÉ ES ARDUINO? …………………………………………………………………………………. 63
¿CUÁL ES EL ORIGEN DE ARDUINO? …………………………………………………………….. 66
¿QUÉ QUIERE DECIR QUE ARDUINO SEA “SOFTWARE LIBRE”? …………………………. 67
¿QUÉ QUIERE DECIR QUE ARDUINO SEA “HARDWARE LIBRE”? ………………………… 68
¿POR QUÉ ELEGIR ARDUINO? …………………………………………………………………….. 70
CARACTERÍSTICAS DEL MICRO DE LA PLACA ARDUINO UNO ……………………………. 71
El encapsulado del microcontrolador …………………………………………………………… 72
El modelo del microcontrolador ………………………………………………………………….. 74
Las memorias del microcontrolador …………………………………………………………….. 76
Los registros del microcontrolador ………………………………………………………………. 78
Los protocolos de comunicación I2
C/TWI y SPI ………………………………………………. 79
El gestor de arranque del microcontrolador ………………………………………………….. 83
¿QUÉ OTRAS CARACTERÍSTICAS TIENE LA PLACA ARDUINO UNO? ……………………. 85
La alimentación …………………………………………………………………………………………. 85
El chip ATmega16U2 …………………………………………………………………………………… 88
Las entradas y salidas digitales ……………………………………………………………………. 89
Las entradas analógicas ……………………………………………………………………………… 90
Las salidas analógicas (PWM) ……………………………………………………………………… 91
Otros usos de los pines-hembra de la placa …………………………………………………… 93
El conector ICSP ………………………………………………………………………………………… 96
El reloj ……………………………………………………………………………………………………… 98
El botón de “reset” ………………………………………………………………………………….. 100
Obtener el diseño esquemático y de referencia …………………………………………… 101
¿QUÉ OTRAS PLACAS ARDUINO OFICIALES EXISTEN? ……………………………………. 102
© Alfaomega-RC Libros
ÍNDICE
IX
Arduino Mega 2560 …………………………………………………………………………………. 102
Arduino Mega ADK …………………………………………………………………………………… 102
Arduino Ethernet …………………………………………………………………………………….. 104
Los adaptadores USB-Serie ……………………………………………………………………. 105
PoE (“Power Over Ethernet”) ………………………………………………………………… 106
Arduino Fio …………………………………………………………………………………………….. 109
Arduino Pro …………………………………………………………………………………………….. 110
Arduino Lilypad ……………………………………………………………………………………….. 111
Arduino Nano ………………………………………………………………………………………….. 111
Arduino Mini …………………………………………………………………………………………… 112
Arduino Pro Mini ……………………………………………………………………………………… 112
Arduino Leonardo ……………………………………………………………………………………. 113
El “auto-reset” de la placa Leonardo ………………………………………………………. 114
Arduino Micro …………………………………………………………………………………………. 114
Arduino Due ……………………………………………………………………………………………. 115
¿QUÉ “SHIELDS” ARDUINO OFICIALES EXISTEN? ………………………………………….. 117
Arduino Ethernet Shield ……………………………………………………………………………. 117
Arduino Wireless SD Shield ……………………………………………………………………….. 119
Arduino Wireless Proto Shield …………………………………………………………………… 120
Arduino WiFi Shield …………………………………………………………………………………. 120
Arduino Motor Shield ………………………………………………………………………………. 122
Tinkerkit (y otros) ………………………………………………………………………………… 124
Arduino Proto Shield ………………………………………………………………………………… 125
¿QUÉ SHIELDS NO OFICIALES EXISTEN? ……………………………………………………… 127
CAPÍTULO 3. SOFTWARE ARDUINO ……………………………………………………………. 129
¿QUÉ ES UN IDE? ……………………………………………………………………………………. 129
INSTALACIÓN DEL IDE ARDUINO ……………………………………………………………….. 130
Ubuntu …………………………………………………………………………………………………… 130
Fedora ……………………………………………………………………………………………………. 130
Cualquier sistema Linux ……………………………………………………………………………. 131
Las dependencias ………………………………………………………………………………… 132
Los permisos de usuario ……………………………………………………………………….. 134
Sobre el reconocimiento y uso de dispositivos USB-ACM en Linux ……………… 135
Cualquier sistema Linux (a partir del código fuente) …………………………………….. 136
Windows ………………………………………………………………………………………………… 137
Mac OS X ………………………………………………………………………………………………… 138
PRIMER CONTACTO CON EL IDE ………………………………………………………………… 139
El “Serial Monitor” y otros terminales serie ………………………………………………… 145
CONFIGURACIÓN Y COMPROBACIÓN DEL CORRECTO FUNCIONAMIENTO DEL IDE … 146
© Alfaomega-RC Libros
ARDUINO. CURSO PRÁCTICO DE FORMACIÓN
X
MÁS ALLÁ DEL LENGUAJE ARDUINO: EL LENGUAJE C/C++ …………………………….. 148
IDES ALTERNATIVOS AL OFICIAL ………………………………………………………………… 149
CAPÍTULO 4. LENGUAJE ARDUINO …………………………………………………………….. 153
MI PRIMER SKETCH ARDUINO ………………………………………………………………….. 153
ESTRUCTURA GENERAL DE UN SKETCH ………………………………………………………. 154
Sobre las mayúsculas, tabulaciones y puntos y comas ………………………………. 155
COMENTARIOS ………………………………………………………………………………………. 155
VARIABLES ……………………………………………………………………………………………. 156
Declaración e inicialización de una variable …………………………………………………. 157
Asignación de valores a una variable ………………………………………………………….. 158
Ámbito de una variable …………………………………………………………………………….. 159
Tipos posibles de una variable …………………………………………………………………… 160
Cambio de tipo de datos (numéricos) …………………………………………………………. 168
CONSTANTES …………………………………………………………………………………………. 171
PARÁMETROS DE UNA INSTRUCCIÓN ………………………………………………………… 171
VALOR DE RETORNO DE UNA INSTRUCCIÓN ……………………………………………….. 172
LA COMUNICACIÓN SERIE CON LA PLACA ARDUINO …………………………………….. 173
Instrucciones para enviar datos desde la placa al exterior ……………………………… 175
Instrucciones para recibir datos desde el exterior ………………………………………… 178
Los objetos serie de otras placas Arduino ……………………………………………………. 183
INSTRUCCIONES DE GESTIÓN DEL TIEMPO …………………………………………………. 184
INSTRUCCIONES MATEMÁTICAS, TRIGONOMÉTRICAS Y DE
PSEUDOALEATORIEDAD ………………………………………………………………………. 186
INSTRUCCIONES DE GESTIÓN DE CADENAS…………………………………………………. 191
CREACIÓN DE INSTRUCCIONES (FUNCIONES) PROPIAS …………………………………. 197
BLOQUES CONDICIONALES ………………………………………………………………………. 200
Los bloques “if” y “if/else” ………………………………………………………………………… 200
El bloque “switch” ……………………………………………………………………………………. 206
BLOQUES REPETITIVOS (BUCLES) ………………………………………………………………. 207
El bloque “while” …………………………………………………………………………………….. 207
El bloque “do” …………………………………………………………………………………………. 210
El bloque “for” ………………………………………………………………………………………… 210
Las instrucciones “break” y “continue” ……………………………………………………….. 214
CAPÍTULO 5. LIBRERÍAS ARDUINO …………………………………………………………….. 217
LAS LIBRERÍAS OFICIALES ………………………………………………………………………… 217
Librería LiquidCrystal ……………………………………………………………………………….. 217
Librería EEPROM ……………………………………………………………………………………… 217
© Alfaomega-RC Libros
ÍNDICE
XI
Librería SD ………………………………………………………………………………………………. 218
Librería Ethernet ……………………………………………………………………………………… 218
Librería Firmata ……………………………………………………………………………………….. 219
Librería SPI ……………………………………………………………………………………………… 219
Librería Wire …………………………………………………………………………………………… 220
Librería SoftwareSerial ……………………………………………………………………………… 220
Librerías Servo y Stepper ………………………………………………………………………….. 221
Librerías Keyboard y Mouse (solo para Arduino Leonardo y Due) …………………… 221
Librerías Audio, Scheduler y USBHost (solo para Arduino Due) ………………………. 221
USO DE PANTALLAS ………………………………………………………………………………… 222
Las pantallas de cristal líquido (LCDs) …………………………………………………………. 222
La librería LiquidCrystal …………………………………………………………………………….. 225
Módulos LCD de tipo I2
C, Serie o SPI …………………………………………………………… 230
Shields que incorporan LCDs ……………………………………………………………………… 234
Shields y módulos que incorporan GLCDs ……………………………………………………. 236
Shields que incorporan pantallas OLED de 4DSystems ………………………………….. 239
Módulos OLED de Adafruit ……………………………………………………………………….. 241
Shields y módulos que incorporan pantallas TFT ………………………………………….. 244
Shields y módulos que incorporan pantallas TFT táctiles ……………………………….. 246
Shields que incorporan displays “7-segmentos” …………………………………………… 249
Matrices de LEDs ……………………………………………………………………………………… 253
USO DE LA MEMORIA EEPROM ………………………………………………………………… 256
USO DE TARJETAS SD ………………………………………………………………………………. 257
Características de las tarjetas SD ……………………………………………………………….. 257
La librería SD …………………………………………………………………………………………… 259
Shields que incorporan zócalos microSD ……………………………………………………… 269
Módulos que incorporan zócalos microSD …………………………………………………… 270
USO DE PUERTOS SERIE SOFTWARE …………………………………………………………… 270
USO DE MOTORES ………………………………………………………………………………….. 273
Conceptos básicos sobre motores ……………………………………………………………… 273
Tipos de motores …………………………………………………………………………………….. 275
Los motores DC ……………………………………………………………………………………. 275
Los servomotores ………………………………………………………………………………… 277
Los motores paso a paso ………………………………………………………………………. 280
La librería Servo ………………………………………………………………………………………. 283
La librería Stepper ……………………………………………………………………………………. 288
CAPÍTULO 6. ENTRADAS Y SALIDAS ……………………………………………………………. 293
USO DE LAS ENTRADAS Y SALIDAS DIGITALES ……………………………………………… 293
Ejemplos con salidas digitales ……………………………………………………………………. 295
© Alfaomega-RC Libros
ARDUINO. CURSO PRÁCTICO DE FORMACIÓN
XII
Ejemplos con entradas digitales (pulsadores) ………………………………………………. 303
Keypads ………………………………………………………………………………………………….. 318
USO DE LAS ENTRADAS Y SALIDAS ANALÓGICAS …………………………………………. 320
Ejemplos con salidas analógicas …………………………………………………………………. 322
Ejemplos con entradas analógicas (potenciómetros) …………………………………….. 328
Ejemplo de uso de joysticks como entradas analógicas …………………………………. 336
Ejemplo de uso de pulsadores como entradas analógicas ……………………………… 338
Sensores capacitivos ………………………………………………………………………………… 342
Cambiar el voltaje de referencia de las lecturas analógicas ……………………………. 347
CONTROL DE MOTORES DC ……………………………………………………………………… 349
El chip L293 …………………………………………………………………………………………….. 355
Módulos de control para motores DC …………………………………………………………. 357
La placa TB6612FNG …………………………………………………………………………….. 357
Otros módulos …………………………………………………………………………………….. 359
Shields de control para motores DC (y paso a paso) ……………………………………… 360
El “Adafruit Motor Shield” …………………………………………………………………….. 360
Otros shields ……………………………………………………………………………………….. 361
EMISIÓN DE SONIDO ………………………………………………………………………………. 365
Uso de zumbadores …………………………………………………………………………………. 365
Las funciones tone() y noTone() …………………………………………………………………. 368
Uso de altavoces ……………………………………………………………………………………… 373
Amplificación simple del sonido ………………………………………………………………… 375
Sonidos pregrabados ……………………………………………………………………………….. 378
La librería “SimpleSDAudio” ………………………………………………………………….. 378
El “Wave Shield” de Adafruit …………………………………………………………………. 380
Shields que reproducen MP3 …………………………………………………………………. 381
Módulos de audio ………………………………………………………………………………… 383
Reproductores de voz …………………………………………………………………………… 387
CAPÍTULO 7. SENSORES …………………………………………………………………………… 391
SENSORES DE LUZ VISIBLE ……………………………………………………………………….. 392
Fotorresistores ………………………………………………………………………………………… 392
El sensor digital TSL2561 …………………………………………………………………………… 405
El sensor analógico TEMT6000 ………………………………………………………………….. 405
SENSORES DE LUZ INFRARROJA ………………………………………………………………… 406
Fotodiodos y fototransistores ……………………………………………………………………. 406
Control remoto ……………………………………………………………………………………….. 411
SENSORES DE TEMPERATURA …………………………………………………………………… 423
Termistores …………………………………………………………………………………………….. 423
El chip analógico TMP36 …………………………………………………………………………… 428
© Alfaomega-RC Libros
ÍNDICE
XIII
El chip digital DS18B20 y el protocolo 1-Wire …………………………………………………….. 432
La plaquita breakout TMP421 ……………………………………………………………………………. 434
SENSORES DE HUMEDAD …………………………………………………………………………. 435
El sensor DHT22/RHT03 …………………………………………………………………………………….. 435
Los sensores SHT15 y SHT21 ……………………………………………………………………………… 439
SENSORES DE DISTANCIA …………………………………………………………………………. 440
El sensor Ping))) …………………………………………………………………………………………………. 440
El sensor SRF05 ………………………………………………………………………………………………….. 443
El sensor HC-SR04 ……………………………………………………………………………………………… 446
El sensor LV-EZ0 …………………………………………………………………………………………………. 446
Los sensores GP2Yxxx ………………………………………………………………………………………… 448
El sensor IS471F …………………………………………………………………………………………………. 451
Los sensores QRD1114 y QRE1113 …………………………………………………………………….. 451
SENSOR DE INCLINACIÓN ………………………………………………………………………… 452
SENSORES DE MOVIMIENTO …………………………………………………………………….. 454
EL SENSOR EPIR …………………………………………………………………………………………………. 458
SENSORES DE CONTACTO ………………………………………………………………………… 461
Sensores de fuerza …………………………………………………………………………………………….. 461
Sensores de flexión ……………………………………………………………………………………………. 466
Sensores de golpes ……………………………………………………………………………………………. 467
SENSORES DE SONIDO …………………………………………………………………………….. 470
Plaquitas breakout …………………………………………………………………………………………….. 471
Circuitos pre-amplificadores ………………………………………………………………………………. 475
Reconocimiento de voz ……………………………………………………………………………………… 479
CAPÍTULO 8. COMUNICACIÓN EN RED ……………………………………………………….. 481
CONCEPTOS BÁSICOS SOBRE REDES ………………………………………………………….. 481
Dirección IP ……………………………………………………………………………………………………….. 481
Máscara de red ………………………………………………………………………………………………….. 482
Direcciones IP privadas ………………………………………………………………………………………. 483
Dirección MAC …………………………………………………………………………………………………… 485
Servidores DNS ………………………………………………………………………………………………….. 486
Puerta de enlace predeterminada ……………………………………………………………………… 487
USO DE LA PLACA/SHIELD ARDUINO ETHERNET ………………………………………….. 488
Configuración inicial de los parámetros de red ………………………………………………….. 488
Uso de Arduino como servidor ………………………………………………………………………….. 491
El uso de ips públicas para acceder a Arduino ………………………………………….. 496
Uso de Arduino como cliente …………………………………………………………………………….. 498
Caso práctico: servidor web integrado en la placa/shield Arduino ……………………. 505
Caso práctico: servidor web con tarjeta SD ……………………………………………………….. 508
© Alfaomega-RC Libros
ARDUINO. CURSO PRÁCTICO DE FORMACIÓN
XIV
Caso práctico: formulario web de control de actuadores ………………………………….. 511
Caso práctico: envío de mensajes a Twitter.com ……………………………………………….. 516
Caso práctico: envío de datos a Cosm.com …………………………….