Buenas a todos. En primer
lugar, disculparme por no haber hecho la entrada del miércoles. Dicha
entrada no pude realizarla por falta de material de nivel básico para
hablar de las resistencias. En su lugar, habrá entrada doble. Dicho
esto, comenzamos.
En
el ejemplo de hoy, crearemos un semáforo doble, para peatones y coches,
que tendrá a su vez un interruptor que activará el semáforo de los
peatones y, al paso de unos segundos, activará el de coches de nuevo.
Pasamos a la lista de materiales que usaremos:
Materiales: 5 resistencias de 200k Ω, 1 resistencia de 10k Ω, 10 cables duPont, placa perforada de prototipado, 2 diodos led verdes, 2 diodos led rojos, 1 diodo led ámbar, Robotale UNO R3. |
Como novedad, incluiremos un esquema a partir de ahora, realizado en Fritzing, de como debería quedar (más o menos) nuestro proyecto una vez terminado. El resultado debería ser el siguiente:
![]() | |||
Usaremos los pines 5V y GND para dar corriente a toda la placa, y luego los pines del D8 al D12 para los leds, y el D2 para el interruptor. |
Empezamos el montaje, por los leds, recordando en todo momento la polaridad de los mismos para no liarla a la hora de encenderlo. Los organizamos tal que así, dejando un amplio espacio entre los leds correspondientes al semáforo de coches, y entre los leds del semáforo de peatones, ya que ahí colocaremos más adelante el interruptor:
El siguiente paso será el de colocar las resistencias de 200k Ω en el polo negativo de los leds, como muestra la fotografía siguiente (Tened cuidado con las patillas de las resistencias, son muy maleables y es posible que se rompan con facilidad):
Seguidamente, agregamos el interruptor, colocándolo como muestra la fotografía en el hueco que le hemos dejado en la placa. Dejamos un poco más de hueco a la derecha, para...
...hacele hueco a la resistencia de 10k Ω que usaremos para evitar freir el interruptor. Lo ponemos en el pin correspondiente al polo negativo. (Las resistencias siempre las pondremos en el polo negativo)
Ahora, conectamos dos cables DuPont, que irán del polo positivo del interruptor al positivo de la placa, y del negativo de la resistencia al negativo de la placa. Para diferenciar los cables sin problema alguno, usaremos cables naranjas para la corriente del interruptor.
Conectamos un cable DuPont amarillo en el pin D2 de nuestro Arduino UNO/Robotale UNO. Este es el cable que usaremos para leer la señal del interruptor. Solo ponemos un extremo, por ahora.
Acto seguido, conectamos a los pines D8 y D9 dos cables (En este caso, azules), que usaremos para controlar los leds del semáforo de peatones. igual que el anterior, no lo conectamos a los leds aún.
Y conectamos los DuPont blancos a los pines D10, D11 y D12, que corresponden al semáforo de coches.
Conectamos los cables de nuestra Robotale donde corresponde en la placa de prototipado. Comprobamos que ambas terminaciones (Robotale y placa) estan bien situadas, y pasamos al siguiente punto.
Conectamos un cable rojo al pin 5V, y uno negro al GND justo debajo, y estos los ponemos donde están + y - en la placa de prototipado. Así nos aseguramos de alimentar el interruptor y de tener un circuito de corriente siempre circulando por la placa, en el caso de que sea necesario, así como una toma de tierra para proteger tanto los leds como las resistencias.
Continuamos por arrancar nuestro IDE y cargamos el sketch a descargar AQUI, o bien escribimos el código:
/*
Ejemplo de semáforo de coches con módulo de peatones
Este ejemplo, correspondiente al Ejercicio 3, simula un semáforo para coches,
con un módulo para peatones que se activa pulsando el botón.
Necesario:
2 LEDs rojos
2 LEDs verdes
1 LED ámbar
1 Interruptor
5 resistencias de 220k
1 resistencia de 10k
10 cables DuPont
*/
//Creamos una variable global que mantendrá la información
//sobre como está el interruptor, esta variable será
//persistente durante todo el programa. Al interruptor le
//hemos asignado el pin D2, usando del D8 al D12 para los LEDs
int cRoj= 12;
int cAmb = 11;
int cVer = 10;
int pRoj = 9;
int pVer = 8;
int pBtn = 2;
int var = 0;
//Especificamos que los pines asignados a los diodos sean de salida, y
//El pin asignado al boton de entrada.
void setup() {
pinMode(pRoj, OUTPUT);
pinMode(pVer, OUTPUT);
pinMode(cRoj, OUTPUT);
pinMode(cAmb, OUTPUT);
pinMode(cVer, OUTPUT);
pinMode(pBtn, INPUT);
}
// Al iniciar el programa, está la luz para peatones en rojo, y la de coches en verde,
//así como la variable del interruptor en 0, pero a la espera de cambiar a HIGH en función
//de la lectura que de el pin D2, la cual se detecta mediante la función "digitalRead"
void loop(){
digitalWrite (pRoj, HIGH);
digitalWrite (cVer, HIGH);
var = digitalRead(pBtn);
//Una vez detecta que el pulsador ha sido utilizado, comienza la secuencia del semáforo, cambiando
//entre los colores durante 3 segundos, hasta encender la luz roja para coches y la verde para peatones,
//que se mantiene durante 10 segundos. Luego, enciende la luz de peatones roja, la apaga, reiniciando
//la secuencia inicial desde 0.
if (var == HIGH) {
delay(2000);
digitalWrite(cVer, LOW);
digitalWrite(cAmb, HIGH);
delay(3000);
digitalWrite(cAmb, LOW);
digitalWrite(cRoj, HIGH);
delay(3000);
digitalWrite(pVer, HIGH);
digitalWrite(pRoj, LOW);
delay(10000);
digitalWrite(pVer, LOW);
digitalWrite(pRoj, HIGH);
delay(3000);
digitalWrite(cRoj, LOW);
}
}
¿Cómo funciona el código? Al iniciarse, tanto la luz verde de coches, como la roja de peatones están encendidas siempre, esperando la entrada del interruptor que, una vez pulsado, inicia una secuencia que apaga la luz verde de coches y enciende la ámbar de coches, a los 3 segundos apaga esta y enciende la roja de coches, a los 3 segundos apaga la roja de peatones, enciendiendo la verde de peatones durante 10 segundos, y luego apaga esta, volviendo a la luz roja de peatones, y a los 3 segundos apaga la roja de coches, encendiendo de nuevo la verde de coches. En el video a continuación se puede comprobar mejor.
https://www.youtube.com/watch?v=ZVMj4XG3DSc (A la espera de que se pueda enlazar correctamente)
Y con esto terminamos el capítulo de hoy. La semana que viene subiremos el listón para celebrar la entrada 5ª del blog y 4ª de tutoriales con un ejemplo apto para nostálgicos.
Atención: En la conexión del interruptor, hay un error de instalación. Si se coloca como especifican las fotografías de los ejemplos no funcionará. Se recomienda instalarlo como en la fotografía a continuación, para asegurarse de que funciona correctamente:
No hay comentarios:
Publicar un comentario