Autor: TORRENTE, Oscar
Páginas: 568
Coedición: Alfaomega, RC Libros
$25.230
Autor: TORRENTE, Oscar
Páginas: 568
Coedición: Alfaomega, RC Libros
Compra en hasta 12 pagos mensuales sin usar tarjeta de crédito
¿Tienes dudas? Consulta nuestra FAQ . Crédito sujeto a aprobación.
Cualquier técnico electrónico o aficionado a la electrónica necesita en alguna ocasión trabajar con microcontroladores. Esta tarea, durante años compleja, actualmente es mucho más simple gracias a Genuino-Arduino. Genuino-Arduino permite que cualquier persona (incluso profana en la electrónica y la programación) 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 (por nombrar solo dos) se han visto radicalmente impulsados con la llegada de Genuino-Arduino, aunque es utilizado en muchos otros campos multidisciplinares, tales como el control y monitoraje de sensores, la activación remota de circuitos electromecánicos (vía Internet incluso), el montaje de instalaciones audiovisuales, etc. Genuino-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. Genuino-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. 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. Solo con la ayuda de una placa Genuino-Arduino y un conjunto básico de componentes electrónicos (resistencias, condensadores, LEDs, etc.), ya podrá hacer realidad todos los circuitos descritos.
VENTAJAS
CONOZCA
Cómo realizar circuitos electrónicos que sean capaces de interaccionar con el mundo físico real. .
APRENDA
La activación remota de circuitos electromecánicos (vía Internet incluso), el montaje de instalaciones audiovisuales, etc.
A QUIEN VA DIRIGIDO
A estudiantes de las carreras de ingeniería mecatrónica y a cualquier técnico electrónico.
Cursos (ejemplos)
Ingeniería y Mecatrónica
ÍNDICE:
Breve nota sobre los “softpots” o potenciómetros de “membrana” …………………………. 41
Otras resistencias de valor variable ………………………………………………………………………….. 42
Diodos (y LEDs) ……………………………………………………………………………………………………… 42
Breve nota sobre los “datasheets” ……………………………………………………………………….. 43
Un tipo de diodo muy particular: el LED ……………………………………………………………….. 45
Breve nota sobre los LEDs RGB ……………………………………………………………………………. 47
Condensadores ……………………………………………………………………………………………………… 48
Usos comunes de los condensadores: desacople y filtro …………………………………………. 51
Transistores …………………………………………………………………………………………………………… 52
Pulsadores ……………………………………………………………………………………………………………. 56
Otros tipos de interruptores (o conmutadores) …………………………………………………………. 57
Reguladores de tensión ………………………………………………………………………………………….. 59
Breve nota sobre los elevadores DC/DC ……………………………………………………………….. 62
Placas de prototipado …………………………………………………………………………………………….. 64
Cables ………………………………………………………………………………………………………………….. 68
USO DE UNA PLACA DE PROTOTIPADO ……………………………………………………………… 70
Breve nota sobre cómo alimentar circuitos en placas de prototipado ………………………. 70
USO DE UN MULTÍMETRO DIGITAL …………………………………………………………………… 77
CAPÍTULO 2. HARDWARE GENUINO ……………………………………………………………. 83
¿QUÉ ES UN SISTEMA ELECTRÓNICO? ………………………………………………………………. 83
¿QUÉ ES UN MICROCONTROLADOR? ……………………………………………………………….. 84
¿QUÉ ES GENUINO/ARDUINO? ……………………………………………………………………….. 86
¿CUÁL ES EL ORIGEN DE ARDUINO? …………………………………………………………………. 88
¿QUÉ QUIERE DECIR QUE ARDUINO SEA “SOFTWARE LIBRE”? …………………………….. 89
¿QUÉ QUIERE DECIR QUE ARDUINO SEA “HARDWARE LIBRE”? ……………………………. 90
¿POR QUÉ ELEGIR ARDUINO? …………………………………………………………………………. 92
EL MICRO DE LAS PLACAS ARDUINO (y del modelo UNO en particular) ………………… 93
El encapsulado del microcontrolador ……………………………………………………………………….. 93
DIP …………………………………………………………………………………………………………………… 94
SMD ………………………………………………………………………………………………………………… 95
El modelo del microcontrolador ………………………………………………………………………………. 97
Arquitectura AVR ………………………………………………………………………………………………. 98
Arquitectura ARM ……………………………………………………………………………………………… 98
Breve nota sobre AVR vs. ARM (y x86) ………………………………………………………………….. 99
El chip ATmega328P …………………………………………………………………………………………. 100
Las memorias del microcontrolador ……………………………………………………………………….. 101
Breve nota sobre las unidades de medida de la información …………………………………. 102
Breve nota sobre las diferencias entre memorias Flash y EEPROM …………………………. 105
Los registros del microcontrolador …………………………………………………………………………. 106
La comunicación serie con el exterior …………………………………………………………………….. 106
Comunicación asíncrona …………………………………………………………………………………… 108
Comunicación síncrona …………………………………………………………………………………….. 108
El gestor de arranque (“bootloader”) del microcontrolador ……………………………………….. 113
Los gestores de arranque de las placas Due y Zero (ARM) ……………………………………… 115
Otros gestores de arranque más exóticos ……………………………………………………………. 116
CARACTERÍSTICAS DE LA PLACA ARDUINO UNO ………………………………………………. 117
La alimentación eléctrica ………………………………………………………………………………………. 117
El chip ATmega16U2 ……………………………………………………………………………………………… 121
Breve nota sobre la tecnología TTL y sus niveles HIGH/LOW aceptados ………………….. 121
Reprogramación del chip ATmega16U2……………………………………………………………….. 123
Breve nota sobre los “pogo pins” ……………………………………………………………………….. 124
Breve nota sobre los VID y PID …………………………………………………………………………… 126
Las entradas y salidas digitales ………………………………………………………………………………. 126
Las entradas analógicas ………………………………………………………………………………………… 127
Las salidas analógicas (PWM) ………………………………………………………………………………… 129
Otros usos de los pines-hembra de la placa …………………………………………………………….. 133
El conector ICSP …………………………………………………………………………………………………… 136
SPI ………………………………………………………………………………………………………………….. 136
ISP ………………………………………………………………………………………………………………….. 137
Breve nota sobre cómo realizar una programación ISP con el entorno Arduino ……….. 140
El reloj ………………………………………………………………………………………………………………… 141
Los temporizadores (“timers”) del microcontrolador ……………………………………………. 143
El botón de “reset” ……………………………………………………………………………………………….. 144
Obtener el diseño esquemático y de referencia ……………………………………………………….. 145
¿QUÉ OTRAS PLACAS ARDUINO OFICIALES EXISTEN? ……………………………………….. 146
Arduino Pro …………………………………………………………………………………………………………. 146
Los pines-hembra (y otros) ………………………………………………………………………………… 147
Los adaptadores USB-Serie ……………………………………………………………………………….. 148
Arduino Pro Mini ………………………………………………………………………………………………….. 149
Arduino Nano ………………………………………………………………………………………………………. 150
Arduino Mega 2560 ……………………………………………………………………………………………… 151
Arduino Micro ……………………………………………………………………………………………………… 151
El “auto-reset” del micro ATmega32U4 ……………………………………………………………….. 153
Arduino Yún …………………………………………………………………………………………………………. 153
Breve nota sobre cómo conseguir cargar programas en la placa Yún vía WiFi ………….. 157
Arduino Lilypad, Lilypad Simple, Lilypad SimpleSnap y LilypadUSB ……………………………… 161
Arduino Gemma …………………………………………………………………………………………………… 163
Arduino Due ………………………………………………………………………………………………………… 163
Arduino Zero ……………………………………………………………………………………………………….. 165
Arduino 101 ………………………………………………………………………………………………………… 167
Tablas comparativas de los diferentes modelos de placas ………………………………………….. 168
Breve nota sobre las regulaciones del espectro electromagnético ………………………….. 170
¿QUÉ “SHIELDS” ARDUINO OFICIALES EXISTEN? ………………………………………………. 170
Arduino Ethernet Shield ……………………………………………………………………………………….. 171
Breve nota sobre Ethernet ………………………………………………………………………………… 172
PoE (“Power Over Ethernet”) …………………………………………………………………………….. 174
Arduino WiFi Shield 101 ……………………………………………………………………………………….. 177
Arduino GSM Shield ……………………………………………………………………………………………… 178
Arduino Motor Shield …………………………………………………………………………………………… 179
Arduino Proto Shield …………………………………………………………………………………………….. 181
¿QUÉ SHIELDS NO OFICIALES EXISTEN? ………………………………………………………….. 182
Proto Shields ……………………………………………………………………………………………………….. 182
Power Shields ……………………………………………………………………………………………………… 183
¿QUÉ PLACAS ARDUINO NO OFICIALES EXISTEN? …………………………………………….. 184
CAPÍTULO 3. SOFTWARE ARDUINO ……………………………………………………………. 191
¿QUÉ ES UN IDE? …………………………………………………………………………………………. 191
INSTALACIÓN DEL IDE ARDUINO ……………………………………………………………………. 192
Cualquier sistema Linux ………………………………………………………………………………………… 192
Posible problema: la configuración del gestor de ficheros Nautilus ………………………… 193
Posible problema: los permisos de usuario …………………………………………………………. 193
Breve nota sobre el reconocimiento y uso de dispositivos USB-ACM en Linux …………. 194
Cualquier sistema Linux (a partir del código fuente) …………………………………………………. 195
Windows …………………………………………………………………………………………………………….. 195
Posible problema: instalación del “driver” ………………………………………………………….. 196
Breve nota sobre el reconocimiento y uso de dispositivos COM en Windows ………….. 196
OS X …………………………………………………………………………………………………………………… 196
PRIMER CONTACTO CON EL IDE …………………………………………………………………….. 197
HERRAMIENTAS EXTRA INTEGRADAS EN EL IDE ……………………………………………….. 203
Las librerías y el “Library Manager” ………………………………………………………………………… 203
Concepto de librería ………………………………………………………………………………………… 203
Cómo instalar librerías (de terceros) manualmente ……………………………………………… 204
Cómo instalar librerías (de terceros) usando el “Library Manager” …………………………. 205
Cómo importar librerías ……………………………………………………………………………………. 206
El “Boards Manager” ……………………………………………………………………………………………. 207
El “Serial Monitor” y otros terminales serie …………………………………………………………….. 210
Ejecución del “auto-reset” al abrir el “Serial Monitor” ………………………………………….. 211
COMPROBACIÓN DEL CORRECTO FUNCIONAMIENTO DEL IDE …………………………… 213
USO DEL IDE EN EL INTÉRPRETE DE COMANDOS ……………………………………………… 215
USO DEL IDE “ARDUINO CREATE” …………………………………………………………………… 217
OTROS IDEs ALTERNATIVOS …………………………………………………………………………… 218
Entornos “online” ………………………………………………………………………………………………… 220
Entornos de programación gráfica ………………………………………………………………………….. 221
MÁS ALLÁ DEL LENGUAJE ARDUINO: EL LENGUAJE C/C++ …………………………………. 223
Herramientas de compilación C/C++ y carga incluidas en el IDE …………………………………. 225
Herramientas invocadas mediante el botón “Verify” …………………………………………….. 225
Herramientas invocadas mediante el botón “Upload” …………………………………………… 227
CAPÍTULO 4. LENGUAJE ARDUINO …………………………………………………………….. 229
MI PRIMER SKETCH ARDUINO ……………………………………………………………………….. 229
ESTRUCTURA GENERAL DE UN SKETCH …………………………………………………………… 230
Sobre las mayúsculas, tabulaciones y los punto y coma ………………………………………… 231
COMENTARIOS ……………………………………………………………………………………………. 232
VARIABLES ………………………………………………………………………………………………….. 233
Declaración e inicialización de una variable ……………………………………………………………… 233
Asignación de valores a una variable ………………………………………………………………………. 234
Ámbito de una variable …………………………………………………………………………………………. 235
Tipos posibles de una variable ……………………………………………………………………………….. 236
Tipos simples …………………………………………………………………………………………………… 236
Breve nota sobre ASCII, ISO-8859-1 y UTF-8 ………………………………………………………… 238
Breve nota sobre el uso de los sistemas binario y hexadecimal ………………………………. 240
Breve nota sobre la importancia de los rangos de valores válidos …………………………… 241
Tipos complejos ……………………………………………………………………………………………….. 244
Breve nota sobre los arrays de caracteres y el tipo de datos String …………………………. 246
Breve nota sobre los punteros …………………………………………………………………………… 247
La instrucción sizeof() ……………………………………………………………………………………………. 250
Cambio de tipo de datos (numéricos) ……………………………………………………………………… 251
CONSTANTES ………………………………………………………………………………………………. 254
PARÁMETROS DE UNA INSTRUCCIÓN …………………………………………………………….. 255
VALOR DE RETORNO DE UNA INSTRUCCIÓN ……………………………………………………. 256
LA COMUNICACIÓN SERIE CON LA PLACA ARDUINO ………………………………………… 257
Instrucciones para enviar datos desde la placa al exterior …………………………………………. 258
Uso del “Serial Plotter” ……………………………………………………………………………………… 262
Instrucciones para recibir datos desde el exterior …………………………………………………….. 263
Los objetos serie de otras placas Arduino diferentes de la UNO …………………………………. 271
INSTRUCCIONES DE GESTIÓN DEL TIEMPO ……………………………………………………… 273
INSTRUCCIONES MATEMÁTICAS, TRIGONOMÉTRICAS Y DE
PSEUDOALEATORIEDAD …………………………………………………………………………… 275
INSTRUCCIONES DE GESTIÓN DE CADENAS …………………………………………………….. 282
CREACIÓN DE INSTRUCCIONES (FUNCIONES) PROPIAS ……………………………………… 287
Funciones con parámetros opcionales (“sobrecarga”) ………………………………………………. 291
Funciones con estructuras como parámetros o valor de retorno ………………………………… 292
Funciones con más de un valor de retorno (“paso por referencia”) …………………………….. 294
Las variables static ……………………………………………………………………………………………….. 296
BLOQUES CONDICIONALES ……………………………………………………………………………. 297
Los bloques if e if/else ………………………………………………………………………………………….. 297
El bloque switch …………………………………………………………………………………………………… 303
BLOQUES REPETITIVOS (BUCLES) …………………………………………………………………… 305
El bloque while ……………………………………………………………………………………………………. 305
El bloque do ………………………………………………………………………………………………………… 308
El bloque for ……………………………………………………………………………………………………….. 308
Las instrucciones break y continue …………………………………………………………………………. 312
CAPÍTULO 5. LIBRERÍAS ARDUINO …………………………………………………………….. 315
LAS LIBRERÍAS OFICIALES ……………………………………………………………………………… 315
Librería LiquidCrystal ……………………………………………………………………………………………. 316
Librería SD …………………………………………………………………………………………………………… 316
Librería Ethernet ………………………………………………………………………………………………….. 316
Librería WiFi101 …………………………………………………………………………………………………… 317
Librería Temboo …………………………………………………………………………………………………… 317
Librería GSM ……………………………………………………………………………………………………….. 317
Librería SPI ………………………………………………………………………………………………………….. 317
Librería Wire ……………………………………………………………………………………………………….. 318
Librería SoftwareSerial …………………………………………………………………………………………. 318
Librería Firmata …………………………………………………………………………………………………… 319
Librerías Servo y Stepper ………………………………………………………………………………………. 320
Librerías Keyboard y Mouse (solo para placas basadas en el chip ATmega32U4 y
para los modelos Due y Zero) ……………………………………………………………………………… 320
Librería EEPROM (para todas las placas excepto los modelos Due y Zero) …………………… 321
Librerías USBHost y Scheduler (solo para los modelos Due y Zero) …………………………….. 321
Librería Audio (solo para el modelo Due) ………………………………………………………………… 322
Librerías AudioZero y RTCZero (solo para el modelo Zero) …………………………………………. 322
Librerías Bridge y SpacebrewYún (solo para el modelo Yún) ………………………………………. 323
USO DE PANTALLAS LCD ……………………………………………………………………………….. 324
Las pantallas de cristal líquido (LCDs) ……………………………………………………………………… 324
La librería LiquidCrystal ………………………………………………………………………………………… 327
Librerías de terceros interesantes para usar con LCDs ………………………………………………. 334
Módulos LCD de tipo I2 C o TTL-Serie ………………………………………………………………………. 335
Backpacks I2 C ………………………………………………………………………………………………….. 336
Backpacks serie ……………………………………………………………………………………………….. 337
Shields que incorporan LCDs …………………………………………………………………………………. 339
Shields y módulos que incorporan GLCDs ……………………………………………………………….. 341
Breve nota sobre los convertidores de nivel bidireccionales ………………………………….. 343
Breve nota sobre la visualización de imágenes “al vuelo” ……………………………………… 345
USO DE PANTALLAS TFT ………………………………………………………………………………. ..347
Shields y módulos que incorporan pantallas TFT ……………………………………………………… 347
Breve nota sobre la librería “Adafruit GFX” …………………………………………………………. 348
Shields y módulos que incorporan pantallas TFT táctiles …………………………………………… 351
Pantallas TFT táctiles resistivas vs. pantallas TFT táctiles capacitivas ………………………. 351
De tecnología resistiva ……………………………………………………………………………………… 352
De tecnología capacitiva …………………………………………………………………………………… 357
USO DE PANTALLAS OLED ……………………………………………………………………………… 359
Las pantallas OLED ……………………………………………………………………………………………….. 359
Módulos OLED de 4DSystems ………………………………………………………………………………… 359
Módulos OLED de Adafruit ……………………………………………………………………………………. 360
USO DE OTRAS PANTALLAS ……………………………………………………………………………. 362
7-segmentos………………………………………………………………………………………………………… 363
Necesidad de aumentar el número de pines de salida ………………………………………….. 364
Shields y módulos que incorporan displays 7-segmentos ………………………………………. 365
Matrices de LEDs ………………………………………………………………………………………………….. 369
USO DE LA MEMORIA EEPROM ……………………………………………………………………… 371
USO DE TARJETAS SD ……………………………………………………………………………………. 375
Características de las tarjetas SD ……………………………………………………………………………. 375
Shields y módulos que incorporan zócalos microSD ………………………………………………….. 377
La librería SD ……………………………………………………………………………………………………….. 379
USO DE PUERTOS SERIE SOFTWARE ……………………………………………………………….. 388
USO DE MOTORES ……………………………………………………………………………………….. 392
Conceptos básicos sobre motores ………………………………………………………………………….. 392
Tipos de motores …………………………………………………………………………………………………. 394
Los motores DC ……………………………………………………………………………………………….. 394
Los servomotores …………………………………………………………………………………………….. 396
Los motores paso a paso …………………………………………………………………………………… 399
La librería Servo …………………………………………………………………………………………………… 402
La librería Stepper ………………………………………………………………………………………………… 407
CAPÍTULO 6. ENTRADAS Y SALIDAS ……………………………………………………………. 411
USO DE LAS ENTRADAS Y SALIDAS DIGITALES ………………………………………………….. 411
Ejemplos con salidas digitales ………………………………………………………………………………… 414
Evitando el uso de la función delay() ?y de delayMicroseconds()? ………………………….. 418
Múltiples salidas en paralelo ……………………………………………………………………………… 424
Ejemplos con entradas digitales (pulsadores) …………………………………………………………… 437
Implementación de pulsadores momentáneos …………………………………………………….. 440
Implementación de pulsadores mantenidos ………………………………………………………… 444
Evitando el rebote (“bounce”) en los pulsadores ………………………………………………….. 450
Juegos …………………………………………………………………………………………………………….. 452
Keypads digitales ………………………………………………………………………………………………….. 458
USO DE LAS ENTRADAS Y SALIDAS ANALÓGICAS ……………………………………………… 461
Ejemplos con salidas analógicas …………………………………………………………………………….. 464
Control interactivo (mediante pulsadores) ………………………………………………………….. 466