Kitabı oku: «Aprender Arduino, electrónica y programación con 100 ejercicios prácticos»
SAQUE EL MÁXIMO RENDIMIENTO A ESTE MANUAL CON EL
·Código ISBN de referencia: 9788426727169
·Disponible en www.marcombo.com (se recomienda realizar la búsqueda con el código ISBN)
·Componentes del KIT Aprender Arduino, electrónica y programación con 100 ejercicios prácticos:
Arduino UNO
Adaptador Jack pila
AND (74HC08)
Buzzer EL0503
Cables cocodrilo
Cables protoboard macho-hembra
Cables protoboard macho-macho
DHT11
Display 7 segmentos
DS18B20+
Joystick
LCD
LDR
Led amarillo
Led RGB
Led verde
Multímetro
NAND (74HC132)
NOR (74HC02)
NOT (74HC04)
OR (74HC32)
Pila 9 V
Pila rtc
Potenciómetro
Protoboard
Pulsadores
Resistencia 1000
Resistencia 10000
Resistencia 330
Resistencia 470
Resistencia 4700 Ω
Sensor llama
Sensor PIR
Teclado matricial
Transistor 2n2222 XNOR
(74HC266)
XOR (74HC86)
> ¿Quiere profundizar en Arduino y programación?
Si necesita ir más allá en la electrónica y la programación, le interesará el libro escrito por el mismo autor:
Aprender Arduino, prototipado y programación avanzada con 100 ejercicios prácticos
ISBN: 9788426726803
Puede sacar el máximo provecho a este otro libro de Rubén con el KIT Aprender Arduino, prototipado y programación avanzada con 100 ejercicios prácticos (ISBN: 9788426727176), disponible en www.marcombo.com. Se recomienda realizar la búsqueda con el código ISBN.
·Componentes del KIT Aprender Arduino, prototipado y programación avanzada con 100 ejercicios prácticos:
Arduino UNO
Adaptador Jack pila
Atemga328p
Cables cocodrilo
Cables protoboard macho-hembra
Cables protoboard macho-macho
Condensador 1000 µF
Condensador 0,1 µF y 25 V
Condensador 0,33 µF y 25 V
Condensador 100 µF y 25 V
Condensador 22 pF
Conversor de nivel lógico
Diodo 1N4007
Entrada analógica ADS1115
Expansor GPIO PCF8574
Interruptor protoboard
Led amarillo
Led verde
Memoria EEPROM AT24C25
Multímetro
Multiplexor CD74HC4067
Oscilador 16 Mhz
Pila 9 V
Potenciómetro
Power supply breadboard
Programador ftdi
Protoboard
Pulsadores
Registro de desplazamiento 74HC164
Regulador lm7805
Resistencia 1000
Resistencia 10000
Resistencia 1 MΩ
Resistencia 330
Resistencia 470
Resistencia 4700 Ω
Salida analógica MCP4725
También puede conseguir en www.marcombo.com el PACK Aprender Arduino, prototipado y programación avanzada con 100 ejercicios prácticos (ISBN: 9788426727046) que incluye:
> Libro Aprender Arduino, prototipado y programación avanzada con 100 ejercicios prácticos
> KIT Aprender Arduino, prototipado y programación avanzada con 100 ejercicios prácticos
> ¿Desea un kit completo para empezar desde cero y alcanzar un nivel alto?
Consiga el KIT DE ARDUINO Y ELECTRÓNICA (ISBN: 9788426727022) en www.marcombo.com Se recomienda realizar la búsqueda con el código ISBN.
· Componentes del Kit de Arduino y electrónica:
Arduino UNO
Adaptador Jack pila
AND (74HC08)
Atemga328p
Buzzer EL0503
Cables cocodrilo
Cables protoboard macho-hembra
Cables protoboard macho-macho
Condensador 1000 µF
Condensador 0,1 µF y 25 V
Condensador 0,33 µF y 25 V
Condensador 100 µF y 25 V
Condensador 22 pF
Conversor de nivel lógico
DHT11
Diodo 1N4007
Display 7 segmentos
DS18B20+
Entrada analógica ADS1115
Expansor GPIO PCF8574
Interruptor protoboard
Joystick
LCD
LDR
Led amarillo
Led RGB
Led verde
Memoria EEPROM AT24C256
Multímetro
Multiplexor CD74HC4067
NAND (74HC132)
NOR (74HC02)
NOT (74HC04)
OR (74HC32)
Oscilador 16 Mhz
Pila 9 V
Pila rtc
Potenciómetro
Power supply breadboard
Programador ftdi
Protoboard
Pulsadores
Registro de desplazamiento
74HC164 Regulador lm7805
Resistencia 1000
Resistencia 10000
Resistencia 1 MΩ
Resistencia 330
Resistencia 470
Resistencia 4700 Ω
Salida analógica MCP4725
Sensor llama
Sensor PIR
Teclado matricial
Transistor 2n2222
XNOR (74HC266)
XOR (74HC86)
> Para más información sobre los kits y las condiciones de envío, entre en www.marcombo.com o envíe un correo a info@marcombo.com
Aprender
Arduino, electrónica y programación
con 100 ejercicios prácticos
Acceda a www.marcombo.info para descargar gratis el contenido adicional complemento imprescindible de este libro
Código:APARDUIN01
Aprender
Arduino, electrónica y programación
con 100 ejercicios prácticos
Aprender Arduino, electrónica y programación con 100 ejercicios prácticos
© 2018 Rubén Beiroa Mosquera
Primera edición, 2018
© 2018 MARCOMBO, S.A.
Diseño de la cubierta: ArteMio
Maquetación: ArteMio
Correctora: Laura Seoane Sánchez-Majano
Directora de producción: Ma Rosa Castillo Hidalgo
Director de colección: Pablo Martínez Izurzu
«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra sólo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra.»
eISBN: 978-84-267-2739-8
Presentación
APRENDER ARDUINO, ELECTRÓNICA Y PROGRAMACIÓN CON 100 EJERCICIOS PRÁCTICOS
Los 100 capítulos que contiene este libro realizan un recorrido por las leyes básicas de la electrónica, los principios de la programación y las características de Arduino. Se recomienda leerlos por orden así como disponer del material básico para realizar los ejercicios prácticos: Arduino UNO, resistencias, protoboard, ledes, pulsadores y potenciómetros.
Una vez finalizado este libro, el lector habrá adquirido las técnicas y conocimientos para afrontar proyectos que en un principio se presentaban imposibles. Tendrá la capacidad de analizar soluciones existentes, realizar sus propias tesis y pruebas, y reutilizar código.
A QUIÉN VA DIRIGIDO
A todo aquel que busque iniciarse en la electrónica, la programación o adentrarse en el mundo de Arduino.
También está dirigido a aquellos que ya hayan realizado sus primeros pasos con Arduino, pues en este libro encontrarán las respuestas a las dudas que les surjan y aquellas que no hayan podido resolver hasta ahora.
LA FORMA DE APRENDER
Nuestra experiencia en el ámbito de la enseñanza nos ha llevado a diseñar este tipo de manual, en el que cada una de las funciones se ejercita mediante la realización de un ejercicio práctico. Dicho ejercicio se halla explicado paso a paso y pulsación a pulsación, a fin de no dejar ninguna duda en su proceso de ejecución. Además, lo hemos ilustrado con imágenes descriptivas de los pasos más importantes o de los resultados que deberían obtenerse y con recuadros IMPORTANTE que ofrecen información complementaria sobre los temas tratados en los ejercicios.
LOS ARCHIVOS NECESARIOS
En la parte inferior de la primera página del libro encontrará el código de acceso que le permitirá descargar de forma gratuita los contenidos adicionales del libro en www.marcombo.info.
Cómo leer los libros “Aprender…”
A mis padres, por su apoyo, y a la Editorial Marcombo, por su confianza.
Índice
001¿Qué es Arduino?
002MCU
003Hardware Arduino
004Análisis de un Arduino
005Arduino UNO
006Comparativa Arduinos
007Hardware libre
008Software Arduino
009Lenguaje de programación
010Historia y filosofía de Arduino
011Intensidad y tensión
012Resistencia
013Ley de Ohm
014Diodo led
015Leyes de Kirchhoff
016Conectar un led a Arduino
017Conexión Arduino IDE
018Conociendo el IDE y la programación
019Reglas y comentarios en programación
020pinMode digitalWrite
021Cargar el primer programa
022Temporizaciones
023Entradas digitales
024Alimentación
025Pulsador Pull Down y digitalRead
026Pulsador Pull_Up e Input Pull_Up
027Invertir salida
028Variables
029Comunicación Serie
030Monitorización
031Transistores en CI
032Polarización y curvas características del BJT
033Circuito BJT
034Puertas lógicas
035Operador y puerta lógica AND
036Operador y puerta lógica NAND
037Operador y puerta lógica OR
038Operador y puerta lógica NOR
039Operador y puerta lógica XOR
040Operador y puerta lógica XNOR
041Variables numéricas y sistema binario
042Registros de los pines digitales
043Resistencias en serie o en paralelo
044Potenciómetro
045Señales y entradas analógicas
046Señales PWM
047Generar señales PWM
048Estructuras de control
049Elementos básicos de un diagrama de flujo
050Estructura de Control if
051if… else
052if… else anidados
053Ampliación de operadores
054switch
055while
056do while
057for
058Directivas
059break y continue
060goto
061Caracteres tabla ASCII
062Caracteres
063Caracteres de control
064Transmisión de datos, comunicación serie
065Recepción datos, comunicación serie
066Control de Arduino por puerto serie
067Conversión de datos
068Comunicación serie entre Arduinos
069Librerías
070SoftwareSerial
071Funciones
072Funciones con valor de retorno
073Pasar parámetros a una función
074Pestañas IDE Arduino
075Vectores
076Gráficas puerto serie
077Instrucciones matemáticas
078Instrucciones trigonométricas
079Generar números pseudoaleatorios
080Reset
081Pin AREF
082Conector ICSP
083Librerías IDE Arduino
084Shields Arduino
085Led RGB
086LDR
087Buzzers
088Tone() noTone()
089Sensor temperatura DS18B20
090Sensor humedad y temperatura
091Display 7 segmentos
092Joystick
093PIR :Sensor de movimiento
094Sensor de llama
095Teclado matricial
096Pantalla LCD (I)
097Pantalla LCD (II)
098RTC Arduino(I)
099RTC Arduino(II)
100Fritzing
001
¿Qué es Arduino?
IMPORTANTE
Puesto que Arduino es una plataforma son necesarios conocimientos sobre diferentes áreas o elementos que intervienen en el uso de Aduino:
•Electrónica
•Programación
•Software
•Hardware
Para que el aprendizaje sea más rápido y entretenido, en este libro se desarrolla mediante casos prácticos que permitan ir adquiriendo conocimientos sobre cada una de las cuatro áreas anteriormente mencionadas de forma paralela.
Arduino se ha convertido en un referente del hardware libre que surgió como una herramienta para estudiantes pero que, poco a poco, ha conseguido romper barreras. Cada vez son más las personas que ven en esta plataforma la herramienta idónea para aprender todo aquello que quisieron conocer y no pudieron.
Debido a su filosofía, a una gran comunidad de desarrolladores y desarrolladoras y a toda la tecnología y plataformas de las que disponemos, Arduino se ha convertido en una herramienta básica en el movimiento maker (crear objetos artesanales, pero utilizando la tecnología), la docencia (en las áreas de ciencia, ingeniería, tecnología y matemáticas), el impulso del IoT (Internet of Things o «Internet de las cosas») y el prototipado.
Todos aquellos que hayan estudiado electrónica o programación saben que muchos de los conceptos básicos son muy abstractos. Con Arduino esto cambia: en el momento en el que aprendamos, por ejemplo, una nueva instrucción, podemos realizar un programa de pocas líneas, conectar un simple led y, si el led se enciende (si ese es nuestro objetivo), significa que, no solo hemos aprendido algo nuevo, sino que hemos afianzado ese conocimiento.
¿Y si no funciona ese programa? Lo modificaremos las veces que sea necesario hasta que encontremos el error. Este proceso de aprendizaje es relativamente rápido. Sin embargo, Arduino no es solo una herramienta importante en el aprendizaje, sino también en el desarrollo de prototipos, en el que disponemos de un hardware totalmente operativo.
Empecemos por ver qué es Arduino: Arduino es una plataforma libre, educativa y de desarrollo. Generalmente, cuando se habla de un Arduino –«Estoy programando un Arduino»–, nos estamos refiriendo al elemento físico de la plataforma Arduino, su hardware (también conocido como tarjeta, placa o PCB). Arduino es algo más que un hardware, por lo que su definición más exacta es la de plataforma formada por: un hardware, un software (o entorno de programación) y un lenguaje de programación .
La función de la plataforma Arduino es facilitar el uso de un microcontrolador (MCU) . A partir de ahora utilizaremos las siglas MCU para referirnos a un microcontrolador.
002
MCU
IMPORTANTE
¿Control de procesos?
Qué complejo parece esto… Vamos a buscar en el diccionario de la RAE qué significa «control» y «proceso».
•Control: «Regulación manual o automática sobre un sistema».
•Proceso: «Conjunto de fases sucesivas de un fenómeno natural o de una operación artificial».
Entonces el control de procesos sería la regulación manual o automática sobre un conjunto de fases sucesivas de un fenómeno natural o de una operación artificial.
Un MCU es un circuito integrado que puede ser reprogramado y que está diseñado para el control de procesos mediante la lectura y generación de señales .
Para entender mejor qué es Arduino y un MCU supongamos que tenemos que implementar una solución para el control del nivel de líquido de un tanque. No obstante, vamos a considerar que no disponemos de una plataforma como Arduino o similar ni conocimientos previos sobre programación, electrónica, ni MCU.
Como no disponemos de Arduino, necesitamos un MCU. Primeramente, tenemos que escoger el más adecuado, considerando las características técnicas del proceso que vamos a controlar. En el mercado disponemos de varios fabricantes de MCU, todos ellos con un amplio catálogo. Tendremos que decantarnos por un fabricante y escoger un MCU de entre todos los que tiene; para analizar los MCU, necesitamos trabajar con sus manuales.
El manual de un MCU no está desarrollado para que cualquier persona, independientemente de su formación, pueda interpretarlo. Nos enfrentaremos a manuales de hasta 450 páginas, con un lenguaje muy técnico, por lo que no solo es necesario un conocimiento previo sobre MCU, sino sobre programación, muchos «mecanismos internos», como Timers, interrupciones, etc. Posiblemente, si nunca hemos programado, no entenderemos para qué sirven.
Además, debemos analizar sus limitaciones en cuanto a potencia eléctrica, y si necesita más componentes para poder operar (como osciladores, condensadores…).
También nos limitará el formato (tamaño) de cada MCU; nos encontramos con muchos que no vamos a poder «manejar» por su reducido tamaño. Aún con todas estas dificultades, vamos a suponer que nuestra elección es la correcta.
A continuación, el siguiente problema sería cómo conectar el MCU al PC para poder programarlo: tendremos que comprar un módulo para poder programarlo, lo que nos va a obligar a realizar diferentes conexiones (implicará protoboards, cables, etc.). A todo esto quizás le debamos sumar más componentes que necesite el MCU para poder operar. Sin embargo, podemos con todo, solucionamos todos estos pasos y ya estamos listos para programar. Necesitamos un entorno de programación: lo más seguro es que el fabricante del MCU disponga de uno propio, pero quizás ofrece diferentes versiones (de prueba, para estudiantes, para profesionales) y podrán ser de pago o no.
Descargamos el entorno y ahora sí que empezamos a programar. No obstante, puede que ese entorno no sea todo lo «amigable» que esperemos. Puede ser un entorno muy completo con una gran cantidad de herramientas, menús… Lo cual es bueno, pero quizás, al principio, nos llegue a confundir, aunque al final, después de revisar documentación, lo entendamos y podamos seguir.
Si no tenemos conocimientos de programación, no nos va a quedar otro remedio que aprender, tendremos que buscar información (ejemplos, documentación, manuales, etc.).
Como acabamos de ver, existe una gran cantidad de obstáculos para simplemente empezar a programar un MCU y, con todo esto, una vez que los superemos, tenemos que ser capaces de llegar a una solución, desarrollar el programa adecuado e implementar físicamente este sistema (conectarlo a un entorno).
IMPORTANTE
Sin una formación adecuada, lo más seguro es que no nos veamos capaces de afrontar este reto, pero con Arduino esto cambia. Arduino nos elimina toda una serie de obstáculos para que nuestra principal preocupación sea programar un MCU y conectar el Arduino a los elementos que intervengan en un proceso.
A continuación veremos cómo se nos platea la misma tarea con un Arduino y veremos qué papel desempeña cada uno de los elementos de la plataforma Arduino.
003
Hardware Arduino
IMPORTANTE
Es importante recalcar que Arduino no fabrica los MCU de su hardware; estos son desarrollados y fabricados por Atmel.
Arduino incorpora los MCU en el proceso de fabricación de las placas. En consecuencia, lo que hicieron fue estudiar ese manual de 450 páginas de cada MCU y dar una solución a ese problema, ofreciéndonos un sistema que incorpora todo la electrónica necesaria para programar e implementar un MCU.
Planteémonos el mismo caso del capítulo anterior, pero ahora, con un Arduino. Primeramente, al igual que pasaba con el MCU, tendremos que elegir un Arduino. Disponemos de un gran catálogo de placas Arduino, todas las placas presentan diferencias entre ellas (debido a la incorporación de periféricos como: WIFI, Ethernet, conector tarjetas SD, etc.), aunque las diferencias básicas son debidas al MCU en concreto que incorpore cada placa.
Gracias a este hardware de Arduino disponemos de:
•Conexión para PC
•La electrónica necesaria para el correcto funcionamiento del MCU
•Puntos de conexión para las patillas del MCU
•Alimentación externa (pila, batería, cargador)
Al comprar un Arduino no tenemos que preocuparnos por cómo conectarlo a nuestro PC, solo habrá que comprarlo y, con un cable USB (del tipo correspondiente según el modelo), conectarlo y empezar a programar (la mayoría de los Arduinos aportan esta solución) sin preocuparnos de si necesitamos componentes electrónicos adicionales, como ocurría cuando trabajábamos directamente con el MCU.
Además, si necesitamos conectar sensores resulta más sencillo realizar la conexión a través de los pines del Arduino que a través de las patillas de MCU.
También añadieron un conector Jack (con la electrónica correspondiente) para poder alimentar nuestro Arduino a través de pilas o baterías (no todos lo incluyen). Como disponemos de un gran catálogo de Arduino, revisaremos las placas más conocidas. Primero analizaremos el Arduino UNO y compararemos las restantes placas con respecto a este Arduino mediante un análisis básico.
Partimos entonces del Arduino UNO, ¿por qué el Arduino UNO? Porque es el único que permite reemplazar su MCU, gracias a que se encuentra insertado en un zócalo, el cual sí que está soldado a la placa y no el MCU .
El resto de Arduinos tienen directamente soldado su MCU a la placa; el no estar soldado a la placa presenta unas grandes ventajas, como la posibilidad de programar un MCU, quitarlo de la placa e insertarlo en otro sistema electrónico.
Asimismo, lo hace ideal para principiantes (y no tan principiantes). En cualquier momento podemos cometer un error y dañar nuestro Arduino y podrían darse varias posibilidades: dañar simplemente el MCU, la placa, o ambos. En los dos últimos casos, no tendríamos más remedio que reemplazar nuestro Arduino. No obstante, en el primer caso, tenemos la posibilidad de reemplazar el MCU, podemos adquirir el MCU por separado y reemplazarlo. Aunque este paso no sería tan sencillo.
IMPORTANTE
Como comentábamos antes, Arduino no fabrica los MCU, sino que los adquiere y los implementa en el proceso de fabricación de las placas; es necesario que le carguen un programa (bootloader) para que pueda trabajar ese MCU en la plataforma Arduino.
Al comprar por nuestra cuenta el MCU, no vendrá con ese programa cargado y será trabajo nuestro realizar ese proceso.