Webcervices. Con la tecnología de Blogger.
RSS

Unete a nuestro grupo de facebook

Unete a nuestro grupo de facebook
Hola que tal lectores de esta pagina tan maravillosa que es arduino Tec ...Los invito a que amplíen mas sus conocimientos en Arduino y Raspberry Pi Uniéndose a mi grupo Arduino Tec

Tutorial - Cruce de semáforos LED

Tutorial - Cruce de semáforos LED





Objetivo: Montar un cruce de semáforos con un tiempo
 de espera de 6 segundos antes del cambio. La secuencia
 hará una espera de 4 segundos en verde, 2 segundos
parpadeando, luego Amarillo y luego Rojo (6 segundos de nuevo).
 El botón lo programaremos para que reinicie el contador cambiando
de semáforo (similar a cuando pulsamos el botón para cruzar en uno de estos).










Componentes a usar en este tutorial:

2 x Diodo LED Red

2 x Diodo LED Yellow

2 x Diodo LED Green

6 x Resistencia 220 ohmios

1 x Resistencia 10 Kohmios

1 x Arduino UNO

Cables

1 x Pulsador









En la imagen superior tenemos el diagrama del montaje.
Podemos identificar los LEDs, las resistencias y el botón pulsador.





Vamos a pasar a comentar las conexiones:





Para conectar nuestro Arduino UNO a la protoboard o
 BreadBoard sacaremos un cable (cable rojo) del PIN 5V
 hasta nuestra fila positiva de la protoboard (+) y un cable
 (cable azul) desde el PIN GND hasta nuestra fila (-) de la protoboard.





Para evitarnos problemas de conexión haremos ya el puente
a mitad de la protoboard. El cable azul de la imagen conecta
 la fila negativa para que todos los pines estén unidos. Nota:
 esto no es obligado hacerlo pero suele ser útil para evitarnos
problemas de montaje.





Ahora que ya tenemos la protoboard preparada para seguir,
 procederemos a conectar nuestro botón pulsador.
 Este componente está dotado de 4 terminales o "patas".
 Podemos conectarlo como en la imagen haciendo de
puente entre las bandas verticales de la protoboard.
A la pata de la izquierda le conectaremos la resistencia
 de 10 Kohmios y la resistencia irá conectada a la fila
negativa (GND) de la protoboard mediante un cable.

De la pata de la derecha del pulsador saldrá un cable que
conectara éste a la fila positiva de la protoboard (5V).





Seguidamente procederemos a colocar los LEDs
en la protoboard. Usando el polo negativo del LED
en la zona vertical de la protoboard y el positivo en
 la fila negativa de la protoboard (GND) como indica
la imagen. Del polo negativo del LED deberá ir conectado
 la resistencia de 220 ohmios como muestra la imagen.
 Es recomendable que su disposición también haga de
 puente entre las columnas verticales de la protoboard.





Una vez tenemos montados y conectados los componentes,
tan sólo nos faltará conectar los LEDs y el botón a nuestro
Arduino UNO. Estas conexiones las haremos de la siguiente manera:





Los LEDs los conectaremos desde la salida de la resistencia
 hacia el controlador. (ver imagen)





- LED Verde (derecha): PIN 2 del Arduino.

- LED Amarillo: PIN 3 (PWM)

- LED Rojo: PIN 4

- LED Verde: PIN 5

- LED Amarillo: PIN 6

- LED Rojo: PIN 7





Por último nos faltará conectar el botón a nuestro controlador. La pata superior izquierda la conectaremos al PIN 8 del Arduino UNO. Cable negro de la imagen.







Ahora vayamos al programa:
/*
 Programa para un par de semaforos que cambian de uno
 a otro, y la implementacion de un boton para terminar
 el tiempo de la luz verde y pasar al otro.
*/
// Declaramos la variable para el pin del boton
const int button = 8;

void setup() {
 // Con un ciclo activamos los pines del 2 al 7 como salidas
 for (int pin = 2; pin <= 7; pin++) {
   pinMode(pin, OUTPUT);
 }
 // El pin del boton lo ponemos como entrada
 pinMode(button, INPUT);
}

// Funcion para el primer semaforo y sus cambios de estado
void semaphoreOne() {
 digitalWrite(2, HIGH);
 int count = 0;
 while (count < 30) {
   // El ciclo esta en espera mientras el boton no es presionado
   if (digitalRead(button) == true) {
     break;
   }
   count++;
   delay(200);
 }
 // Programamos el cambio entre semaforos. Cuando el LED tiene la posicion LOW estara apagado, mientras que si esta en posicion HIGH estada encendido.
 digitalWrite(2, LOW);
 delay(500);
 digitalWrite(2, HIGH);
 delay(500);
 digitalWrite(2, LOW);
 delay(500);
 digitalWrite(2, HIGH);
 delay(500);
 digitalWrite(2, LOW);
 delay(500);
 digitalWrite(2, HIGH);
 delay(500);
 digitalWrite(2, LOW);
 delay(500);
 digitalWrite(2, HIGH);
 delay(500);
 digitalWrite(2, LOW);
 digitalWrite(3, HIGH);
 delay(2500);
 digitalWrite(3, LOW);
 digitalWrite(4, HIGH);
 digitalWrite(7, LOW);
 // Mandamos a llamar al otro semaforo
 semaphoreTwo();
}

// Funcion para el segundo semaforo y sus cambios de estado
void semaphoreTwo() {
 digitalWrite(5, HIGH);
 int count = 0;
 while (count < 30) {
   if (digitalRead(button) == true) {
     break;
   }
   count++;
   delay(200);
 }
 digitalWrite(5, LOW);
 delay(500);
 digitalWrite(5, HIGH);
 delay(500);
 digitalWrite(5, LOW);
 delay(500);
 digitalWrite(5, HIGH);
 delay(500);
 digitalWrite(5, LOW);
 delay(500);
 digitalWrite(5, HIGH);
 delay(500);
 digitalWrite(5, LOW);
 delay(500);
 digitalWrite(5, HIGH);
 delay(500);
 digitalWrite(5, LOW);
 digitalWrite(6, HIGH);
 delay(2500);
 digitalWrite(6, LOW);
 digitalWrite(7, HIGH);
 digitalWrite(4, LOW);
 // Mandamos a llamar al otro semaforo
 semaphoreOne();
}

// Iniciamos nuestro semaforo
void loop() {
 // Cambiamos el estado de todos los leds para
 // que esten apagados todos al inicio
 for (int pin = 2; pin <= 7; pin++) {
   digitalWrite(pin, LOW);
 }
 // Prendemos el verde de un semaforo y el
 // rojo del otro semaforo
 digitalWrite(2, HIGH);
 digitalWrite(7, HIGH);
 // Iniciamos el primer semaforo
 semaphoreOne();
}



  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentarios:

Publicar un comentario

Objetivo Y Reclamaciones

Este blog es un portal en el cual se publican contenidos de diferentes blogs.En los cuales se les anexa al pie de pagina un enlace a su pagina original aquí encontraran toda clase de proyectos de arduino y linux
Espero tengan una gran experiencia en este blog un Gran Saludo
de parte de la organización WebCervices..
objetivo
O del grupo ArduinoTec De arduino
Cualquier reclamación o petición comunicar al Administrador principal o hacer un comentario en la publicación que se sientan inconformes en los correos
electriarias@gmail.com
y para temas de suma importancia mi correo personal
pabioarias@hotmail.com

Siguenos en Twitter

Like

Unete a nuestro grupo de facebook

Hola que tal lectores de esta pagina tan maravillosa que es arduino Tec ...Los invito a que amplíen mas sus conocimientos en Arduino y Raspberry Pi Uniéndose a La mi grupo Arduino Tec

Unete Al Grupo De facebook

Unete Al Grupo De facebook
Amplia tus conocimientos debatiendo temas de Arduino y Raspberry pi