Está en la página 1de 63

8/2/23, 10:15 Student Kit!

SEÑALES DE TRÁFICO
En esta lección, investigarás cómo los circuitos son operados por microcontroladores
como el de tu placa Arduino. Más específicamente, explorarás la diferencia entre
dispositivos digitales y analógicos y cómo estos dispositivos pueden usarse como
entradas para recopilar información o salidas para realizar una tarea.

TIEMPO ESTIMADO 90-135 min

APRENDEREMOS ACERCA DE:

PSEUDOCÓDIGO, ARDUINO IDE , COMPONENTES ANALÓGICOS, COMPONENTES DIGITALES, LEY DE OHM,


CALCULAR LA RESISTENCIA, DEPURAR EL CÓDIGO, CONSTRUIR UN EXPERIMENTO, MEDIR EL VOLTA JE

Resumen
¿Qué se te viene a la cabeza cuando piensas en la comunicación? ¿Cómo se comunican
comúnmente las personas entre sí? Ciertamente, la comunicación implica hablar y
escuchar, pero también hay otras formas de comunicación. Por ejemplo, las luces y los
LEDs a menudo se usan como indicadores visuales en las máquinas para comunicar el
estado de la máquina. Los vehículos tienen luces que comunican poco combustible, baja
presión de aceite, batería baja y otros problemas del motor. Incluso los semáforos nos
indican cuando debemos cruzar una intersección. Todos estos ejemplos, y muchos
otros requieren un control preciso del flujo de electricidad en circuito. Este control a
menudo lo lleva a cabo un programa de computadora que le dice a las luces cuándo
encenderlas o apagarlas.

En esta lección, investigarás cómo los circuitos son operados por microcontroladores
como el de tu placa Arduino UNO R3. Más específicamente, explorarás la diferencia
entre dispositivos digitales y analógicos y cómo estos dispositivos pueden usarse como

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 1/63
8/2/23, 10:15 Student Kit!

entradas para recopilar información o salidas para realizar una tarea. También
explorarás el entorno de programación de Arduino y cómo se comunica con la placa
Arduino UNO R3. Después de construir un circuito LED, escribirás programas para
controlar los LEDs en el circuito, incluido un programa para un semáforo. Con el
programa del semáforo completo y en funcionamiento, usarás un multímetro para
tomar medidas eléctricas en el circuito.

TEACHER NOTES

En esta lección, se presenta a los alumnos el software de Arduino (IDE) y lo usan


para escribir código para cargarlo en la placa Arduino UNO R3. La lección
comienza con una introducción básica a la placa Arduino UNO R3, el software de
Arduino (IDE) y el uso de pseudocódigo para trazar el comienzo de un nuevo
programa (llamado sketch en el IDE Arduino). Los alumnos construirán un
circuito de semáforos, escribirán un sketch que controlará como funciona el
circuito, cargarán el sketch en la placa y lo depurarán hasta que el circuito
funcione correctamente, Cuando se complete el circuito, los alumnos usarán un
multímetro para determinar cómo la placa controla el circuito y usarán la ley de
Ohm para calcular los valores de resistencias de los LEDs en el circuito.

Tiempo en Completar la Lección

Los tiempos listados aquí son solo una guía y es posible que deban ajustarse a
medida que verifica la comprensión y ajusta/re-enseña

Resumen y Vocabulario 3 minutos

Inventos Destacados 5 minutos

Semáforo Básico

Componentes Necesarios 2 minutos

Creación del Circuito 13 minutos

Creación del código - Iluminar los LEDs 18 minutos

Creación del código - Parpadear los LEDs 10 minutos

Creación del código - Programar un


10 minutos
semáforo

Semáforo con botón peatonal


https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 2/63
8/2/23, 10:15 Student Kit!

Componentes Necesarios 1 minuto

Creación del Circuito 4 minutos

Creación de código - Programar el botón 15 minutos

Probar y Modificar 8 minutos

Recoger 1 minuto

Lección Completada 90 minutos

Si estás completando esta lección en dos clases, los alumnos deberían


finalizar la sección 'Creación de código - Parpadear los LEDs' al final de la
primera clase.

Objetivos de Aprendizaje

Diferenciar entre componentes digitales y analógicos.

Investigar las partes de la placa Arduino UNO R3.

Construir y experimentar con un circuito de un semáforo.

Escribir un pseudocódigo que describirá como debería funcionar un semáforo

Traducir el pseudocódigo al código de la computadora y escribir un programa para


controlar un semáforo.

Depurar el código que contenga errores.

Medir el voltaje, la corriente y la resistencia en un circuito.

Usar la ley de Ohm para calcular la resistencia en un circuito.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 3/63
8/2/23, 10:15 Student Kit!

Vocabulario
Algoritmo – Un conjunto de pasos o reglas que deben seguirse para resolver un
problema.

Operador de comparación – Un símbolo matemático usado para comparar dos


valores; los operadores de comparación incluyen igual a (==), no igual a (!=), mayor
que (>), menor que (<), mayor o igual que (>=), y menor o igual que (<=)

Compilar – El proceso que utiliza una computadora para traducir un lenguaje de


programación en código de máquina que una computadora u otro dispositivo digital
puede entender.

Sentencia condicional – En programación, una sentencia que compara dos valores


para ver si una determinada condición es verdadera. Si la condición es verdadera,
ejecuta un cierto comando o grupo de comandos.

Depurar – Identificar y corregir errores en un programa.

Optimización – El proceso de mejorar un programa para hacer que el código sea


más eficiente.

Pseudocódigo – Una descripción informal de lo que debe hacer un programa escrito


en un lenguaje cotidiano normal.

Resistor pull-down – un resistor que establece el valor predeterminado de un pin


digital en LOW bajando el voltaje a cero o cerca de cero. Está conectado entre el pin
digital y tierra.

Umbral – Una cantidad que debe alcanzarse para que se cumpla una determinada
condición o se produzca una acción.

Verificar – Evaluar el código para determinar si es legible y puede ser compilado por
una computadora.

TEACHER NOTES

Hay numerosas actividades de vocabulario que puedes hacer que hagan tus
alumnos. Sin embargo, el tiempo para completar estas actividades no se tiene
en cuenta en el plazo de 90 minutos para la lección. Considere estas actividades
https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 4/63
8/2/23, 10:15 Student Kit!

como actividades de extensión en clase o como tareas adicionales que deben


completarse por su cuenta.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 5/63
8/2/23, 10:15 Student Kit!

Inventos Destacados
Historia del semáforo
A los inventores, programadores e ingenieros les encanta cuando llega la inspiración.
Pero incluso las ideas brillantes rara vez salen bien a la primera. Quizás recuerdas que el
equipo de Thomas Edison desarrolló más de 1.000 prototipos de la bombilla antes de
que su idea de un filamento en una caja de vidrio fuera realmente exitosa. La
complicaciones y descuidos deben ser resueltos antes de que una idea funcione según
lo previsto. Estos defectos de diseño se llaman bugs (errores).

Un ejemplo trágico de un bug (error) se puede encontrar en el historial del semáforo.

Incluso en la era del caballo y la carroza, era necesario dirigir el tráfico. Un gerente
ferroviario británico llamado John Peake Knight creó el semáforo en 1868. A diferencia
de los semáforos modernos, el dispositivo fue operado por un oficial de policía que
cambiaba el semáforo manualmente. Usó luces de gas para iluminar las palabras en la
señalización. Lamentablemente, solo unas pocas semanas después de ser instalado el
dispositivo, una fuga de gas causó una explosión que hirió gravemente al oficial.

Durante décadas, los dispositivos fueron considerados demasiado peligrosos para


usarse. Pero la idea era demasiado prometedora para ser olvidada y los inventores
posteriores crearon variaciones.

En 1910, un estadounidense llamado Ernest Sirrine diseñó el primer semáforo


controlado automáticamente. Dos letreros que dicen stop (parar) y proceed (proceder)
se mostraban alternativamente. Dos años más tarde, un diseño de Lester Farnsworth
Wire reemplazó los letreros por luces rojas y verdes, acercándose a nuestro semáforo
moderno. Numerosos inventores crearon variaciones en este concepto. Esto incluyó la
adición de una luz amarilla de "precaución" para evitar accidentes causados por el
cambio repentino de verde a rojo. En 1923, Garret Morgan, un destacado inventor
afroamericano en Cleveland, Ohio, creó una señal que mejoró el tiempo de las señales
para un mejor flujo de tráfico. (Morgan también jugó un papel en la invención de la
mascara de gas).

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 6/63
8/2/23, 10:15 Student Kit!

Se han realizado innumerables otras mejoras en los diseños de los semáforos a lo largo
de los años. Trabajar a través de bugs de diseño a menudo puede ser una gran fuente
de innovación.

Pero, ¿de dónde vino el término bug en primer lugar? Según sus cartas, parece que
proviene de Thomas Edison. Sin embargo, una historia más colorida que rodea el
término se centra en la Contralmirante de la Marina Grace Hopper.

Grace Hopper se alistó en la Marina durante la Segunda Guerra Mundial. En su carrera,


se convirtió en una de las primeras informáticas del mundo. Trabajó en una
computadora electromecánica temprana llamada Mark I, calculando información para
operaciones militares. Después de la guerra, ella también trabajó en el sucesor de la
computadora, Mark II.

Un día, un mal funcionamiento en Mark II hizo que cesara la operación. El equipo de


Hopper investigó y encontro una polilla en uno de los relés eléctricos. El equipo grabó la
polilla en una página de su cuaderno de actividades de ingenieros, donde todavía se
puede ver en el Museo Nacional Smithsonian de Historia Americana. Este evento fue una
depuración literal.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 7/63
8/2/23, 10:15 Student Kit!

Hopper fue una de las primeras científicas en prever que era posible crear un lenguaje
de programación usando palabras en inglés. En consecuencia, desarrolló el primer
compilador, un sistema que convirtió el lenguaje humano en lenguaje máquina. Y
cuando se creó el lenguaje informático COBOL en 1959, Hopper era asesora. Murió en
1992, pero los informáticos todavía se refieren a ella cariñosamente por sus apodos
"Amazing Grace" y "Grandma COBOL".

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 8/63
8/2/23, 10:15 Student Kit!

Semáforo Básico
En esta primera actividad, conectarás un circuito básico de semáforo con tres LEDs.
Después de construir el circuito, escribirás un programa y lo cargarás en la placa
Arduino UNO R3 para controlar el semáforo.

TEACHER NOTES

En esta actividad, los alumnos construirán un circuito que se asemeja al de un


semáforo utilizando LEDs y resistores. Cada LED será controlado por un pin
diferente de la placa Arduino UNO R3.

Componentes Necesarios

1 PLACA DE PROYECTOS 3 RESISTOR DE 220 Ω 1 LED ROJO

1 LED AMARILLO 1 LED VERDE 1 CABLE DE


ALIMENTACIÓN NEGRO

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 9/63
8/2/23, 10:15 Student Kit!

1 CABLES DE CONEXIÓN 1 CABLE USB

FURTHER NOTES

Las bandas de color del resistor de 220 ohmios son:

4 bandas: rojo, rojo, marrón, oro


5 bandas: rojo, rojo, negro, negro, oro

Cables de alimentación: los cables de alimentación son los cables de conexión


largos rojos y negros que tienen un accesorio rectangular para el pin en cada
extremo.

CÓNOCE MÁS: Tipos de Dispositivos

Comprueba para entender

Clasifica los siguientes dispositivos como digitales o analógicos:

Interruptor de luz On/off

Perilla de control de volumen

Luz intermitente de un coche

Alarma de humo

Controles de limpiaparabrisas

Multímetro

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 10/63
8/2/23, 10:15 Student Kit!

FURTHER NOTES

Comprueba para entender - soluciones

Interruptor de luz On/off – digital


Perilla de control de volumen – analógico
Luz intermitente de un coche – digital
Alarma de humo – la mayoría son digitales
Controles de limpiaparabrisas – pueden ser digitales o analógicos
Multímetro – la mayoría son analógicos (algunas funciones como la
continuidad podrían ser digitales)

Diagrama esquemático

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 11/63
8/2/23, 10:15 Student Kit!

Creación del circuito


Usa el diagrama esquemático y el diagrama de cableado o las siguientes diapositivas
para construir el circuito.

Step 1

Usa un cable de conexión para conectar el pin digital 5 de la placa Arduino UNO R3 al
orificio 3a en la placa de prototipado.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 12/63
8/2/23, 10:15 Student Kit!

Step 2

Busca un LED rojo. Inserta el ánodo del LED en el orificio 3e. Inserta el cátodo en el
orificio 3f.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 13/63
8/2/23, 10:15 Student Kit!

Step 3

Busca un resistor de 220 ohmios. Inserta un pin del resistor en el orificio 3j. Inserta el
otro pin del resistor en el terminal negativo en el lado derecho de la placa.

Step 4

Usa otro cable de conexión para conectar el pin digital 4 de la placa Arduino UNO R3 al
orificio 10a en la placa de prototipado

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 14/63
8/2/23, 10:15 Student Kit!

Step 5

Conecta un LED amarillo a la placa de prototipado. Inserta el ánodo en el orificio 10e.


Inserta el cátodo en el orificio 10f.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 15/63
8/2/23, 10:15 Student Kit!

Step 6

Usa otro resistor de 220 ohmios para conectar el LED amarillo a tierra. Inserta un pin
del resistor en el orificio 10j. Inserta el otro pin del resistor en el terminal negativo en el
lado derecho de la placa.

Step 7

Un LED verde será controlado por el pin digital 3 de la placa Arduino UNO R3. Usa un
cable de conexión para conectar el pin digital 3 al orificio 17a en la placa de prototipado

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 16/63
8/2/23, 10:15 Student Kit!

Step 8

Conecta un LED verde a la fila 17 de la placa de prototipado. El ánodo del LED debe
conectarse al orificio 17e y el cátodo al orificio 17f.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 17/63
8/2/23, 10:15 Student Kit!

Step 9

Usa un resistor de 220 ohmios más para conectar el LED verde a tierra. Un pin del
resistor debe conectarse al orificio 17j. El otro pin debe conectarse al terminal negativo
de la placa de prototipado. Tu circuito está casi completo. Sin embargo, ¿notaste que el
circuito no es un circuito cerrado? Le falta un componente. ¿Puedes adivinar qué es?

Step 10

El circuito no está completo porque su terminal negativo no está conectado a tierra. Los
tres caminos del circuito se unen en el terminal negativo en el lado derecho de la placa
de prototipado. Debe conectar el terminal al pin de tierra de la placa Arduino UNO R3
para completar el circuito. Usa el cable de alimentación negro para conectar cualquier
orificio desde el terminal negativo derecho a uno de los pines de tierra (marcado como
GND) en la placa Arduino UNO R3.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 18/63
8/2/23, 10:15 Student Kit!

FURTHER NOTES

Es posible que debas recordar qué pin es el ánodo y qué pin es el cátodo.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 19/63
8/2/23, 10:15 Student Kit!

Ahora tienes un circuito en paralelo completo con tres ramas, una para color de LED. La
potencia de cada rama será controlada por los pines digitales en la placa Arduino UNO
R3. Estos pines actuarán como interruptores que activan y desactivan el flujo de
corriente.

FURTHER NOTES

En la placa Arduino UNO R3, hay tres pines marcados como tierra (GND). Todos
estos pines funcionan igual y puedes conectar a tierra tu circuito con cualquiera
de ellos.

Creación del código - Iluminar los LEDs


En esta actividad, aprenderás a encender y apagar los LEDs conectados a la placa
Arduino.

FURTHER NOTES

Puede ser difícil leer la pantalla desde muy lejos. Para ayudarte con esto, ve
a File > Preferences y aumenta el tamaño de la fuente de 18 a 24. Esto hace
que sea más fácil leer la pantalla desde lejos.

TEACHER NOTES

En esta actividad, los alumnos escribirán su primer programa usando el IDE de


Arduino. Se les presenta estos comandos:

pinMode() – declara un pin digital como entrada (INPUT) o salida (OUTPUT)


digitalWrite() – envía una señal digital al circuito

1) Abre el Arduino IDE.

2) En el menú File, elije New. Esto comenzará un nuevo sketch en una nueva ventana.
Puedes cerrar la otra ventana de sketch.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 20/63
8/2/23, 10:15 Student Kit!

Hay dos métodos para ver el IDE de Arduino y las instrucciones de este curso. Usa el
método que mejor te resulte.

Método 1 – Maximiza la ventana Arduino IDE a pantalla completa. Luego, alterna entre la
venta IDE y las instrucciones del curso utilizando la barra de tareas en la parte inferior
de la pantalla

Método 2 – Organiza la ventana IDE de Arduino y las instrucciones del curso una al lado
de la otra para que pueda ver ambas al mismo tiempo. Ambas ventanas serán más
pequeñas, posiblemente haciendo que sea más difícil de ver, pero la ventaja es que no
tienes que alternar de un lado a otro.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 21/63
8/2/23, 10:15 Student Kit!

3) Guarda el sketch con un nuevo nombre. En el menú File, elije Save As... La localización
del sketch debe ser el Arduino Sketchbook. Si no es así, elige dónde debes guardar el
sketch en la computadora. Nombra el archivo como "Lesson3_V1" seguido de tus
iniciales. Después haz click en Save.

Nota: Cuando guardes sketches, es una buena idea guardar los cambios
importantes como una versión del sketch. Esto te permitirá hacer una copia de
seguridad de una versión anterior del sketch por si algo sale mal en el sketch y no
puedes diagnosticar el problema. A medida que guardas sketchs a lo largo de cada
lección, aumentará el número de versión (V1) cada vez que realices cambios
importantes.

FURTHER NOTES

Los nombres de archivo de los sketches de Arduino no pueden tener espacios.


Al guardar un sketch, los espacios se convertirán automáticamente en guiones
bajos.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 22/63
8/2/23, 10:15 Student Kit!

4) Observa que en tu nuevo sketch hay dos secciones: una sección llamada void setup()
y una sección llamada void loop(). Estas secciones son llamadas funciones. Cada sketch
de Arduino tiene estas dos funciones. La función void setup() contiene comandos que
quieres ejecutar una vez al comienzo de tu programa. La función void loop() contiene
comandos que quieres que la placa Arduino UNO R3 ejecute continuamente.

Los comandos para la función void setup() o void loop() deben introducirse entre llaves
para esa función. La llave de apertura – { – indica el comienzo de la función, y la llave de
cierre – } – indica el final de la función.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 23/63
8/2/23, 10:15 Student Kit!

La primera línea de la función void setup() contiene un comentario de código. Los


comentarios de código comienzan con // y se utilizan para ayudarte a realizar un
seguimiento de lo que hace una función o línea de código. Los comentarios de código
generalmente se escriben en el lenguaje cotidiano, pero puede poner lo que quiera en
un comentario de código. Cuando la placa Arduino UNO R3 ve el símbolo //, ignora el
resto de esa línea.

FURTHER NOTES

El uso de comentarios de código es una buena práctica incluso para los


programadores más experimentados. Ayuda a los programadores a:

Identificar quién escribió el código y cuando.


Organizar el código en secciones.
Mantener un registro de lo que hace una línea o sección de código.
Etiquetar código que esta libre de errores.
Facilitar a otro programador seguir la lógica de un programa
Depurar código que no está funcionando.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 24/63
8/2/23, 10:15 Student Kit!

Activar o desactivar líneas o secciones de código fácilmente.


Tomar notas sobre ciertos parámetros o configuraciones dentro del código
a medida que el código se modifica.

Nota: Además de las llaves, las funciones void setup() y void loop() también tienen
paréntesis. Los paréntesis tienen otro propósito que no se cubrirá en esta guía.
Sin embargo, es importante no confundir paréntesis con llaves.

5) Tu circuito está utilizando tres pines digitales en la placa Arduino UNO R3. Cada uno
de los pines digitales de la placa se puede configurar como un pin de salida o un pin de
entrada. Los pines de salida envían cinco voltios de electricidad. Los pines de entrada
leen si el voltaje regresa a la placa Arduino UNO R3. Para su circuito, los pines 3, 4 y 5
deben configurarse como pines de salida.

El comando para declarar si un pin es de entrada o de salida es pinMode(pin, estado).


El pin puede ser cualquiera de los pines de la placa Arduino UNO R3. El ESTADO es INPUT
(entrada) o OUTPUT (salida). Observa cuándo poner mayúsculas en el comando y en el
estado. Para que la placa Arduino UNO R3 reconozca el comando, las letras mayúsculas
en el comando y en el estado deben ser exactamente como se muestra.

Ejemplos:

pinMode (10, INPUT);

pinMode(A1, OUTPUT);

Es hora de añadir tu primera línea de código a la función void setup(). Debajo del
primer comentario de código, escribe el siguiente comando:

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 25/63
8/2/23, 10:15 Student Kit!

Nota: Observa que el comando termina con un punto y coma. En el IDE de


Arduino, cada comando debe terminar con uno.

6) Para asegurarte de haber ingresado el comando correctamente, puedes verificar el


código. Cuando verificas el código, el IDE de Arduino compila el código y lo lee para
asegurarse de que puede entender cada comando. Cuando se compila el código, la
computadora traduce los comandos que ha escrito en inglés a un idioma que la
computadora pueda entender

Para verificar tu código, haz click en el botón con la marca de verificación en la esquina
superior izquierda de la ventana.

Si tu código es legible por la máquina, aparecerá un mensaje en la parte inferior de la


pantalla que indica que él código se ha compilado. El área negra en la parte inferior
también le mostrará información sobre la cantidad de espacio de almacenamiento que
ocupa su programa.

Si el compilador no puede entender tu código, recibirá un mensaje de error naranja que


explica el problema.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 26/63
8/2/23, 10:15 Student Kit!

FURTHER NOTES

Al intentar compilar un código, el IDE de Arduino detendrá el proceso una vez


que encuentre un error en la sintaxis. Por lo tanto, si existen múltiples errores
en un sketch, solo se puede identificar un error a la vez. Es importante tener la
costumbre de verificar el código con frecuencia.

Si su código tiene un error, deberá depurarlo. Depurar significa buscar errores en la


sintaxis o la lógica de su código. Aquí hay algunas cosas que verificar:

¿Has puesto la M mayúscula en pinMode?

¿Has escrito OUTPUT todo con mayúsculas?

¿Has puesto ambos paréntesis de apertura y cierre en el comando pinMode?

¿Has añadido un punto y coma al final del comando pinMode?

¿Has escrito todo correctamente? Si has cometido un error, corrige tu código y


luego verifícalo nuevamente. Continua depurando tu código hasta que tu sketch
esté libre de errores.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 27/63
8/2/23, 10:15 Student Kit!

Nota: Depurar el código es una parte común de la programación. De hecho,


algunas personas estiman que los programadores profesionales pasan el 25% de
su tiempo escribiendo el código y el otro 75% de su tiempo depurando. Por lo
tanto, no te sientas mal por tener errores en tu código. Es parte de la
programación. Pero los buenos programadores también son bueno
solucionadores de problemas. Pueden encontrar sus errores de codificación y
abordarlos con soluciones que funcionen.

TEACHER NOTES

Consejos sobre mensajes de error:

Si tus alumnos reciben el mensaje de error mientras compilan, el IDE de


Arduino ayudará a diagnosticar el problema. A veces, interpretar el mensaje
de error puede ser complicado. Dependiendo del error, puede ser útil usar
el botón "Copiar mensaje de error " para copiar todo el mensaje de error y
luego ponerlo en otro documento. Esto le permite ver el mensaje de error
completo al mismo tiempo.
A menudo, el IDE de Arduino resaltará una línea del código. Muchas veces, el
error ocurre directamente antes o después de está línea resaltada. Por
ejemplo, si falta un punto y coma al final de un comando, el IDE de Arduino
resaltará el comando directamente debajo de la línea donde falta el punto y
coma.

7) Además del pin 3, tu circuito está utilizando otros dos pines en la placa Arduino UNO
R3 para controlar los LEDs - pines 4 y 5. Bajo el primer comando pinMode(), añade dos
comandos más para configurar pinMode() para los pines 4 y 5 como pines de salida

8) Verifica tu código nuevamente para verificar si hay errores. Depura tu código si has
cometido un error. Vuelve a verificar que tu función void setup() se ve así:

Nota: Verifica tu código con frecuencia. Esto te ayudará a mantener tu código

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 28/63
8/2/23, 10:15 Student Kit!

limpio mientras lo escribes.

CÓNOCE MÁS: Sintaxis de Programación

9) Los comentarios de código son útiles para recordar lo que hacen las líneas o
secciones de código. Cambia el comentario de código para la función void setup() a algo
más descriptivo sobre lo que hacen las líneas de código en esta sección. Por ejemplo,
puedes cambiar el comentario de código para decir:

// configura los pines de los LEDs como salidas

Independientemente de cómo cambies el comentario, solo recuerda que todos los


comentarios de código deben comenzar con //.

10) Estás listo para pasar a la función void loop(). Esta es la sección principal del sketch
o programa. Para encender un LED que está conectado a la placa Arduino UNO R3, debe
suministrar voltaje al circuito. La placa puede enviar electricidad a través de cualquiera
de los pines digitales o analógicos. Para los pines digitales, digitalWrite(pin, ESTADO) es
el comando que controla si el voltaje se enciende o apaga para cada pin. El pin puede
ser cualquiera de los pines digitales (0 a 13) en la placa Arduino UNO R3. El ESTADO
puede ser HIGH (que suministra cinco voltios) o LOW (que suministra cero voltios).

Ejemplos

digitalWrite(10, HIGH); - suministra 5 voltios de electricidad a través del pin 10.

digitalWrite(7, LOW); - apaga el flujo de electricidad en el pin 7

Debajo del comentario para la función void loop(), escribe un comando para encender
el LED verde conectado al pin 3. No olvides terminar el comando con un punto y coma.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 29/63
8/2/23, 10:15 Student Kit!

Nota: Los Recursos se pueden usar para revisar los comandos y cómo deben
formatearse en el IDE de Arduino.

11) Verifica y depura tu código si es necesario.

12) Después del punto y coma en tu comando digitalWrite(), añade un comentario de


código para explicar qué hace esta línea de código. Por ejemplo, tu línea de código
podría verse así:

13) Añade comandos digitalWrite() para encender los LEDs amarillos y rojos
conectados a los pines 4 y 5. Añade comentarios de código al final de cada línea. Cuando
termine, verifica y depura tu código.

Nota: Al programar, copiar y pegar es una gran herramienta para escribir líneas
de código similares. Copia una línea o una sección de código libre de errores, pega
el código en su ubicación correcta y cambia las partes que deban cambiarse.
Verifica el código cuando hayas terminado.

TEACHER NOTES

Los Recursos contienen las descripciones y ejemplos de cada comando y


función utilizados en este curso. Haz que los alumnos consulten los
Recursos cuando sea necesario.

14) Busca el cable USB. Conecta el extremo plano del cable USB a su computadora.
Conecta el otro extremo del cable al puerto USB de la placa Arduino UNO R3.

Tu placa Arduino UNO R3 debe tener una luz verde encendida que indica que está
encendida.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 30/63
8/2/23, 10:15 Student Kit!

Nota: Cuando la placa Arduino UNO R3 está alimentada, también puede tener una
luz amarilla encendida. Esta luz es un indicador de estado para el pin 13. Puedes
ignorar esta luz por ahora.

15) En el IDE de Arduino, ve al menú Tools y luego coloca el ratón sobre Port. Debería
aparecer un menú emergente donde puedes seleccionar el puerto al que está
conectada tu placa Arduino UNO R3.

FURTHER NOTES

Una vez que se ha seleccionado el puerto, el IDE de Arduino debe establecerse


de forma predeterminada en ese puerto cada vez que se conecta la placa
Arduino UNO R3 a través del cable USB. Sin embargo, si se conecta una placa
Arduino diferente, es probable que tenga un número COM diferente.Deberás
pasar por el proceso de seleccionar el puerto correcto nuevamente.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 31/63
8/2/23, 10:15 Student Kit!

Lo primero que debes hacer es verificar si seleccionaste el puerto correcto si la


placa Arduino UNO R3 y la computadora no parecen comunicarse.

16) En el IDE, haz clic en el botón Upload para transferir el código a la placa Arduino. El
botón Upload es el botón con una flecha que apunta hacia la derecha en la esquina
superior izquierda de la ventana.

La computadora compilará el código y luego lo transferirá a la placa Arduino UNO R3.


Durante la transferencia, debería ver algunas luces amarillas parpadeando en la placa
que indican que se está comunicando con la computadora.

Cuando se complete la transferencia, el código se ejecutará y deberías ver que se


iluminan los tres LEDs de la placa de prototipado.

17) Si tus LEDs no se encendieron, depura tu código y repite el Paso 15. Tu código
debería ser similar a esto:

18) Guarda tu sketch antes de continuar. Haz clic en Save o ve al menú File y selecciona
Save.

TEACHER NOTES

Anima a los alumnos a usar la tabulación para mantener el código limpio y


ordenado. La sangría ayuda a identificar fácilmente secciones de código. Por
ejemplo, los comandos en la función void setup() pueden tabularse para indicar
que pertenece a esa función

FURTHER NOTES

La tabulación será especialmente útil cuando comiences a meterte en


condicionales y bucles en lecciones posteriores:

La tecla Tab aumenta el tabulado de una línea.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 32/63
8/2/23, 10:15 Student Kit!

Shift+Tab disminuye la tabulación de una línea.

Creación del código - Parpadear los LEDs


Hasta ahora, has escrito comandos para encender los tres LEDs en tu circuito usando
tres pines digitales en la placa Arduino UNO R3. Ahora que tus LEDs están encendidos,
es hora de hacer que parpadeen.

TEACHER NOTES

En esta actividad, los alumnos añadirán código a su sketch y harán que los LEDs
parpadeen. Se les presentarán estos comandos:

delay() – pausa el sketch/programa por un tiempo designado

A medida que los alumnos completen esta sección, anímales a continuar


escribiendo comentarios de código para explicar su código.

1) Si es necesario, inicia el IDE de Arduino y abre tu sketch Lesson3_V1. Usa el cable USB
para conectar la placa Arduino UNO R3 al puerto USB de la computadora.

2) Guarda el sketch con un nuevo nombre. En el menú File, elije Save as... La localización
del sketch debe ser el Arduino Sketchbook. Si no es así, elige dónde debes guardar el
sketch en la computadora. Nombra el archivo como "Lesson3_V2" seguido de tus
iniciales. Después haz click en Save.

3) Organiza tu ventana de sketch Lesson3_V2 y esta ventana de la forma que más te


convenga.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 33/63
8/2/23, 10:15 Student Kit!

4) En la función void loop() de tu sketch, añade tres comandos más de digitalWrite().


Estos comandos deben añadirse después de los primeros tres comandos y antes de la
llave de cierre para la función void loop(). Escribe un comando para cada uno de los
pines 3, 4 y 5.

Para que los LEDs parpadeen, debes apagarlos. En sus tres nuevos comandos
digitalWrite(), el estado debe ser LOW en lugar de HIGH.

Nota: Copiar y pegar puede ser el mejor amigo de un programador. Copiar una
sección de código libre de errores, pegarla en una nueva ubicación y modificar sus
parámetros puede ser más rápido y más limpio. Siempre asegúrate de que una
sección del código esté libre de errores antes de copiarla y pegarla. Copia tus
primeros tres comandos de digitalWrite(). Pega una copia de estos comandos
después de los primeros tres comandos. Cambia el estado de HIGH a LOW. Cambia
los comentarios de tu código para que coincidan.

Añade comentarios de código a tus comandos explicando lo que hace cada comando.
Tus nuevas líneas de código deberían ser similares a esto:

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 34/63
8/2/23, 10:15 Student Kit!

5) Verifica y depura tu código si es necesario.

6) Haz clic en el botón Upload para transferir el sketch a la placa Arduino UNO R3.
Cuando se complete la transferencia, se ejecutará el código. ¿Tus luces parpadean? Lo
más probable es que no estén parpadeando. Discute con tu compañero por qué crees
que tus luces no parpadean.

7) Los errores de sintaxis son errores en el código que la computadora no puede


entender. Los errores de sintaxis comunes son palabras mal escritas, falta de puntos y
comas, falta de paréntesis o llaves y palabras clave que no están en mayúsculas
correctamente. La herramienta de verificación en el Arduino IDE ayuda a encontrar esos
errores. Sin embargo, no todos los errores son errores de sintaxis. A veces también hay
errores lógicos. Ese es el caso aquí.

El problema con tu sketch no es que las luces no estén parpadeando, lo están haciendo.
Están parpadeando tan rápido que tus ojos no pueden verlo. Las líneas de código se
ejecutan muy rápidamente. De hecho, el IDE de Arduino te permite controlar qué tan
rápido se ejecutan los comandos hasta el microsegundo. Eso es una millonésima de
segundo (1/1,000,000).

CÓNOCE MÁS: Optimización

Para arreglar tu código, puedes usar un delay. Un comando delay(tiempo) te permite


hacer que la placa Arduino UNO R3 se detenga y espere el tiempo que quieras en
milisegundos. Hay 1.000 milisegundos en un segundo. Por ejemplo, si deseas que la
placa Arduino UNO R3 espere dos segundos antes de ejecutar el siguiente comando
usaría el comando:

delay(2000);

Nota: El comando delayMicrosecond() te permite designar un cierto número de


microsegundos para que la placa Arduino UNO R3 se detenga y espere. Hay
1.000.000 microsegundos en un segundo.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 35/63
8/2/23, 10:15 Student Kit!

Es importante entender que durante un delay, la placa Arduino UNO R3 no puede hacer
nada. No puede ejecutar ningún otro comando hasta que finalice el delay. Un comando
de delay simplemente hace que la placa se siente y espere el tiempo designado.

Tu sketch tiene tres líneas que encienden los LEDs. Después de estas tres líneas, añade
un comando delay(). Establece el tiempo de delay por un segundo. Asegúrate de añadir
un punto y coma al final del comando.

También necesitas añadir un comando de delay al final del sketch. De lo contrario,


cuando los LEDs se apaguen y el sketch vuelva a la parte superior de la función void
loop(), se encenderán nuevamente. Añade otro comando delay() al final del sketch,
antes de la llave de cierre.

8) Verifica tu sketch. Depura tu sketch si es necesario. Tu sketch debería ser similar a


esto:

9) Carga tu sketch a la placa Arduino UNO R3. Cuando esté completo, los LEDs deberían
parpadear en intervalos de dos segundos.

10) Guarda tu sketch

CÓNOCE MÁS: Pseudocódigo

TEACHER NOTES

Recuerda a los alumnos que no hay respuesta correcta o incorrecta al escribir


un pseudocódigo. Sin embargo, cuanto más detallado sea el pseudocódigo, más
fácil será la transición del pseudocódigo a un programa funcional.

Creación del Código - Programar un Semáforo


Es hora de hacer que tus LEDs hagan algo útil. En esta actividad, programarás tus LEDs
para que actúen como un semáforo para controlar el flujo de tráfico en una

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 36/63
8/2/23, 10:15 Student Kit!

intersección concurrida.

TEACHER NOTES

En esta actividad, los alumnos modificarán su programa para crear un semáforo


con su circuito LED. La actividad comienza haciendo que escriban un
pseudocódigo para su programa. Los alumnos necesitan su cuaderno de
actividades.

1) Si es necesario, inicia el IDE de Arduino y abre tu sketch Lesson3_V2. Usa el cable USB
para conectar la placa Arduino UNO R3 al puerto USB de la computadora.

2) Guarda el sketch con un nuevo nombre. En el menú File, elije Guardar como... La
localización del sketch debe ser el Arduino Sketchbook. Si no es así, elige dónde debes
guardar el sketch en la computadora. Nombra el archivo como "Lesson3_V3" seguido de
tus iniciales. Después haz click en Save.

3) Organiza tu ventana de sketch Lesson3_V3 y esta ventana de la forma que más te


convenga.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 37/63
8/2/23, 10:15 Student Kit!

4) Hasta ahora en este sketch, has escrito comandos para parpadear los tres LEDs
conectados a tu placa Arduino UNO R3. Para modificar estos LEDs para que actúen
como un semáforo, tomará un poco de tiempo pensarlo. Busca el cuaderno de
actividades para estudiantes y pasa a la Lección 3, página 9.

5) Considera lo que debe suceder para que tu circuito funcione como un semáforo. En el
espacio provisto en tu cuaderno, escribe un pseudocódigo que describa cómo
funcionará tu semáforo. Utiliza el inglés estándar. Las siguientes preguntas pueden
ayudarte a escribir tu pseudocódigo:

¿Deberían encenderse dos o más luces al mismo tiempo?

¿Qué luz debería encenderse primero, segundo y tercero?

¿Qué deben hacer las otras luces cuando se encienda una luz?

¿Qué debería suceder después de que se apague la tercera luz?

¿Cuánto tiempo debe permanecer encendida cada luz?

6) Pasa tu pseudocódigo a tu sketch de la Lección 3 en el IDE de Arduino. Empieza


modificando el código que ya has escrito. Luego añade los nuevos comandos

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 38/63
8/2/23, 10:15 Student Kit!

digitalWrite() y delay() según sea necesario. Aquí hay algunos consejos mientras
programas:

Tu función void loop() debe tener tres secciones. Uno para la luz verde, uno para la
luz amarilla y otro para la luz roja.

Un delay debe separar cada sección

No todos los delays deben ser de la misma duración.

Actualiza los comentarios de tu código para ayudarte a comprender cada línea de


código.

7) Cuando termine de programar, verifica tu código y depura según sea necesario.

8) Carga tu sketch a la placa Arduino UNO R3. Cuando el sketch se transfiera por
completo, se ejecutará el código.

9) Mira el comportamiento de tu semáforo. ¿Se comporta como te esperabas? Si no,


regresa a tu sketch y modifica el código. Vuelve a subir el sketch. Continua modificando
el código y vuelve a subir el sketch hasta que el semáforo se comporte como le
describiste en tu pseudocódigo.

10) Guarda tu sketch

FURTHER NOTES

Los sketchs deberían verse como uno de estos ejemplos. El segundo ejemplo ha
sido optimizado para eliminar comandos innecesarios.

<

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 39/63
8/2/23, 10:15 Student Kit!

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 40/63
8/2/23, 10:15 Student Kit!

Semáforo con botón peatonal


En muchas intersecciones concurridas, los semáforos tienen botones peatonales que
las personas que caminan por la acera pueden presionar. Esto permite al semáforo
saber que las personas, y no sólo los coches, deben cruzar la calle. En esta actividad,
añadirás un botón peatonal a tu circuito. Luego, programarás el semáforo para que
funcione de manera diferente cuando se presione el botón.

Componentes Necesarios

1 PROJECTO ARDUINO 1 RESISTOR DE 10K Ω 1 INTERRUPTOR DE


CON CIRCUITO DE BOTÓN
SEMÁFORO

1 CABLE DE 1 CABLES DE CONEXIÓN 1 CABLE USB


ALIMENTACIÓN ROJO

FURTHER NOTES

Las bandas de color del resistor de 10K ohmios son:

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 41/63
8/2/23, 10:15 Student Kit!

4 bandas: marrón, negro, naranja, oro


5 bandas: marrón, negro, negro, rojo, oro

CÓNOCE MÁS: Interruptores

Diagrama esquemático

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 42/63
8/2/23, 10:15 Student Kit!

Creación del circuito


Usa el diagrama esquemático y el diagrama de cableado o las siguientes diapositivas
para construir el circuito.

Step 1

Comienza con tu circuito del semáforo de la actividad anterior.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 43/63
8/2/23, 10:15 Student Kit!

Step 2

Busca un pulsador. Conecta el interruptor a la placa de prototipado para que se


extienda el espacio en el medio de la placa de prototipado. Los pines deben estar en los
orificios 25e, 25f, 27e y 27f.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 44/63
8/2/23, 10:15 Student Kit!

Step 3

Usa un cable de conexión para conectar el pin superior izquierdo del botón al pin digital
2 en la placa Arduino UNO R3. Inserta un extremo del cable de conexión en el orificio
25a. Inserta el otro extremo del cable de conexión en el pin 2.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 45/63
8/2/23, 10:15 Student Kit!

Step 4

Usa un cable de conexión corto para conectar el pin inferior izquierdo del botón al
terminal positivo de la placa de prototipado. Inserta un extremo del cable de conexión
en el orificio 27a. Inserta el otro extremo en el terminal positivo en el lado izquierdo de
la placa de prototipado.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 46/63
8/2/23, 10:15 Student Kit!

Step 5

Conecta un resistor de 10K ohmios entre el pin superior derecho del botón y tierra.
Inserta un extremo del resistor en el orificio 25j. Inserta el otro extremo del resistor en
el terminal negativo de la placa de prototipado en el lado derecho.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 47/63
8/2/23, 10:15 Student Kit!

Step 6

Por último, debes enviar energía al interruptor a través del terminal positivo. Usa el
cable de alimentación rojo para conectar el terminal positivo en el lado izquierdo de la
placa de prototipado con el pin de 5V en la placa Arduino UNO R3.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 48/63
8/2/23, 10:15 Student Kit!

Ya sabes cómo funciona la parte de los LEDs del circuito. Cada LED actúa como una
salida y es controlado por un pin diferente en la placa Arduino UNO R3. Pero el pulsador
conectado al pin 2 en la placa es diferente. Es un dispositivo de entrada. El pin 2 leerá el
voltaje que entra en lugar de enviarlo.

Hay dos caminos conductores que puede tomar la corriente hasta el pin 2 dependiendo
de si el interruptor está arriba o abajo. Cuando el interruptor está abajo, el pin 2 leerá
cinco voltios a medida que la corriente fluye a través del interruptor. Cuando el
interruptor abajo, la corriente no puede fluir a través de él, en su lugar, el camino
conductor pasa a través del resistor de 10K ohmios, que baja el voltaje a cero. La
sección de Resistores pull-down explica cómo funciona esto con más detalle.

CÓNOCE MÁS: Resistores Pull-Down

TEACHER NOTES

Comprender el pulsador y la necesidad del resistor pull-down es uno de los


conceptos más confusos cubiertos en este curso. Está bien si los estudiantes no
comprenden completamente el concepto en este momento. Puede ser una

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 49/63
8/2/23, 10:15 Student Kit!

buena idea volver a este concepto más adelante en el curso después de que los
estudiantes tengan más experiencia para desarrollar aún más su comprensión.

Creación de Código - Programar el Botón


Hasta ahora, has programado tu semáforo para que parpadeen los LEDs verde, amarillo
y rojo en orden. En esta actividad, programarás tu botón peatonal para que cuando se
presione el botón, los LEDs rojo y amarillo se apaguen mientras que el LED verde
parpadee, lo que indica que está bien que los peatones crucen la calle.

TEACHER NOTES

En esta actividad, los estudiantes programarán un botón como entrada para


controlar el comportamiento del semáforo. Se les presenta estos comandos:

if (condition){} – forma básica de una declaración condicional


digitalRead() – lee un valor digital del circuito

1) Si es necesario, inicia el IDE de Arduino y abre tu sketch Lesson3_V3. Usa el cable USB
para conectar la placa Arduino UNO R3 al puerto USB de la computadora

2) Guarda el sketch con un nuevo nombre. En el menú File, elije Save As... La
localización del sketch debe ser el Arduino Sketchbook. Si no es así, elige dónde debes
guardar el sketch en la computadora. Nombra el archivo como "Lesson3_V4_" seguido
de tus iniciales. Después haz click en Save.

3) Organiza tu ventana de sketch Lesson3_V4 y esta ventana de la forma que más te


convenga.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 50/63
8/2/23, 10:15 Student Kit!

4) Su placa Arduino UNO R3 está configurado para usar el pin digital 2 como entrada. En
la función void setup(), añade otro comando pinMode() que declare el pin 2 como
entrada. Luego, añade un comentario de código que explique tu nuevo comando.

Nota: Asegúrate de escribir la palabra INPUT en mayúsculas, poner paréntesis de


apertura y cierre e incluir un punto y coma al final del comando.

Sentencia Condicional
Hay dos comportamientos diferentes que el semáforo debe mostrar dependiendo de si
el botón es presionado. Cuando el botón está presionado, la parte del código para que
crucen los peatones debe ejecutarse y el LED verde debe parpadear. Cuando el botón
no esté presionado, el semáforo debe funcionar normalmente tal y como ya lo
programaste. Para programar ambos comportamientos, necesitarás usar una nueva
función de programación llamada sentencia condicional.
https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 51/63
8/2/23, 10:15 Student Kit!

Una sentencia condicional a veces se llama sentencia if-then o, más simplemente, solo
una sentencia if. Las sentencias condicionales te permiten ejecutar ciertas líneas de
código si una determinada situación o condición es verdadera. Utilizas condicionales
para tomar decisiones todo el tiempo en tu día a día. Aquí hay algunos ejemplos
básicos:

En el IDE de Arduino, la sentencias condicionales toman esta forma:

if (condicion) {

comando a ejecutar cuando la condición sea verdadera}

La condición va entre paréntesis y utiliza un operador de comparación para comparar


dos o más valores. Estos valores pueden ser valores numéricos, variables o inputs que
entran en la placa Arduino UNO R3. La siguiente tabla es una lista de los operadores de
comparación y cómo se usan en la parte de condición de una sentencia if.

Operador de
Significado Ejemplo
Comparación

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 52/63
8/2/23, 10:15 Student Kit!

== es igual a if (digitalRead(2) == HIGH) {haz algo}

!= no es igual a if (digitalRead(5) != LOW) {haz algo}

< es menor que if (distance < 100) {haz algo}

> es mayor que if (count > 5) {haz algo}

<= es menor o igual a if (number) <= minValue) {haz algo}

>= es mayor o igual a if (number >= maxValue) {haz algo}

**Nota:** Observa que la comparación "es igual a" es un signo de doble igual. Se
utiliza un solo signo igual para asignar un valor a una variable. Se utiliza un doble
signo igual para comparar dos valores. Aprenderás más sobre las variables y
asignar valores en la Lección 4

Cuando se comparan los dos valores en la condición, el resultado puede ser verdadero
o falso. Si la condición es verdadera, se completan los comandos dentro de las llaves. Si
la condición es falsa, los comandos dentro de las llaves se omiten.

**Nota:** Recuerda que cada función en el IDE de Arduino que tiene una llave de
apertura debe tener una llave de cierre. Cuando trabajas con sentencias
condicionales, puede ser confuso qué llaves pertenecen a qué función. En el IDE, si
mueves el cursor directamente detrás de una llave de apertura o cierre, la pareja
de esa llave se resaltará con un cuadro

En la programación, las sentencias condicionales pueden ser bastantes simples o


pueden ser argumentos lógicos complejos que involucran múltiples condiciones y
escenarios. Explorarás otros tipos de sentencias condicionales en la Lección 4. Por

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 53/63
8/2/23, 10:15 Student Kit!

ahora, usarás el formulario básico de sentencia if. **5)** Al comienzo de la función


**void loop()**, escribe la siguiente sentencia:

Recuerda que el comando **digitalWrite(pin, valor)** se usa para establecer un pin de


Salida como HIGH o LOW. Estos son los comandos que encienden o apagan los LEDs. Así
como el comando **digitalWrite()** se usa con pines de salida, el comando
**digitalRead()** se usa con pines de entrada. El comando **digitalRead(pin)** es el
comando que lee si un pin digital tiene un valor HIGH o LOW.
Sentencia pinMode Comando Valor Voltaje

Devuelve HIGH Lee más de 3 voltios


pinMode(pin,INPUT) digitalRead(pin)
Devuelve LOW Lee menos de 1.5 voltios

Saca HIGH envía 5 voltios


digtalWrite(pin,
pinMode(pin,OUTPUT)
value) Saca LOW envía 0 voltios

La declaración if que acabas de crear compara el estado del pin 2 con un valor LOW.
Recuerda que el valor de voltaje LOW se produce cuando no se presiona el botón y la
ruta conductora es a través del resistor de 10K ohmios. En otras palabras, esta
sentencia condicional dice: "si el botón no está presionado".

6) A continuación, debes añadir los comandos que deseas ejecutar cuando el pin 2 es
LOW y el botón no este presionado. Estos son los comandos que ya creaste que
ejecutan el semáforo normal. Puedes cortar y pegar estos comandos entre las llaves
para la sentencia if, o simplemente puedes mover la llave de cierre para la declaración if
después del último delay. Usa el método que te resulte más conveniente. Cuando
termines, tu función void loop() debería ser similar a esto

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 54/63
8/2/23, 10:15 Student Kit!

Nota: Observa en el código cómo se sangran los comandos para la instrucción if.
El uso de sangría ayuda a mantener el código ordenado y deja en claro qué
comandos se ejecutan en una función. Aunque puede tomar unos segundos
adicionales, usa sangría, saltos de línea y comentarios de código para que su
código se vea bien. Valdrá la pena a la larga.

7) Verifica tu código y depura si es necesario

FURTHER NOTES

Un error de sintaxis común es perder la noción del número de llaves necesarias.


A veces, las llaves de cierre se dejan fuera de las funciones o se añaden
demasiadas llaves de cierre. Recuerda que en un sketch, cada llave de apertura
necesita una llave de cierre.

8) Has programado la parte del circuito que opera el semáforo cuando el botón no está
presionado. Ahora es el momento de escribir el código que permite a un peatón cruzar
la calle cuando se presiona el botón. Esto requerirá una segunda sentencia condicional.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 55/63
8/2/23, 10:15 Student Kit!

Sin embargo, esta vez, debes comparar el valor digitalRead() del pin 2 con HIGH en
lugar de LOW. Escribe la siguiente sentencia condicional al final de tu sketch antes de la
llave de cierre para la función void loop().

9) Cuando se pulsa el botón, el semáforo debe detener todo el tráfico e indicar a los
peatones que está bien cruzar la calle. Para hacer esto, apaga el LED rojo y LED amarillo
y haz que el LED verde parpadee. Dentro de las llaves de su segunda sentencia
condicional, añade tres comandos digitalWrite()

Un comando debe apagar el LED rojo conectado al pin 5.

Un comando debe apagar el LED amarillo conectado al pin 4.

Un comando debe encender el LED verde conectado al pin 3.

10) Tu tarea final es hacer que el LED verde parpadee mientras se presiona el botón.
Recuerda que la velocidad de parpadeo está determinada por sus sentencias de delay().
Puedes elegir la velocidad de parpadeo del LED verde. Antes de la llave de cierre de tu
segunda sentencia if, añade una declaración de delay seguida de una sentencia
digitalWrite() para apagar el LED verde y luego añade una sentencia de delay final.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 56/63
8/2/23, 10:15 Student Kit!

11) Añade comentarios de código a tus nuevos comandos que expliquen lo que hace
cada uno.

12) Verifica y depura tu código si es necesario. Tu sketch debería ser similar a esto:

13) Carga tu sketch a la placa Arduino UNO R3. Cuando el sketch se transfiera por
completo, se ejecutará el código

14) Mira el comportamiento de tu semáforo. Presiona el botón y espera a que el


semáforo termine su ciclo. ¿La luz verde parpadea para los peatones? Cuando se suelta
el botón, ¿la luz vuelve a su patrón normal de semáforo? De lo contrario, realiza cambios
en tu sketch y vuelve a cargar el sketch en la placa Arduino UNO R3.

15) Cuando termines, guarda tu sketch.

Probar y Modificar
En la Lección 2, aprendiste sobre circuitos en serie y en paralelo. La mayoría de los
circuitos generalmente no son 100% en serie o 100% en paralelo. La mayoría de los
circuitos son una combinación de circuitos en serie y en paralelo. De hecho, el semáforo
que has construido tiene elementos de circuitos en serie y en paralelo. En esta
actividad, identificarás partes de tu circuito que están cableadas en serie y en paralelo.
También usarás el multímetro para explorar cómo el botón controla el voltaje que entra
a la placa Arduino. Necesitarás tu cuaderno de actividades para estudiantes para esta
actividad.

TEACHER NOTES

Los estudiantes necesitan su cuaderno de actividades para esta actividad.


Puedes encontrar las respuestas claves de la Lección 3 en la página 10 del
cuaderno de actividades para profesores.

1) Si es necesario, inicia el IDE de Arduino y abre tu sketch para la lección 3. Usa el cable
USB para conectar la placa Arduino UNO R3 al puerto USB de la computadora.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 57/63
8/2/23, 10:15 Student Kit!

Asegúrate de que el circuito del semáforo funcione como se esperaba.

2) Tu semáforo es una combinación de circuitos en serie y en paralelo. Explica qué


componentes del circuito están conectados en serie y por qué. Luego, explica qué
componentes están conectados en paralelo y por qué. Registra tu respuesta en tu
cuaderno de actividades.

3) A continuación, medirás y compararás el voltaje del pin 2 cuando se presiona el botón


y cuando no. Esto te permitirá ver lo que ve la placa Arduino UNO R3. Busca tu
multímetro y gira el dial a la configuración de CC de 20 voltios. (20V).

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 58/63
8/2/23, 10:15 Student Kit!

4) Recuerda que el voltaje es una diferencia en la energía potencial entre dos partes del
circuito. Los pines de la placa Arduino UNO R3 siempre miden esta diferencia en
comparación con tierra. Para encontrar el voltaje del pin 2, debes conectar el
multímetro a tierra. Conecta un cable de conexión al terminal negativo de la placa de
prototipado.

5) Con el botón en la posición superior, mide el voltaje entre el botón y tierra. Con la
punta de prueba roja toca uno de los pines superiores del botón. Con la punta de
prueba negra toca el otro extremo del cable de conexión que está conectado a tierra.
Registra tu medida de voltaje como el Voltaje del Pin 2 cuando el botón está arriba.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 59/63
8/2/23, 10:15 Student Kit!

6) Un pin digital tiene dos estados, HIGH o LOW. Un pin está en estado HIGH cuando
recibe más de 3 voltios de electricidad. Un pin está en estado LOW cuando recibe menos
de 1.5. En tu cuaderno de actividades, registra si el pin es HIGH o LOW cuando el botón
está arriba.

7) Presiona el botón para que el semáforo pase al modo peatonal. Con el botón
presionado, mide el voltaje entre el botón y tierra. Con la punta de prueba roja toca uno
de los pines superiores del botón. Con la punta de prueba negra toca el otro extremo
del cable de conexión que está conectado a tierra. Registra tu medición de voltaje en la
columna Voltaje de Pin 2 cuando el botón está presionado.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 60/63
8/2/23, 10:15 Student Kit!

TEACHER NOTES

Los estudiantes que trabajan solos tendrán problemas con esta parte de la
actividad.

FURTHER NOTES

Se necesitan más de dos manos para pulsar el botón y medir el voltaje al mismo
tiempo. Estate preparado para pedir ayudar si es necesario.

8) En tu cuaderno de actividades, registra si el pin es HIGH o LOW cuando el botón está


presionado.

9) Mira los datos que acabas de reunir. Usa estos datos para explicar cómo el circuito
del botón se lee como HIGH o LOW en el pin 2 de la placa Arduino UNO R3. Asegúrate de
incluir una explicación de por qué se necesita el resistor de 10K ohmios.

10) Limpia tu área de trabajo y guarda todo el equipo en sus cajas correspondientes.

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 61/63
8/2/23, 10:15 Student Kit!

FURTHER NOTES

IDEAS DE EXTENSIÓN

Discusión – Muchos semáforos modernos incorporan cámaras y sensores


para ayudar a determinar cuándo debe cambiar la luz. Piensa sobre cómo se
podría introducir sensor en el circuito del semáforo. ¿Dónde se conectarían
los sensores al circuito? ¿Qué buscarían? ¿Qué condiciones deberían hacer
que las luces cambien?

Mejoras en el semáforo – Busca fallos en el diseño se su semáforo. Luego


busca ideas y soluciones para corregir estos fallos. Haz que modifica el
circuito o código para implementar las soluciones y mejorar el semáforo.
Por ejemplo, un fallo en el circuito es que el botón peatonal debe
permanecer presionado para que el LED verde parpadee, pero los peatones
no pueden continuar presionando el botón hacia abajo y cruzar la calle al
mismo tiempo. ¿Cómo podría modificarse el código para saber si el botón es
presionado pero también permitir que los peatones crucen la calle? Algunas
de las soluciones para solucionar los defectos de los semáforos se
abordarán en la Lección 4.

Semáforo Doble – Muchos cruces más grandes operan varios semáforos a la


vez, lo que brinda a los conductores mayor visibilidad para saber cuándo
detenerse y cuándo avanzar. Haz que los estudiantes añadan otros LEDs
rojo amarillo y verde al circuito en serie con los LEDs originales.Los dos LEDs
rojos deben encenderse al mismo tiempo, ambas luces amarillas al mismo
tiempo y ambas luces verdes al mismo tiempo. Haz que los estudiantes
noten lo que le sucede al circuito cuando se añade un segundo semáforo al
circuito.

Optimizar el código – Optimizar el código es una habilidad de programación


importante. Acelera el tiempo de ejecución del código y lo hace más
eficiente. Haz que los estudiantes miren su sketch final de la Lección 3 en el
IDE de Arduino. Deben buscar formas de optimizar su código eliminando
comandos innecesarios. Por ejemplo, si un LED ya está apagado, no necesita
un segundo comando que le indique al LED que se apague. Prueba el código
optimizado en tu circuito del semáforo para confirmar que todavía funciona
como se esperaba.

Pseudocódigo – Escribe un pseudocódigo para un algoritmo. Luego, si estáis


trabajando en grupos, comparar y discutir el pseudocódigo. Haz preguntas
como: ¿Todos los códigos son iguales? ¿Cuántas maneras hay para realizar
una tarea? ¿Qué es más útil, ser abierto y dar instrucciones generales o ser
específico y dar instrucciones detalladas?

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 62/63
8/2/23, 10:15 Student Kit!

TEACHER NOTES

Los algoritmos de ejemplo podrían ser

Como ir de vuestra casa al colegio.


Como hacer un sandwich.
Como comprobar el voltaje de una batería

https://studentkit.arduino.cc/studentkit/module/student-kit/lesson/traffic-signals 63/63

También podría gustarte