Lógica de Programación con Arduino – Parte 03
LECCIÓN 03
Para obtener tu recompensa debes estar registrado en nuestra plataforma y publicar tu trabajo
🧠 ¿Qué aprendo?
- Qué es ArduinoBlocks
- Cargar código en la placa Arduino con ArduinoBlocks
- Comunicación Serial
- Ver datos por la pantalla del computador
- ¿Qué es una señal analógica?
- Lectura de datos de una entrada analógica
- Entender el concepto de PWM
- Encender un LED de manera proporcional
🧠 Conocimientos previos
- Entradas y salidas digitales
- Condicional y operadores de comparación
- Uso de variables
💡 ¿Qué es ArduinoBlocks?
🧠 ArduinoBlocks es una plataforma online de uso libre y gratuito para robótica educativa que permite la programar en Arduino de forma visual a través de bloques.
💡 A diferencia de otras aplicaciones similares, ArduinoBlocks es una plataforma totalmente online donde el usuario realiza y guarda su trabajo en la nube para evitar los imprevistos. Además, implementa una serie de funcionalidades cooperativas para poder buscar, compartir o valorar los proyectos de otros usuarios creando así una comunidad activa de lo que hoy se conoce como Makers.
⚠️ Nota. Si en algunos casos no nos deje cargar el programa, debemos instalara el driver para que nuestra PC se comunique con nuestra placa, como la ARDUINO NANO por ejemplo.
💡 ¿Qué necesitamos para programar con ARDUINOBLOCKS?
- Crear una cuenta en ArduinoBlocks e iniciar un nuevo proyecto (a cada programa le denomina «Proyecto»)
- Descargar e instalar ArduinoBlocks-Connector (interfaz para cargar los programas a Arduino)
- Hacer el programa y cargarlo en la placa desde el navegador.
💡 Instalaciones Necesarias
🧠 Driver Arduino Nano – En caso de utilizar esta tarjeta ya que es de bajo coste a comparación de las demás placas Arduino.
🧠 ArduinoBlocks Connector – Es una aplicación que hace de puente entre la plataforma ArduinoBlocks y la placa Arduino.
💡 La aplicación ArduinoBlocks-Connector se encarga de recibir el código generado por ArduinoBlocks, compilarlo y subirlo a la placa Arduino, sin esta aplicación ArduinoBlocks funciona pero no puede subir el programa a la placa Arduino pues el navegador web no dispone de posibilidad de realizar estas funciones por sí sólo.
💡 Cuerpo de un Programa
🧠 Todo programa de Arduino necesita 2 partes principales:
- Inicializar: Lo que programemos en esta sección sólo se ejecutará una sola vez.
- Bucle: Acá viene nuestro código principal, ya que lo que programemos en esta sección se ejecuta de manera infinita mientras la placa Arduino tenga energía.
📋 Ejemplo N° 1: Crear un Proyecto Nuevo
➡️ Ingresamos a la Cuenta de ArduinoBlocks de miMakerHouse y en «Correo electrónico» colocamos nuestro nombre de usuario (NombreApellido.bmaker)
💻Descripción
💡 Realizar la conexión y programación de nuestro primer proyecto con la placa Arduino UNO.
💻 Diagrama
💻 Circuito
💻 Código
⚔️Desafío 01: Demuestra lo aprendido
💰Recompensa: 30 Monedas de Oro – 15 Cristales de Experiencia
🧠 Utiliza la información del ejercicio «Crear un Proyecto Nuevo» para realizar la conexión y programación del siguiente circuito donde ambos LEDs se enciendan y apaguen a la vez cada medio segundo.
💻 Diagrama
💻 Circuito
📋 Ejemplo N° 2: Juego de Luces
➡️ Ingresamos a la Cuenta de ArduinoBlocks de miMakerHouse y en «Correo electrónico» colocamos nuestro nombre de usuario (NombreApellido.bmaker)
💻Descripción
💡 Realizar la conexión y programación del juego de luces con el circuito que se muestra a continuación. ¿Cuál es el efecto de luces que tiene?
💻 Diagrama
💻 Circuito
💻 Código
⚔️Desafío 02: Demuestra lo aprendido
💰Recompensa: 30 Monedas de Oro – 15 Cristales de Experiencia
🧠 Utiliza la información del ejercicio «Juego de Luces» y conecta dos LED y haz que uno se encienda y el otro se apague y viceversa (como la de un coche policía) mientras el pulsador se encuentre presionado.
🆘 ¿Cómo funciona?
✅ El pulsador envía ‘0’ al Arduino cuando está presionado
✅ El pulsador envía ‘1’ al Arduino cuando no está presionado
💻 Diagrama
💻 Circuito
💡 Comunicándose con otros Dispositivos: El puerto Serie
🧠 El puerto serie es el medio que tiene tu placa Arduino para comunicarse con otro aparato como el ordenador o tu teléfono celular. Es muy útil para comprobar de un vistazo el valor de un sensor o una variable, ver el estado de tu programa y, en definitiva, corregir y entender mejor los posibles errores que éste tenga.
📋 Ejemplo N° 3: ¡Hola otra vez! – Enviando mensajes
➡️ Ingresamos a la Cuenta de ArduinoBlocks de miMakerHouse y en «Correo electrónico» colocamos nuestro nombre de usuario (NombreApellido.bmaker)
💻Descripción
💡 Realizar la programación de nuestra placa Arduino UNO para que envíe un saludo a la computadora a través del puerto serie.
🆘 ¿Cómo funciona?
✅ Dentro de la pestaña Comunicaciones -> Puerto Serie encontrarás el bloque Enviar » » con salto de línea. Este bloque te permitirá enviar información mediante el puerto serie a tu ordenador. Escribe el mensaje ¡Hola! y añade una espera de un segundo y carga el programa en tu placa.
💻 Diagrama
💻 Circuito
💻 Código
⚔️Desafío 03: Demuestra lo aprendido
💰Recompensa: 30 Monedas de Oro – 15 Cristales de Experiencia
🧠 Utiliza la información del ejercicio «¡Hola otra vez! – Enviando mensajes» para que al presionar el botón (PIN 2) el Monitor Serie debe mostrar el mensaje «Botón presionado» y cuando no esté presionado debe mostrar «Botón no presionado».
🆘 ¿Cómo funciona?
✅ El pulsador envía ‘0 -> Low -> False’ al Arduino cuando está presionado
✅ El pulsador envía ‘1 -> High -> True’ al Arduino cuando no está presionado
💻 Diagrama
💻 Circuito
📋 Ejemplo N° 4: Contando los «rebotes» al presionar un pulsador
➡️ Ingresamos a la Cuenta de ArduinoBlocks de miMakerHouse y en «Correo electrónico» colocamos nuestro nombre de usuario (NombreApellido.bmaker)
💻Descripción
💡 En esta práctica seremos capaces de contar la cantidad de veces que se da un «rebote de nuestra señal» cada vez que presionamos y soltamos un pulsador.
🆘 ¿Cómo funciona?
✅ Como ya habíamos mencionado, según nuestro circuito, lo ideal es que al presionar un pulsador o botón éste envíe un estado lógico 1 -> High -> True al Arduino y que al soltar dicho pulsador o botón éste envíe un estado lógico 0 -> Low -> False al Arduino. Pero como veremos a continuación en la realidad lo que sucede es que el ruido electrónico produce varios «rebotes» que Arduino recibe como si estuviéramos presionando varias veces el pulsador.
💻 Diagrama
💻 Circuito
💻 Código
⚔️Desafío 04: Demuestra lo aprendido
💰Recompensa: 30 Monedas de Oro – 15 Cristales de Experiencia
🧠 Utiliza la información del ejercicio «Contando los «rebotes» al presionar un pulsado» para corregir el efecto de los «rebotes» y así Arduino pueda contar y mostrar las veces que se presiona un pulsador.
🆘 ¿Cómo funciona?
✅ Para corregir el efecto de los «rebotes», lo único que hacemos es añadir un tiempo de espera después de haber detectado la primera pulsación del botón.
💻 Diagrama
💻 Circuito
💡 El Potenciómetro – Lectura de un Sensor Analógico
🧠 Señal Analógica
💡 Son aquellas que pueden tomar un número infinito de valores comprendidos entre dos límites. La mayoría de los fenómenos de la vida real son señales de este tipo (sonido, temperatura, voz, video, etc.).
💡 Un ejemplo de sistema electrónico analógico es un parlante, que se emplea para amplificar el sonido de forma que éste sea oído por una gran audiencia. Las ondas de sonido que son analógicas en su origen, son capturadas por un micrófono y convertidas en una pequeña variación analógica de tensión denominada señal de audio.
🧠 El Potenciómetro
💡 Un potenciómetro es un resistor eléctrico con un valor de resistencia variable y que puede ajustarse de manera manual.
📋 Ejemplo N° 5: Lectura Analógica del Potenciómetro
➡️ Ingresamos a la Cuenta de ArduinoBlocks de miMakerHouse y en «Correo electrónico» colocamos nuestro nombre de usuario (NombreApellido.bmaker)
💻 Descripción
🧠 Una entrada análoga (Sensor analógico) en Arduino tiene un valor que va de 0 o 1023, un sensor analógico solo puede ser conectado en los pines A0, A1,…, A5.
🆘 ¿Cómo funciona?
✅ Al girar el potenciómetro se debe observar en el monitor serie de la computadora los datos que vienen desde el Arduino, datos que van desde 0 a 1023 que a la vez son enviados desde el Potenciómetro al Arduino.
💻 Diagrama
💻 Circuito
💻 Código
⚔️Desafío 05: Demuestra lo aprendido
💰Recompensa: 30 Monedas de Oro – 15 Cristales de Experiencia
🧠 Utiliza la información del ejercicio «Lectura Analógica del Potenciómetro» para hacer que un LED se encienda cuando la lectura del sensor sea mayor o igual (≥) a 500, caso contrario el LED se debe apagar.
💻 Diagrama
💻 Circuito
💡 Transformando Valores – La Función MAP (mapear)
🧠 Esta función es bastante empleada en los proyectos de Arduino, ya que nos permite «hacer equivalencias» entre diferentes rangos. ¿Qué significa esto? Muy fácil.
💡 Imagina que recibimos mediante un Potenciómetro valores con un rango del 0 al 1023, pero nosotros queremos un nuevo rango de valores que vayan de 0 a 255 en función de la posición del Potenciómetro. Gracias a la función MAP podremos realizar esta tarea de una manera sencilla.
📋 Ejemplo N° 6: Mapeando Nuevos Valores
➡️ Ingresamos a la Cuenta de ArduinoBlocks de miMakerHouse y en «Correo electrónico» colocamos nuestro nombre de usuario (NombreApellido.bmaker)
💻 Descripción
🧠 Como sabemos la entrada de datos de un Potenciómetro (sensor analógico) tiene un rango de valores que va de 0 a 1023, en éste ejemplo queremos visualizar un nuevo rango de valores que vaya de 0 a 255.
💻 Diagrama
💻 Circuito
💻 Código
⚔️Desafío 05: Demuestra lo aprendido
💰Recompensa: 30 Monedas de Oro – 15 Cristales de Experiencia
🧠 Utiliza la información del ejercicio «Mapeando Nuevos Valores» para mostrar por la consola serial un número entre 1 y 6 cómo si fuera un dado, este número debe cambiar cuando muevas el potenciómetro.
💻 Diagrama
💻 Circuito
💡 PWM o Salida Analógica (Variar el Voltaje de Salida)
🧠 La modulación por ancho de pulsos (también conocida como PWM, siglas en inglés de pulse width modulation) de una señal o fuente de energía es una técnica en la que se modifica una señal eléctrica para controlar la cantidad de energía que se envía a una carga.
💡 Por ejemplo si le aplicamos PWM a un LED podemos variar su intensidad de brillo y si le aplicamos un PWM a un motor DC logramos variar la velocidad del mismo con la característica de mantener su par (fuerza) constante.
📋 Ejemplo N° 7: Variando el Brillo de un LED
➡️ Ingresamos a la Cuenta de ArduinoBlocks de miMakerHouse y en «Correo electrónico» colocamos nuestro nombre de usuario (NombreApellido.bmaker)
💻 Descripción
🧠 Al programa este código el LED que se encuentra apagado debe encenderse de manera proporcional hasta alcanzar su brillo máximo.
🆘 ¿Cómo funciona?
✅ Una salida analógica en Arduino tiene un valor que va de 0 o 255, eso significa que en la salida de los pines que llevan la tilde ~ podremos obtener un voltaje variable que va de 0V a 5V. Al modificar el voltaje de salida, podemos hacer que también se modifique el brillo del LED.
💻 Diagrama
💻 Circuito
💻 Código
⚔️Desafío 07: Demuestra lo aprendido
💰Recompensa: 30 Monedas de Oro – 15 Cristales de Experiencia
🧠 Utiliza la información del ejercicio «Variando el Brillo de un LED» para controlar el brillo de un LED con un Potenciómetro. Tu tarea es realizar el programa que al leer una entrada análoga de un potenciómetro (0 – 1023) se ajuste el valor de PWM (0 – 255) de un LED, recuerda mapear el valor del potenciómetro.
💻 Diagrama
💻 Circuito
💡 El LED RGB (Rojo, Verde, Azul) – Programando Colores
🧠 Estos Leds incorporan tres colores dentro de su encapsulado, dando como resultado una gama alta de colores al combinarlos.
Para combinar los colores se hace uso de PWM para variar el voltaje en los pines del LED RGB, como guía se utiliza una tabla con valores analógicos de salida que deben ser programados en el Arduino.
💡 En el mercado podrá encontrarse con dos tipos: Cátodo Común y Ánodo Común
📋 Ejemplo N° 8: Programando Colores
➡️ Ingresamos a la Cuenta de ArduinoBlocks de miMakerHouse y en «Correo electrónico» colocamos nuestro nombre de usuario (NombreApellido.bmaker)
💻 Descripción
🧠 Lo que haremos en esta práctica es programar 3 colores diferentes en nuestro LED RGB que se muestren de manera consecutiva cada dos segundos. Los colores elegidos serán el rojo, amarillo y verde.
💻 Diagrama
💻 Circuito
💻 Código
⚔️Desafío 05: Demuestra lo aprendido
💰Recompensa: 30 Monedas de Oro – 15 Cristales de Experiencia
🧠 Utiliza la información del ejercicio «Programando Colores» para que con la ayuda de un Potenciómetro que de lecturas del 1 al 3 (mapear) que se vean por comunicación serial, el LED RGB pueda cambiar de color cuando al girar el Potenciómetro marque:
- 1: El LED RGB debe cambiar a color rojo (255, 0, 0)
- 2: El LED RGB debe cambiar a color verde(0, 255, 0)
- 3: El LED RGB debe cambiar a color azul(0, 0, 255)
💻 Diagrama
💻 Circuito
¡Estamos listos, a construir!
💰Recompensa: 10 Monedas de Oro – 5 Cristales de Experiencia
➡️ Ingresamos a la Cuenta de ArduinoBlocks de miMakerHouse y en «Correo electrónico» colocamos nuestro nombre de usuario (NombreApellido.bmaker)
➡️ RETO 01: Realizar la programación para que al presionar el pulsador una vez el LED se encienda y que al volver a presionar el pulsador el LED se apague y así sucesivamente (Hacer uso de variables).
🆘 ¿Cómo funciona?
✅ El pulsador envía ‘0’ al Arduino cuando está presionado
✅ El pulsador envía ‘1’ al Arduino cuando no está presionado
💻 Diagrama
💻 Circuito
➡️ RETO 02: Realizar un proyecto que cuente y muestre en pantalla las veces que presionamos un botón, cuando la cuenta llegue a 10 deberá encenderse un led.
💻 Diagrama
💻 Circuito
➡️ RETO 03: Con el circuito anterior realizar un proyecto que cuente y muestre en pantalla las veces que presionamos un botón, cuando la cuenta llegue a 5 deberá encenderse un led y cuando la cuenta llegue a 10 el led deberá apagarse.
➡️ RETO 04: La empresa Iron-Hot te contrató para que instales y programes un sensor de temperatura en sus calderas donde derriten el hierro para forjar sus tubos metálicos, ellos dijeron que si la temperatura del sensor sobrepasa los 500°C se debe encender una luz de alerta que esté parpadeando cada 1/4 de segundo para alertar a los trabajadores.
💡 Se debe utilizar un Potenciómetro para simular el sensor de temperatura, en este caso con el potenciómetro tendremos «valores de temperatura» que vayan de 0 a 1023 °C.
💻 Diagrama
💻 Circuito
➡️ RETO 05: Realizar un proyecto que controle la velocidad de parpadeo de un led, mientras gire el potenciómetro en un sentido el led debe parpadear lento y si el potenciómetro se gira al otro sentido el led debe parpadeara rápido. Manejar un rango de tiempos que vayan desde 25mS a 1500mS. Utilizar el esquema de conexión del RETO 05.
➡️ RETO 06: Se te pide que controles la cantidad de parpadeos de un LED con la ayuda de un potenciómetro, eso significa que al mover tu potenciómetro, debes tener lecturas que van desde 1 a 10, dichas lecturas se deben ver por el monitor Serie, si por ejemplo se ve el 6, entonces al presionar el botón ese LED debe parpadear 6 veces.
💻 Diagrama
💻 Circuito
➡️ RETO FINAL: Realizar la programación de tu placa Arduino, para que al presionar el pulsador entonces el LED RGB pueda cambiar entre 5 colores diferentes (secuencia de colores con un tiempo de espera de medio segundo), mostrando también por comunicación serial el nombre del color que se está mostrando ese momento.
💻 Diagrama
💻 Circuito
Recuerda
💡 La placa Arduino y no la computadora, es la que almacena y ejecuta cada programa que realizamos. Cada vez que realices una modificación en tu programa, deberás subirlo de nuevo a tu placa para ver su efecto. Para ello debes estar seguro de lo siguiente:
- Que el programa ArduinoBlocks – Connector esté abierto
- Conectar tu placa Arduino a tu computadora
- Actualizar puertos de conexión, escoger el puerto correcto y por último Subir Código