Kitabı oku: «Arduino para principiantes»
Arduino Für Kids by Erik Schernich, © 2nd edition, 2017 by MITP Verlag, Frechen, Germany. www.mitp.de / All rights reserved.
Published with arrangements made by Maria Pinto-Peuckmann, Literary Agency - World Copyright Promotion, Kaufering, Germany.
Título de la edición en español: Arduino para principiantes
Segunda edición en español, año 2019
© 2019 MARCOMBO, S.A.
Editor de la edición en español: Pablo Martínez Izurzu
Directora de producción: Mª Rosa Castillo
Correctores: Núria Barroso y Fran Ruiz
Traducción: Virginia Pérez
Diseño de portada: Christian Kalkert
Imágenes: Todos los diagramas de circuitos fueron creados con Fritzing
"Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo 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".
ISBN: 978-84-267-2774-9
Producción del ebook: booqlab
Índice
Introducción
¿Qué es un microchip?
¿Cómo se programa?
Materiales
Los primeros pasos
Resumen
Unas tareas
1
Parpadea, pequeño LED
Instalar el software
Nuestro primer programa
Nuestro segundo programa: Juego de luces con LED
Nuestro tercer programa: morse
Nuestro cuarto programa: El alambre caliente
Resumen
Unas preguntas
...y unas tareas
2
Arduino habla
Enviar el primer texto
Resumen
Una pregunta
... y una tarea
3
Sensores - Puertos al mundo
Un sensor, ¿qué es en realidad?
Hacer que se enciendan los LED
Resumen
Unas preguntas
...y unas tareas
4
Motores - Movimiento con Arduino
Motor DC - Diviértete con las revoluciones
Controlar el motor de manera eficiente
Servos
Resumen
Unas preguntas...
...y unas tareas
5
Leer el código fuente de otros desarrolladores
La documentación
El misterioso código fuente
Resumen
Unas preguntas
...y una tarea
6
LCD – Información directa a Arduino
¿Qué significa LCD?
Resumen
Unas preguntas
...y unas tareas
7
Arduino y el multímetro
Para empezar, una anécdota
¿En qué formato queremos emitir?
Examinemos el potenciómetro
Pruebas de continuidad
Resumen
Unas preguntas
...y unas tareas
8
Arduino online
HTML – El portal a Internet
«Red, necesitamos red»
Resumen
Unas preguntas
...y unas tareas
9
Teclado con Arduino Leonardo
Primeros pasos con Leonardo
El primer teclado mínimo
Un token de seguridad
Resumen
Unas preguntas
...y unas tareas
10
Una mirada tras el IDE
C++, el corazón de Arduino
Traducir un programa a Arduino
Programar con AVR
Resumen
Unas preguntas
...y unas tareas
11
No me olvides – Uso de la EEPROM
Cuestiones generales sobre EEPROM
¿Qué se puede programar con EEPROM?
Proyecto: caja negra
Resumen
Unas preguntas
...y una tarea
Anexos
A
Instalar el IDE
Instalación
B
Soluciones
Capítulo 1
Capítulo 2
Capítulo 3
Capítulo 4
Capítulo 5
Capítulo 6
Capítulo 7
Capítulo 8
Capítulo 9
Capítulo 10
Capítulo 11
C
La lista de materiales
Materiales
D
Visualino: Programación visual
Materiales
¿Qué es Visualino?
Instalación de Visualino
Primer vistazo a Visualino
Grupos de bloques
La estrella
Los comentarios
Los errores
Enviando el programa a la placa
Introducción
¿Siempre has querido programar o trabajar con los componentes de un ordenador? Aunque después de este libro no serás capaz de montar un ordenador tú solo, la introducción te explicará muchas cosas que puedes hacer luego.
La introducción te enseñará:
• Qué es un microchip, un microcontrolador y qué es un Arduino.
• Cómo se programa.
• Qué materiales necesitas para este libro.
Como ves, ¡aprenderás unas cuantas cosas fundamentales sobre electrónica!
¿Qué es un microchip?
Seguro que tienes, más o menos, una idea de cómo es un microchip. Una pequeña superficie negra montada sobre una placa; por ejemplo, la placa base de tu ordenador. El microchip que vas a programar es un poco distinto de los chips que seguramente has visto. Es y contiene bastantes menos pines (las patitas metálicas que le salen por los lados). Además, los pines son bastante más grandes que los que hayas podido ver en los microchips “normales”.
¿Y qué es un microcontrolador?
Un microcontrolador es un microchip que lleva integrados en sí mismo todos los componentes necesarios (los complementos, por así decir). A simple vista es exactamente como un microchip. ¡Puedes compararlo de nuevo con la placa base de un ordenador! La placa base sería el microcontrolador y la memoria temporal (o de trabajo) sería una parte de los complementos. La memoria temporal también está integrada en el microcontrolador.
Recuerda: en adelante, cuando en este libro se hable de un microchip, ¡en realidad nos estamos refiriendo al microcontrolador!
¿Y qué es un Arduino?
Para que puedas programar más fácilmente el microcontrolador al principio, existe el denominado Proyecto Arduino. Proyecto Arduino incluye platinas preparadas con el microcontrolador y software propio para programar. A la platina, o placa, se le llama simplemente un Arduino. En este libro, tal como el título indica, se trata de programar un microchip en la placa Arduino. Lo realmente innovador es que Proyecto Arduino ofrece una placa con todos los componentes y un entorno de desarrollo adecuado para el PC. Los desarrolladores de otros tiempos a veces tenían incluso que construirse la placa ellos mismos para poder aprender cómo se programa.
¿Cómo se programa?
Lamentablemente, programar es algo que no se puede hacer hablando, sino solo a través de textos en el ordenador. Esos textos, además, no están en nuestra lengua sino que, las pocas palabras que aparecen, pertenecen al inglés. ¡Pero eso no debería suponer ningún obstáculo para que aprendas a programar! Vas a prender a programar en el lenguaje de programación C++, un lenguaje muy cercano al sistema, muy ordenado, y a la vez suficientemente complejo. Para no hacerlo demasiado difícil al principio, los creadores de Arduino han desarrollado un dialecto (una variante) de este lenguaje de programación. C++ se basa en pocas palabras y, por el contrario, muchos caracteres, algunos de ellos bastante crípticos en apariencia. Entre paréntesis aparece cómo “pronunciaríamos” esos caracteres, por ejemplo: ++ (incremento), % (módulo división).
Una vez que conozcas el significado de los diferentes símbolos (o caracteres), ya los podrás utilizar libremente. En el siguiente código fuente te muestro lo que se puede hacer con C++. Este código fuente lo he desarrollado yo mismo en un ordenador de un terrario que, por desgracia, todavía está en fase inicial:
#include "dimmen.h"
#include "kern_temperatur.h"
#include "terra_temperatur_class.h"
#include "class_cool.h"
void setup() {
pinMode(13, OUTPUT); pinMode(12,OUTPUT);
Serial.begin(9600); ADMUX = 0xC8; delay(10);
}
void loop() {
Cooler cooler(13); delay(100); bool hot = kern_temp(17);
if (hot) cooler.start();
else{
cooler.stop();
}
delay(500); }
Para programar necesitarás un programa para el PC que encontrarás en arduino.cc, en Internet. Para la instalación detallada consulta en el Apéndice o espera al siguiente capítulo.
Ahora, debes aprender algo sobre el aparato que necesitarás para este libro: Arduino. El Arduino que seguramente ya tienes ante ti es Arduino Uno. Ahora deberías conectarlo al PC a través del USB. Todavía no puedes programarlo, pero sí puedes utilizarlo como fuente de corriente para las próximas conexiones.
Materiales
Para continuar con la introducción necesitas algunos materiales. Entre ellos, un LED (un diodo emisor de luz), un cable negro y otro gris (los usuarios de Arduino utilizan frecuentemente cables en la combinación de colores rojo y negro; nosotros en el libro utilizamos la combinación negro-gris que resalta mejor sobre los planos de los circuitos en blanco y negro del libro), Arduino y una placa de pruebas (breadboard en inglés).
En el apéndice C, al final del libro, encontrarás la lista de todos los materiales necesarios.
Los primeros pasos
Ahora queremos hacer ya algo con Arduino. Yo propongo que empecemos simplemente por encender un LED. Lo podemos hacer de dos maneras: utilizando Arduino como fuente de alimentación, o utilizando una batería (una pila). Para familiarizarte antes que nada con Arduino, construye el circuito que te proponemos en la primera ilustración del libro. Al hacerlo, deberás tener en cuenta lo siguiente: el cable rojo va al pin de Arduino con las letras VCC, el negro al cable con GND, es decir, a los cables positivo y negativo. Y, por último: el cable rojo (el polo positivo) se conecta a la parte más larga del LED, el extremo más corto se conecta al cable negro (polo negativo).
Utiliza en este ejemplo solo el LED rojo, para los otros LED necesitarías una resistencia (ver más adelante).
Todos los planos de los circuitos los puedes descargar en www.mitp.de/580. Allí los cables son de colores, a diferencia de los planos del libro.
Ahora ya conoces cuatro de los componentes más importantes de un circuito, y que aparecerán constantemente en el libro. Tres de ellos incluso se utilizan en todos los circuitos: Arduino, la placa de pruebas, el LED y, por último, el cable.
A pesar de que el último componente es el más sencillo, sin él no podrás construir prácticamente ninguno de los circuitos que proponemos en el libro. Únicamente soldando no necesitaremos cables, pero incluso soldando hay excepciones en las que también se necesitan cables.
Resistencias
Lamentablemente, el ejemplo anterior solo funciona con LED rojos. Los demás se fundirían debido a la intensidad de la corriente. Para resolverlo, necesitamos un segundo componente: la resistencia.
Una resistencia es un componente que sirve para reducir la corriente y evitar así que otros componentes más sensibles se dañen. La resistencia se puede conectar casi en cualquier posición. A simple vista es como un pequeño tubo con varias franjas de color.
Las resistencias son relativamente baratas (1 céntimo por pieza, aprox.), de manera que con 1 euro puedes comprar unas 100.
Cuando construyas ahora el siguiente circuito, verás que el LED con resistencia da una luz más débil, precisamente porque hemos reducido /debilitado la corriente.
Un consejo importante: siempre debes consultar en el libro qué resistencia has de conectar, pues las ilustraciones del libro solo permiten mostrar una resistencia genérica.
En el ejemplo siguiente se necesita una resistencia de 1130 ohmios.
En este ejemplo, el LED izquierdo ilumina más que el derecho. Por lo demás, no importa de qué lado se conecte la resistencia. Pero vayamos a la pregunta decisiva: ¿cómo determinar el valor de la resistencia, pues las hay de distintas intensidades?
Si miras con atención, verás que cada resistencia tiene un código de colores, esto es, varias franjas, o anillos, de diferentes colores. Cada color indica una propiedad distinta. Por cierto, la unidad en que se mide la fuerza de una resistencia es el ohmio. Con ayuda de la tabla siguiente puedes determinar el valor de una resistencia.
Un consejo: el anillo dorado o plateado siempre se encuentra a la derecha si sostienes la resistencia correctamente.
En esta tabla puedes consultar los valores de las resistencias. Siempre que pone “K” debes añadir tres ceros, ya que K significa kilo, es decir, mil (1 K corresponde a 1000, 10 K a 10 000). M(ega) y G(iga) significan respectivamente 1 000 000 y 1 000 000 000.
La tolerancia indica el margen de variación del valor. Suele venir indicada en el anillo dorado.
Cálculo de ejemplo:
Si necesitamos una resistencia de 130 ohmios, tendrá los siguientes colores: (primer anillo = marrón, segundo = naranja, y tercero = marrón), ya que 13 (primer y segundo anillos) + 10 (multiplicador) son (=) 130 (ohmios).
Un consejo: el anillo dorado o plateado siempre se encuentra a la derecha si sostienes la resistencia correctamente.
Un circuito con un LED de varios colores
Construye el siguiente circuito.
Es un circuito con un LED de varios colores. Eso significa que el LED puede emitir luz en tres colores distintos (normalmente, rojo, verde y azul). Para el circuito anterior necesitas nuevamente una resistencia de 130 ohmios. Si ahora tomas el cable naranja y lo colocas en uno de los pines libres del LED, este LED especial emitirá luz en uno de los tres colores.
Esto es así porque hay un polo positivo común para los tres colores y un polo negativo para cada color. Para finalizar este capítulo como se merece, construye simplemente el siguiente circuito y observa qué sucede. El nuevo componente es una fotorresistencia, cuya descripción me reservo para otro capítulo más adelante.
En lugar de una batería también puedes utilizar Arduino (VCC->rojo, GND->negro), aunque puede ser que tengas que incorporar una resistencia. Con 3v es posible prescindir de ella.
Resumen
Ahora ya sabes...
• cómo se conectan los LED,
• qué es una resistencia,
• cómo se conectan LED de varios colores.
Y también sabes... cómo se podría destrozar un LED.
Unas tareas
1. Conecta 3 LED en serie (+ 3 * resistencia 330 ohmios).
2. Sustituye Arduino como fuente de alimentación por una batería de lengüeta y observa cómo cambia la intensidad de la luz del LED.
3. Utiliza varios diodos para hacer que un LED emita luz, no importa cómo esté conectada a los polos.
4. Si no consigues realizar la tarea anterior, investiga acerca del puente rectificador, o puente de Graetz.
Y con esto ya has concluido el primer capítulo del libro. En los capítulos siguientes construiremos y utilizaremos circuitos mucho más interesantes. ¡Que te diviertas!
1
Parpadea, pequeño LED
En este capítulo aprenderás cómo programar Arduino y cómo hacer que se encienda un LED (es una lámpara pequeñita). También aprenderás a manejar las teclas (o botones) y a utilizarlas con Arduino.
Exactamente aprenderás lo siguiente:
Instalar el software y conectar con Arduino.
Conectar y desconectar un LED.
Pausar el Arduino.
Seleccionar un botón.
Planificar tu propio proyecto.
Al final del capítulo planificaremos y programaremos una cadena de luces con diferentes funciones. En el Capítulo 2 ampliaremos la cadena de luces para poder dirigirlas desde el PC e intercambiar sus funciones.
Instalar el software
Instalar el software es relativamente sencillo. Primero tienes que bajarte el programa desde aquí: http://arduino.cc/en/Main/Software.
El archivo que te bajes, intenta que sea la última versión que pueda funcionar en tu ordenador, lo has de abrir con tu software de archivo (por ejemplo Winrar o 7Zip). La carpeta la puedes guardar, por ejemplo, en el Escritorio. Una parte importante del contenido es el llamado IDE, un programa para desarrollar código fuente y traducirlo después a "lenguaje máquina". En el fondo, un IDE es un procesador de texto que marca en color los comandos del programa.
Antes de instalar el IDE de Arduino vamos a instalar el controlador que hace que podamos comunicar con nuestra placa. Si trabajas con Windows no te quedará más remedio que instalar controladores para poder programar Arduino.
Enchufa/conecta Arduino (Uno) y espera. Tras un corto tiempo se debería abrir una ventana en la que puedes buscar controladores/actualizaciones. Ignórala y abre el control del sistema. Ve entonces a SISTEMA Y SEGURIDAD y selecciona allí el punto SISTEMA/CONTROLADOR DE DISPOSITIVOS.
En la ventana que se abre ahora, despliega la primera opción (Conexiones). Verás aparecer la entrada Arduino. Con el botón derecho del ratón, selecciona ACTUALIZAR CONTROLADORES. En la ventana que se abre, selecciona BUSCAR CONTROLADORES EN EL SISTEMA.
Una vez instalados los controladores, toca preparar el IDE de Arduino. Para una correcta instalación sigue paso a paso todas las instrucciones que te indico en el Anexo A.
Ahora, ya puedes conectar Arduino al ordenador mediante el cable USB y empezar a programar. Primero debes configurar en tu IDE el Arduino correcto. Si utilizas el Arduino Uno recomendado, selecciona Arduino en TOOLS|BOARD. Fíjate para ello en la siguiente ilustración.
A continuación, deberás instalar el puerto correcto: retira Arduino Uno (en caso de que ya lo hubieras conectado) y mira en TOOLS|SERIAL PORT los puertos que hay y anótalos. Después conecta otra vez Arduino Uno. Selecciona el puerto que aparece como nuevo. Ahora ya puedes programar.
Nuestro primer programa
Nuestro primer programa nos mostrará simplemente que hemos conectado Arduino correctamente.
void setup() {}
void loop() {}
Ese código (el código fuente) lo debes escribir en el IDE y clicar después la flecha arriba a la izquierda. Cuando en el cuadro negro de texto aparezca la palabra Done (campo negro en la parte inferior del IDE), eso quiere decir que Arduino está correctamente instalado. De lo contrario, deberás repetir los pasos anteriores para la instalación o consultar el Anexo A.
Un programa para Arduino, el denominado Sketch, consta siempre de dos partes: el “setup” y el “loop”. El código, que se encuentra en el setup, se ejecuta una vez al iniciar, o bien, al resetear el controlador. El código del loop, por el contrario, se ejecuta siempre en bucle. El código fuente, que escribirás tú mismo, aparece entre llaves. La razón de ello se explica más adelante en la sección “Funcionamiento de las funciones” de este mismo capítulo.
Una indicación importante: ¡nosotros utilizamos los circuitos LED de la Introducción!
Nuestro primer programa, con una función en toda regla, será para controlar un LED, activarlo y hacer después que parpadee.
void setup() {
pinMode(13,OUTPUT); //Pin 13 colocado como salida
digitalWrite(13,HIGH);//Pin 13 con valor alto (led se enciende)
}
void loop() {}
En diagrama de bloques: (Archivo: tema01/1.1.a.bly)
Indicación importante: todo lo que viene en un programa detrás de dos barras inclinadas se considera como un comentario, es decir, el texto escrito ahí no tiene ninguna función y no se ejecuta, solo sirve para hacer más legible el resto.
En un Arduino, todas las salidas están configuradas como pines. Eso significa que cada pin se puede controlar por separado. Los pines son los pequeños contactos de metal en los puertos negros de Arduino (Uno). Los pines más utilizados vienen marcados en amarillo.
Junto a cada pin hay un número que te permite controlar el pin. En el ejemplo yo utilizo el pin 13, pues en él viene montado ya un LED. Solo tienes que entrar ese código en Arduino, siguiendo el ejemplo, y el LED se encenderá en verde. Arriba, en el código, puedes reconocer que la orden pinMode es una función. Los parámetros de la función se escriben entre paréntesis. Los parámetros son informaciones que la función necesita para trabajar. Aquí el primer parámetro es el pin, y el segundo el estado, que puede ser Output (salida) o Input (entrada), pero que no necesitaremos hasta el apartado "Lectura de las entradas".
void setup() {
pinMode(13,OUTPUT); //Pin 13 como salida
digitalWrite(13,HIGH);//Pin 13 con valor alto
}
void loop() {}
Las salidas siempre conectan algo, por ejemplo, LED; las entradas siempre leen algo, por ejemplo, teclas (o botones). Una función se cierra siempre con un punto y coma (;) para que el traductor sepa que la orden ha terminado. El traductor, llamado Compiler, traduce el código fuente en lenguaje máquina, es decir, en el sistema binario (los unos y los ceros con los que el ordenador trabaja y de los que seguramente ya has oído hablar), para que el microcontrolador lo entienda. La orden pinMode() es necesaria para que Arduino sepa cómo se ha de utilizar el pin. La segunda orden, digitalWrite(), activa el pin. Con Arduino Uno se activa con 5 voltios. En digitalWrite() puedes asignarle al segundo parámetro el valor HIGH, para que el pin transmita corriente, o bien LOW para desactivar el PIN.
Tal vez ya te has dado cuenta de que muchos conceptos informáticos son palabras inglesas. Para programar, el inglés es una lengua muy importante: tanto los conceptos técnicos, por ejemplo HIGH (para indicar activado). Como la mayoría de lenguajes de programación, están “redactados” en inglés. No estará de más que cuides bien tu inglés.