Tutorial para hacer un semáforo con Arduino.

 

Hoy tenemos un nuevo tutorial de programación para Arduino, ideal para principiantes. Se trata de un proyecto que te va a permitir controlar un semáforo.

Materiales

-Arduino UNO

– Una resistencia de 110 kilo ohmios

– Resistencias de 6220 ohmios

– Un botón

– 1 LED rojo, 1 LED amarillo y 1 LED verde

– 1 Protoboard

– Algunos cables de conexión junto con el cable USB para conectar el Arduino a su computadora

 

Conexiones

1.- Comencemos configurando un circuito básico de semáforos de Arduino, por lo que necesitará conectar sus leds rojo, amarillo y verde en su protoboard y van a los pines 10, 9 y 8 respectivamente del Arduino.

2.- Además, coloca entre cada uno de los pines conectados al Arduino y las patas largas de los leds una resistencia de 220 ohmios tal como lo indica la siguiente imagen.

 

3.- Para finalizar con el montaje procedemos a conectar los pines de 5 voltios y tierra del Arduino a sus respectivos rieles de voltaje y tierra en su protoboard.

A continuación, te muestro un diagrama para que se vea más claramente el montaje.

 

Ahora estamos listos para programar nuestro semáforo, pero para programar en tu Arduino vas a necesitar usar el arduino IDE, si aún no lo tienes instalado en tu computadora ve al sitio web de Arduino y descarga el IDE de Arduino e instálalo en tu computadora.

 

 

Código

1.- Abra el IDE de Arduino y cree un nuevo sketch.

 

 

2.-  Comenzaremos diciéndole al IDE qué pines queremos usar nuestros LED, así que vamos a crear tres enteros llamados rojo, amarillo y verde y les daremos los números correctos de pin 10, 9 y 8 respectivamente.

 

 

3.- Ahora vamos a usar nuestra función setup para configurar estos pines como salida, para hacer esto debemos usar el pinMode ingresando el nombre del pin seguido de OUTPUT todo en letras mayúsculas,

 

 

Esto significa que cuando el Arduino inicie, sabrá que debe convertir el pin rojo (que ya dijimos que es el pin número 10) en una salida.

 

4.- A continuación, en nuestra función loop vamos a llamar a un método diferente llamado changeLights.

 

 

 

5.- Ahora bien, esto aún no existe, estamos a punto de hacerlo aquí y luego, una vez que llamemos a este método, queremos que el programa tenga una duración de 15 segundos, por lo que pedimos que se retrase por 15000 milisegundos, lo que le dará 15 segundos demora.

 

6.- Ahora, creamos la función de cambio de luces. Es muy sencillo, no voy a enfocarme en cada parte de él porque hace lo mismo una y otra vez.

 

 

7.- Pero una vez que se activan las luces de cambio desde la función loop y, como dice aquí, comienza apagando el led color verde y encendiendo el led color amarillo durante tres segundos.

 

 

8.- Ahora,  la función digitalWrite nos está “diciendo” que  nuestro pin digital verde (el 8) debe estar apagado mediante la palabra LOW, esto apagará el led.

 

 

9.- De la misma manera configuramos el led amarillo para que se encienda mediante la palabra HIGH y gracias a la función delay que ya habíamos usado en el setup, ambos leds permanecerán así durante tres segundos.

 

Ahora que sabemos cómo funcionan estos tres métodos, podemos entender lo que hace el resto del código fácilmente: el amarillo se apaga y el rojo se enciende, hay un retraso de cinco segundos (5000 milisegundos) y luego el amarillo se enciende con un retraso de 2 segundos (2000 milisegundos) y luego el amarillo se apaga el rojo se apaga y el verde se enciende por un retraso de tres segundos (3000 milisegundos).

 

 

10.- Para finalizar, si aún no ha conectado su Arduino a su computadora por el puerto USB, te debes asegurar de que esté configurado correctamente con el IDE de Arduino y la forma de hacerlo es dirigiéndose al menú tools, aquí y mirando hacia abajo donde dice board, ahora estoy usando un Arduino UNO, así que eso es lo que he seleccionado, sin embargo, no importa qué tipo de Arduino tenga, lo encontrará en esta lista.

 

 

11.- También debemos asegurarnos de estar usando el puerto de comunicación correcto, yo sé que en la comunicación 10 tengo mi Arduino y porque en realidad aparece.

 

 

Si tiene varios comportamientos y no está seguro exactamente dónde está, puede abrir el administrador de dispositivos en Windows y mirar debajo de los puertos USB, verá que habrá varios.

 

 

Incluso si uno de ellos no dice Arduino, deberías poder averiguar cuál es tu Arduino por descarte.

 

 

12.- Una vez que haya configurado su board, deberá guardar su boceto. Puede hacerlo desde aquí haciendo clic en el botón Save o puede ir al archivo y hacer clic en Save o Save As para darle un nombre diferente.

 

 

13.- A continuación, debe compilar y cargar su código, por lo que puede hacer clic en la marca y esto verificará que su código se compila correctamente antes de cargarlo en su Arduino, esto puede tomar unos segundos, pero una vez que se carga, comenzará a funcionar de inmediato

Ahora que los códigos están cargados, debería ver que sus semáforos funcionan, de ser así, comienza en verde y luego, después de una pausa, cambiará a rojo y luego regresará a verde de nuevo y, como configuramos ese retraso en una función de bucle, funcionará estos 15 segundos para siempre, siempre y cuando esté conectado si no funciona para usted, asegúrese de tener la placa de comunicación y el tipo de bord correctos configurados en Arduino IDE.

 

 

Ahora, pasemos a algo un poco complicado, ahora agreguemos un botón simple al proyecto, la idea es que cuando el usuario presione el botón, los semáforos cambiarán.

 

 

El diagrama a continuación le mostrará cómo configurarlo, pero muy brevemente, un pin del botón se conecta al voltaje, el otro se conecta a tierra a través de una resistencia de 10kohms y el pin restante del botón se conecta a una línea que llega al pin 12 de nuestro Arduino para que el Arduino reciba una señal clara de cuándo se presiona el botón.

 

 

 

Ahora que hemos configurado el botón en el circuito, vamos a configurarlo en nuestro código.

Cree una nueva copia del boceto que acabamos de hacer pero lo guardé como TL2 y lo que haremos es agregar un nuevo número entero aquí en la parte superior de nuestro código, así que aquí decimos que el botón entero es igual a 12, que es el pin donde lo conectamos a nuestro Arduino.

 

 

Ahora, necesitamos agregar un par de líneas a nuestra función de setup, así como configuramos estos pines para que sean salidas para los leds, necesitamos configurar nuestro pinMode para que sea una entrada mediante la palabra INPUT. También queremos configurar el led verde para que esté encendido al inicio, de modo que cuando los semáforos no estén en funcionamiento, solo estén en verde, solo queremos que se encienda en rojo cuando el usuario presiona el botón.

 

 

Ahora, necesitamos hacer un cambio en nuestra función loop, porque no queremos que esto cambie todo el tiempo, solo queremos que suceda cuando se presiona el botón.

Para hacer esto, vamos a usar una instrucción if, así que if y luego abrimos paréntesis, queremos hacer una digitalRead (lectura digital), esto es lo mismo que la digitalWrite, pero para la entrada y queremos que la lectura digital se haga mediante el botón cuando se ponga en estado HIGH y lo encerramos entre paréntesis.  Lo que esto significa es que, en teoría, cada vez que se presiona el botón, el programa hará lo que sea que esté aquí, pero no sabemos exactamente dónde, así que en teoría esto debería funcionar, pero lo que nosotros haremos realmente lo vamos a crear en el siguiente paso.

 

 

Otra declaración if: aquí que se ve casi exactamente igual, Volvemos a usar la lectura digital del botón y, cuando sea HIGH procederá a ejecutar la función changeLights.

 

 

Compilar el código le mostrará dónde están los errores que cometió y en mi caso, he cometido un error muy simple, lo más seguro es que ya lo hayas notado en la imagen anterior: olvidé cerrar el paréntesis del condicional if.

 

 

Pero ahora, si lo guardo y lo compilo, todo debería funcionar perfectamente.

Ahora que este código está cargado en mi tablero, puedo presionar el botón y las luces cambiarán, así que eso es bastante bueno, hemos agregado un poco de funcionalidad de usuario a nuestro proyecto.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

6 + diecisiete =