Podeu trobar més informació a https://bricoarduino.wordpress.com/2013/02/22/sketch_002-semaforo-led/
-Instal·lació de la pràctica:
- Hem de muntar el circuit amb 5 LEDS(2 vermells, 2 verds i 1 groc) connectats per una banda a terra (GND) i per l'altra a una resistència de 330 ohms.
- De la resistència ha de sortir un cable que vagi als diferents ports de sortida de la placa d'arduino(0,1,2,3,4).
- A continuació procedirem a muntar el display (el comptador).
- Necessitam 7 resistències de 330 ohms, una a cada cama deixant de banda la darrera i les del mig.
- Connectam 2 cables de GND a les cames del mig del display.
- De cada resistència ha de sortir un cable connectat als ports de sortida que queden lliures(5,6,7,8,9,10,11).
- Per instal·lar el brunzidor cal una resistència de 100 ohms.
- D'una pota s'ha de connectar el cable a terra (GND) i de l'altra la resistència.
- De la resistència es col·loca un cable al port de sortida 12.
*NOTA: per facilitar la instal·lació podem connectar tots els cables que van a GND en una mateixa fila de la placa protoboard per així dur un sol cable a GND.
![]() |
Semàfor amb display |
![]() |
Brunzidor |
-Codi:
int redLed1=0;
int yellowLed=1;
int greenLed1=2;
int redLed2=3;
int greenLed2=4;
int seg_A=5;
int seg_B=6;
int seg_C=7;
int seg_D=8;
int seg_E=9;
int seg_G=10;
int seg_F=11;
#define BRUNZIDOR 12
#define NOTA_E6 1319
int state=0;
void setup(){
pinMode(redLed1, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(greenLed1, OUTPUT);
pinMode(redLed2, OUTPUT);
pinMode(greenLed2, OUTPUT);
pinMode(seg_A, OUTPUT);
pinMode(seg_B, OUTPUT);
pinMode(seg_C, OUTPUT);
pinMode(seg_D, OUTPUT);
pinMode(seg_E, OUTPUT);
pinMode(seg_F, OUTPUT);
pinMode(seg_G, OUTPUT);
}
void loop(){
digitalWrite(greenLed1, HIGH);
digitalWrite(redLed2, HIGH);
delay(5000);
digitalWrite(greenLed1, LOW);
digitalWrite(yellowLed, HIGH);
delay(2000);
digitalWrite(yellowLed, LOW);
digitalWrite(redLed1, HIGH);
digitalWrite(redLed2, LOW);
digitalWrite(greenLed2, HIGH);
for(int a=0;a<7;a++){
if(a==0){
digitalWrite(seg_A, HIGH); //nº5
digitalWrite(seg_B, LOW);
digitalWrite(seg_C, HIGH);
digitalWrite(seg_D, HIGH);
digitalWrite(seg_E, LOW);
digitalWrite(seg_F, HIGH);
digitalWrite(seg_G, HIGH);
delay(1000);
tone (BRUNZIDOR, NOTA_E6, 500);
delay (500);
}
if(a==1){
digitalWrite(seg_A, LOW); //nº4
digitalWrite(seg_B, HIGH);
digitalWrite(seg_C, HIGH);
digitalWrite(seg_D, LOW);
digitalWrite(seg_E, LOW);
digitalWrite(seg_F, HIGH);
digitalWrite(seg_G, HIGH);
delay(1000);
tone (BRUNZIDOR, NOTA_E6, 500);
delay (500);
}
if(a==2){
digitalWrite(seg_A, HIGH); //nº3
digitalWrite(seg_B, HIGH);
digitalWrite(seg_C, HIGH);
digitalWrite(seg_D, HIGH);
digitalWrite(seg_E, LOW);
digitalWrite(seg_F, LOW);
digitalWrite(seg_G, HIGH);
delay(1000);
tone (ZUMBADOR, NOTA_E6, 500);
delay (500);
}
//nº2
else if(a==4){
digitalWrite(seg_A, HIGH);
digitalWrite(seg_B, HIGH);
digitalWrite(seg_C, LOW);
digitalWrite(seg_D, HIGH);
digitalWrite(seg_E, HIGH);
digitalWrite(seg_F, LOW);
digitalWrite(seg_G, HIGH);
delay(1000);
tone (BRUNZIDOR, NOTA_E6, 500);
delay (500);
}
//nº1
else if(a==5){
digitalWrite(seg_A, LOW);
digitalWrite(seg_B, HIGH);
digitalWrite(seg_C, HIGH);
digitalWrite(seg_D, LOW);
digitalWrite(seg_E, LOW);
digitalWrite(seg_F, LOW);
digitalWrite(seg_G, LOW);
delay(1000);
tone (BRUNZIDOR, NOTA_E6, 500);
delay (500);
}
//nº0
else if(a==6){
digitalWrite(seg_A, HIGH);
digitalWrite(seg_B, HIGH);
digitalWrite(seg_C, HIGH);
digitalWrite(seg_D, HIGH);
digitalWrite(seg_E, HIGH);
digitalWrite(seg_F, HIGH);
digitalWrite(seg_G, LOW);
delay(1000);
tone (BRUNZIDOR, NOTA_E6, 500);
delay (500);}
digitalWrite(seg_A, LOW);
digitalWrite(seg_B, LOW);
digitalWrite(seg_C, LOW);
digitalWrite(seg_D, LOW);
digitalWrite(seg_E, LOW);
digitalWrite(seg_F, LOW);
digitalWrite(seg_G, LOW);
}
digitalWrite(redLed1, LOW);
digitalWrite(greenLed2, LOW);
}
Aquí teniu el resultat de la pràctica. Això es podria aplicar fàcilment als carrers d'una gran ciutat per controlar el flux de vianants i cotxes.
No hay comentarios:
Publicar un comentario