Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ARDUINO
DOCENTE GUIA:
UNIDAD 8. ARDUINO
Arduino es una placa controladora y su entorno de programación que permiten de manera rápida y
sencilla realizar proyectos de electrónica, automatismo, control, domótica, etc. Arduino nació en el
Instituto IVREA (Italia) para facilitar a sus alumnos las tareas de programación de micro controlador.
En general, podemos decir que un microcontrolador se utiliza para ordenar una serie de acciones en
función de las entradas que le lleguen. Por ejemplo, encender un ventilador cuando la lectura de
temperatura supere un cierto valor. Otras veces su tarea es realizar una serie de acciones
sucesivamente sin hacer ninguna lectura. Éste caso sería el de utilizar Arduino para encender
alternativamente las luces de un semáforo.
Arduino es una herramienta para hacer que los ordenadores puedan sentir y controlar el mundo
físico a través de tu ordenador personal. Es una plataforma de desarrollo de computación física
(physical computing) de código abierto, basada en una placa con un sencillo micro controlador y un
entorno de desarrollo para crear software (programas) para la placa.
Existen múltiples variantes del Arduino. En este caso, usaremos el Arduino UNO que es el más
común.
Las distintas partes que conformar nuestro Arduino como son entradas, salidas, alimentación,
comunicación y shields.
Cada placa Arduino necesita una forma de estar alimentado eléctricamente. Esta puede ser
alimentada desde un cable USB que viene de su ordenador o un cable de corriente eléctrica con su
respectivo adaptador. La conexión USB es también cómo va a cargar código en su placa Arduino.
Los pines en la placa Arduino es donde se conectan los cables de un circuito. El Arduino tiene varios
tipos diferentes de entradas, cada uno de las cuales está marcado en el tablero y utilizan para
diferentes funciones:
• GND (3): Abreviatura de "tierra" (en Ingles). Hay varios pines GND en el Arduino, cualquiera de los
cuales pueden ser utilizados para conectar a tierra el circuito.
• 5V (4) y 3.3V (5): Son los suministros pin 5V 5 voltios de energía, y los suministros de pin 3.3V 3.3
voltios de potencia.
• Analógico (6): El área de pines en el marco del 'analógica' etiqueta (A0 a A5) son analógicas. Estos
pines pueden leer la señal de un sensor analógico (como un sensor de temperatura) y convertirlo en
un valor digital que podemos leer.
• Digital (7): Son los pines digitales (del 0 al 13). Estos pines se pueden utilizar tanto para la entrada
digital (como decir, si se oprime un botón) y salida digital (como encender un LED).
• PWM (8): Usted puede haber notado la tilde (~) al lado de algunos de los pines digitales (3, 5, 6, 9,
10 y 11). Estos pines actúan como pines digitales normales, pero también se pueden usar para algo
llamado Modulación por ancho de pulsos (PWM, por sus siglas en Ingles).
• AREF (9): Soportes de referencia analógica. La mayoría de las veces se puede dejar este pin solo. A
veces se utiliza para establecer una tensión de referencia externa (entre 0 y 5 voltios) como el límite
superior para los pines de entrada analógica.
Empujando este botón se conectará temporalmente el pin de RESET a tierra y reinicie cualquier
código que se carga en el Arduino. Esto puede ser muy útil si el código no se repite, pero quiere
probarlo varias veces.
Este LED debe encenderse cada vez que conecte la placa Arduino a una toma eléctrica. Si esta luz no
se enciende, hay una buena probabilidad de que algo anda mal.
LEDs RX TX (12)
segunda vez junto a los indicadores LED de TX y RX (12). Estos LEDs nos darán algunas buenas
indicaciones visuales siempre nuestro Arduino está recibiendo o transmitiendo datos.
Microcontrolador (13)
Lo negro con todas las patas de metal es un circuito integrado (IC, por sus siglas en Ingles). Es el
cerebro de nuestro Arduino. La principal IC en el Arduino es ligeramente diferente del tipo de placa a
placa tipo, pero es por lo general de la línea de ATmega de CI de la empresa ATMEL. Esto puede ser
importante, ya que puede necesitar para saber el tipo de IC (junto con su tipo de tarjeta) antes de
cargar un nuevo programa desde el software de Arduino. Esta información se puede encontrar en la
escritura en la parte superior de la IC.
Esto no es realmente algo que se puede (o debe) interactuar con el Arduino. Pero es potencialmente
útil para saber que está ahí y para qué sirve. El regulador de voltaje hace exactamente lo que dice -
que controla la cantidad de tensión que se deja en la placa Arduino. Piense en ello como una especie
de guardián; se dará la espalda a una tensión adicional que podría dañar el circuito. Por supuesto,
tiene sus límites, por lo que no conecta tu Arduino a nada superior a 20 voltios.
A principios de 2015 se produjo una división dentro de Arduino y desde entonces han aparecido
bastantes cambios para los usuarios de Arduino, la primera es que ha aparecido una nueva marca
llamada “Genuino” asociada a arduino.cc.
El 1 de octubre de 2016 durante el World Maker Faire de New York, Massimo Banzi and Federico
Musto anunciaron las empresas Arduino LLC (arduino.cc) y ArduinoSRL (arduino.org) han firmado un
acuerdo, cerrando las disputas iniciadas a principio de 2015. Anunciaron que el recién creado
“Arduino Holding” será el punto único para la distribución de los productos Arduino actuales y
futuros y continuará sacando al mercado nuevas innovaciones. Además, anunciaron la futura
formación de la “Fundación Arduino” sin ánimo de lucro, que será la responsable de mantener el IDE
Arduino open source y continuará fomentando los movimientos open source.
En el verano de 2017 donde se comunicó que BCMI, la empresa fundada por Massimo Banzi, David
Cuartielles, David Mellis and Tom Igoe, co-fundadores de Arduino ha adquirido el 100% de Arduino
AG, la corporación que tenía todas las marcas registradas de Arduino. En el Comunicado Massimo
Banzi dice que de esta forma se renueva el compromiso con el HW y SW open source con un
crecimiento sostenible de la empresa. Su visión es permitir a cualquier innovar con la electrónica
durante mucho tiempo y democratizar el IoT para los individuos, educadores, profesionales y
negocios.
Vamos a instalar la última versión del IDE de Arduino, conocer el entorno de programación y hacer las
principales configuraciones en el entorno para poder trabajar de forma más eficiente.
Ejecutar el instalador. Si existe una versión anterior el instalador nos avisa y nos desinstala la versión
actual. En el caso que hayamos hecho modificaciones en el directorio de instalación las perderemos.
Marcar todas las opciones y elegir directorio de instalación, generalmente C:\Program Files
(x86)\Arduino\:
Y ya está instalado:
Ejecutar la aplicación:
Para actualizar una versión anterior del IDE de Arduino, el procedimiento es el mismo que el de una
instalación inicial, puesto que el instalador detecta una versión anterior y la desinstala manteniendo
todas nuestras configuraciones, librerías y sketches anteriores.
En caso que queramos mantener varias versiones del IDE en el mismo ordenador, simplemente
hacemos la instalación manual en directorios diferentes y las configuraciones, librerías y sketches son
compartidas por las diferentes versiones del IDE instaladas.
A la hora de actualizar, el instalador de Arduino lo que hace es borrar toda la ruta completa donde
hemos instalado Arduino e instala la nueva versión. Por lo tanto cualquier modificación o librería
instalada en el directorio de instalación se perderá en la actualización.
El lenguaje de programación de Arduino es C++. No es un C++ puro sino que es una adaptación que
proveniente de avr-libc que provee de una librería de C de alta calidad para usar con GCC (compilador
de C y C++).
Las herramientas necesarias para programar los microcontroladores AVR de Atmel son avr-binutils,
avr-gcc y avr-libc y ya están incluidas en el IDE de Arduino, pero cuando compilamos y cargamos un
sketch estamos usando estas herramientas.
En la mayoría de los casos se puede hacer un proyecto de Arduino de cierta complejidad con la
librería que nos ofrece el core de Arduino y no es necesario añadir más instrucciones ni tipos de datos
que los que hay en el core. Pero cuando queremos algo más complejo o más rápido o menos
consumo o con más memoria, etc… es necesario usar funciones y estructuras no disponibles en el
core de Arduino.
Variables
Una variable puede ser declarada al inicio del programa antes de la parte de configuración setup(), a
nivel local dentro de las funciones, y, a veces, dentro de un bloque, como para los bucles del tipo if..
for.., etc. En función del lugar de declaración de la variable así se determinará el ámbito de
aplicación, o la capacidad de ciertas partes de un programa para hacer uso de ella.
Una variable global es aquella que puede ser vista y utilizada por cualquier función y estamento de
un programa. Esta variable se declara al comienzo del programa, antes de setup().
Al declarar una variable global, está un espacio en memoria permanente en la zona de static data y el
abuso de variables globales supone un uso ineficiente de la memoria.
Una variable local es aquella que se define dentro de una función o como parte de un bucle. Sólo es
visible y sólo puede utilizarse dentro de la función en la que se declaró. Por lo tanto, es posible tener
dos o más variables del mismo nombre en diferentes partes del mismo programa que pueden
contener valores diferentes, pero no es una práctica aconsejable porque complica la lectura de
código.
Las librerías son trozos de código hechos por terceros que usamos en nuestro sketch. Esto nos facilita
mucho la programación y hace que nuestro programa sea más sencillo de hacer y de entender. Las
librerías normalmente incluyen los siguientes archivos comprimidos en un archivo ZIP o dentro de un
directorio. Estas siempre contienen:
Mediante el IDE de Arduino de forma automática. Admite la instalación desde un fichero zip
o desde una carpeta ya descomprimida.
Instalación Manual. Descomprimiendo en un directorio la librería y copiandolo en el
directorio de librerías. Generalmente Mi Documentos – Arduino – libraries. Aquí se guardan
las librerías contribuidas por el usuario como lo denomina el IDE.
Desde el gestor de librerías. A partir de la versión 1.6.2 del IDE de Arduino se incorpora el
gestor de librerías que facilita el trabajo. Esta herramienta es accesible desde Programa →
Incluir Librería → Gestionar Librerías. Desde aquí podemos ver las librerías instaladas, buscar
librerías disponibles, instalar librerías y actualizarlas.
Esta herramienta también nos permite gestionar las librerías instaladas manualmente.
Desde C:\Users\nombre_usuario\AppData\Local\Arduino15, podemos ver en formato json
el listado de librerías y placas disponibles desde el gestor de librerías y tarjetas.
13 UNIDAD 8. ARDUINO | | Emerson Díaz Pérez – Prohibida la reproducción parcial o total
de este producto sin el consentimiento del docente
Texto guía de Hardware de Computadoras – Unidad VIII EDP
Las librerías instaladas se guardan en el directorio indicado desde las preferencias del IDE.
IMPORTANTE: Para añadir una librería a nuestro proyecto simplemente se añade a nuestro código la
palabra clave #include seguido del nombre de la librería.
setup()
loop()
setup() es la parte encargada de recoger la configuración y loop() es la que contiene el programa que
se ejecuta cíclicamente (de ahí el término loop –bucle-). Ambas funciones son necesarias para que el
programa trabaje.
La función de configuración (setup) debe contener la inicialización de los elementos y esta función
sólo se ejecuta una vez justo después de hacer el reset y no se vuelve a ejecutar hasta que no haya
otro reset. Es la primera función a ejecutar en el programa y se utiliza para configurar, inicializar
variables, comenzar a usar librerías, etc…
La función bucle (loop) contiene el código que se ejecutará continuamente (lectura de entradas,
activación de salidas, etc). Esta función es el núcleo de todos los programas de Arduino y se usa para
el control activo de la placa. La función loop se ejecuta justo después de setup.
Variables, son un espacio en memoria donde se almacenan datos y estos datos pueden variar.
Funciones, son un trozo de código que puede ser usado/llamado desde cualquier parte del
sketch. A la función se le puede llamar directamente o pasarle unos parámetros, en función
de cómo esté definida.
setup() y loop(), son dos funciones especiales que es obligatorio declarar en cualquier sketch.
Comentarios, fundamentales para documentar el proyecto.
Una vez tenemos el programa hay que compilarlo y mandarlo a Arduino para que se ejecute de forma
infinita.
Pasos a seguir:
La comunicación serie es muy importante porque gran parte de los protocolos utilizados actualmente
son serie y además muchos dispositivos de comunicación inalámbrica usan la comunicación serie
para hablar con Arduino como los módulos bluetooth y los módulos Xbee. También la comunicación
serie es la que se usa para comunicar el Arduino con el Ordenador a través del cable USB.
Todas las placas Arduino tienen al menos un puerto serie disponible en los pines digitales 0 (RX) y 1
(TX) compartido con el USB. Por lo tanto no es posible usar estos pines como entradas/salidas
digitales.
El Arduino mega dispone de tres puertos adicionales Serial1 on pins 19 (RX) and 18 (TX), Serial2 on
pins 17 (RX) and 16 (TX), Serial3 on pins 15 (RX) and 14 (TX). Estos pines no están conectados al
interfaz USB del Arduino.
El Arduino Due tiene tres puertos adicionales pero con niveles de 3.3V TTL.
Comunicación serie:
La funciones más importantes que debemos conocer para manejar el puerto serie son: begin(),
read(), write(), print() y available())
available() – da el número de bytes (caracteres) disponibles para leer en el puerto serie, son
datos que han llegado y se almacenan en el buffer serie que tiene un tamaño de 64 bytes.
end() – deshabilita la comunicación serie permitiendo a los pines RX y TX ser usado como
pines digitales.
if(Serial) – especifica si el puerto serie está listo.
find() – lee datos del buffer serie hasta encontrar el string buscado.
Práctica: Descargar la última versión del IDE de Arduino, conocer el entorno de programación y hacer
las principales configuraciones en el entorno para poder trabajar de forma más eficiente → Páginas
de la 16 a 19 del libro incluido en el Arduino StarterKit.
Elegir la opción de Windows Installer, aunque también es posible descargar la versión comprimida en
zip y se puede decir que es una versión portable o para aquellos que no tengan privilegios suficientes
para instalar aplicaciones.
Marcar todas las opciones:
Y ya está instalado:
En este momento ya tenemos instalado el IDE en nuestro ordenador. Con las nuevas versiones del
IDE de Arduino no es necesario instalar los drivers en Windows al venir integrados en el IDE y ya
tienen las firmas correspondientes.
Ejecutar la aplicación:
Revisar cada uno de los menús y opciones que tiene, los más importantes ahora son.
Botones de Verificar y Subir
Botón Monitor Serie
Consola de Error
Menú herramientas Placa y Puerto
Menú de pestañas
Puerto y placa seleccionada
Menú preferencias
Proyecto/Sketch
Resaltado de palabras clave
El IDE de Arduino contiene un editor de texto para escribir nuestro sketch, un área de mensajes, un
consola de texto y un área de con los menús y los botones que realizan las funciones más comunes.
Cuando cargamos un programa en Arduino, estamos usando el bootloader de Arduino, que es un
pequeño programa cargado en el microcontrolador que permite subir el código sin usar hardware
adicional. El bootloader está activo unos segundos cuando se resetea la placa, después comienza el
programa que tenga cargado el Arduino en su memoria Flash. El led integrado en la placa (pin 13)
parpadea cuando el bootloader se ejecuta.
El monitor serie muestra los datos enviados por el Arduino a través del puerto serie también nos
permite mandar datos al Arduino mediante el puerto serie.
Veamos las novedades de la nueva versión 1.6 del IDE:
Soporte multiplataforma de arduino
Detección automática de la placa conectada
Muestra memoria Flash y SRAM ocupada por un sketch o proyecto
Autoguardado al compilar y cargar sketch
Carga de sketch vía red (wifi o ethernet) para Arduino Yun.
Entrar en el menú de preferencias y activar:
Números de Línea
Mostrar salida detallada en la compilación y al subir un sketch
Bibliografía
https://aprendiendoarduino.wordpress.com/2015/03/24/practica-instalacion-del-software-y-
configuracion/
https://www.aprendiendoarduino.com/
https://www.aprendiendoarduino.com/cursos/arduino-avanzado-2018/
https://aprendiendoarduino.wordpress.com/2018/04/03/instalacion-software-arduino-2/