Índice
1. Introducción ................................................................................................. 1
1.1 Ecosistema de Arduino ............................................................................ 2
1.2 Software y hardware abierto ................................................................... 4
1.3 Sistemas embebidos ................................................................................ 6
1.4 Componentes básicos en electrónica ...................................................... 7
1.5 Bibliografía ............................................................................................... 9
2. Hardware ................................................................................................... 11
2.1 Esquemático de Arduino UNO ............................................................... 11
2.2 Alimentación .......................................................................................... 12
2.3 Microcontrolador ................................................................................... 14
2.4 Periféricos internos ................................................................................ 17
2.4.1 Sistema de reloj .............................................................................. 18
2.4.2 Temporizadores ............................................................................. 19
2.4.3 PWM .............................................................................................. 19
2.4.4 I2C ................................................................................................... 20
2.4.5 SPI .................................................................................................. 21
2.4.6 USART ............................................................................................ 22
2.5 CSP ......................................................................................................... 23
2.6 USB ......................................................................................................... 24
2.7 Conector de pines .................................................................................. 25
2.8 Tipos de placas ....................................................................................... 27
2.9 Tipos de shields ...................................................................................... 30
2.10 Bibliografía ........................................................................................... 31
Sistemas integrados con Arduino
3. Programación ............................................................................................. 33
3.1 IDE .............................................................................................................. 33
3.1.1 Instalación .......................................................................................... 33
3.1.2 Descripción del entorno ...................................................................... 36
3.1.3 Otros entornos de desarrollo .............................................................. 40
3.2 Comenzando a programar con Arduino .................................................... 41
3.3 Programación............................................................................................. 43
3.3.1 Directivas del precompilador .............................................................. 44
3.3.2 Comentarios ........................................................................................ 47
3.3.3 Tipos de datos ..................................................................................... 48
3.3.4 Operadores ......................................................................................... 56
3.3.5 Estructuras de decisión ....................................................................... 61
3.3.6 Estructuras de repetición .................................................................... 65
3.3.7 Funciones ............................................................................................ 69
3.4 Estudio del programa Blink ........................................................................ 74
3.5 Depuración ................................................................................................ 79
3.6 Bibliografía ................................................................................................. 83
4. Acceso al hardware .................................................................................... 85
4.1 Entradas y salidas digitales ........................................................................ 85
4.1.1 Entrada ............................................................................................... 85
4.1.2 Salida .................................................................................................. 89
4.1.3 Puertos ................................................................................................ 90
4.1.4 Ejemplo: Push-button y LED ................................................................ 91
4.1.5 Ejemplo: secuencia de luces del coche fantástico............................... 94
4.2 Conversión analógico-digital ..................................................................... 96
4.2.1 Ejemplo: sensor de temperatura ........................................................ 99
4.3 Salida analógica ....................................................................................... 102
4.3.1 Ejemplo: control de iluminación de un LED....................................... 105
4.4 Bibliografía ............................................................................................... 109
5. Comunicaciones ....................................................................................... 111
5.1 USART ...................................................................................................... 111
5.1.1 Comunicación serie usando librería software................................... 114
5.1.2 Manejo de strings ............................................................................. 115
5.1.3 Ejemplo: GPS ..................................................................................... 117
5.2 I2C/SPI ...................................................................................................... 126
5.2.1 Ejemplo: RTC ..................................................................................... 130
5.3 Stream...................................................................................................... 137
5.4 Bibliografía ............................................................................................... 138
6. Periféricos del microcontrolador .............................................................. 139
6.1 Temporización ......................................................................................... 139
6.1.1 Ejemplo: cambiar la frecuencia de trabajo de la salida PWM .......... 142
6.2 Interrupciones ......................................................................................... 147
6.2.1 Externas ............................................................................................ 149
6.2.2 Internas ............................................................................................. 151
6.2.3 Watchdog ......................................................................................... 159
6.3 Sleep ........................................................................................................ 161
6.3.1 Ejemplo: Sleep y despertar con evento externo ................................ 163
6.4 Memorias ................................................................................................. 165
6.4.1 RAM .................................................................................................. 165
6.4.2 Flash .................................................................................................. 166
6.4.3 EEPROM ............................................................................................ 168
6.5 Bibliografía ............................................................................................... 173
7. Librerías ................................................................................................... 175
7.1 SD Card .................................................................................................... 177
Sistemas integrados con Arduino
7.1.1 Ejemplo: datalog ............................................................................... 179
7.2 Ethernet ................................................................................................... 182
7.2.1 Ejemplo: servidor web....................................................................... 187
7.3 Comunicaciones inalámbricas ................................................................. 196
7.3.1 RFID ................................................................................................... 197
7.3.2 Wifi.................................................................................................... 201
7.3.3 ZigBee ............................................................................................... 209
7.4 Pantalla TFT ............................................................................................. 224
7.4.1 Ejemplo: graficar señal analógica .................................................... 226
7.5 Motores ................................................................................................... 233
7.5.1 Motores paso a paso ........................................................................ 233
7.5.2 Servomotores .................................................................................... 238
7.6 Bibliografía ............................................................................................... 246
8. Comunicación con otras plataformas ........................................................ 249
8.1 Graficar valores con MakerPlot ............................................................... 249
8.2 Firmata ..................................................................................................... 251
8.2.1 Ejemplo: programa en Arduino......................................................... 254
8.2.2 Ejemplo: aplicación en PC con .NET .................................................. 256
8.3 Intérprete de comandos .......................................................................... 257
8.4 LabVIEW ................................................................................................... 261
8.5 MATLAB ................................................................................................... 263
8.6 Android .................................................................................................... 264
8.6.1 Ejemplo: programa en Arduino......................................................... 267
8.6.2 Ejemplo: programa en Android......................................................... 267
8.7 Servicios web ........................................................................................... 273
8.8 Internet of things ..................................................................................... 276
8.9 Bibliografía ............................................................................................... 282
9. Núcleo de Arduino ................................................................................... 285
9.1 Toolchain ................................................................................................. 285
9.1.1 Preprocesador ................................................................................... 286
9.1.2 Compilador ....................................................................................... 287
9.1.3 Linker ................................................................................................ 288
9.1.4 Bootloader y programadores............................................................ 289
9.2 Core.......................................................................................................... 290
9.3 Crear nuevas librerías ............................................................................... 293
9.3.1 Ejemplo: conmutación de pin ........................................................... 297
9.4 Crear nuevas placas ................................................................................. 299
9.5 Bibliografía ............................................................................................... 302
10. Apéndices............................................................................................... 303