Professional Documents
Culture Documents
1. Realitzar el disseny dels semàfors amb estris dibuix tècnic i disseny CAD.
2. Explicar el maquinari i programari per realitzar un automatisme.
3. Muntatge components elèctrics i electrònics.
4. Desenvolupar el programari perquè funcioni un semàfor de cotxe i vianant.
Descripció
En aquest projecte amb Arduino anem a incloure els llums del semàfor per un
encreuament entre cotxes i vianants.
Quan el programa comenci a funcionar veurem que la llum dels cotxes comença en
verd i el semàfor de vianants en vermell.
En el moment que el llum ambre del semàfor dels cotxes passi a vermella, els llums
dels vianants es ficarà verd perquè puguin passar.
Després d'un període de temps raonable perquè els vianants creuin el carrer, la llum
verda del semàfor de vianants parpelleja per advertir els vianants que s'han de donar
pressa per creuar el carrer. Llavors la llum dels vianants canviarà a vermell i la dels
vehicles tornarà a la seva rutina habitual, verd-ambre-vermell.
2. Completa la taula amb els materials i estris que utilitzis fins al final de la
construcció del teu semàfor.
Materials i Eines
Muntatge Elèctric
Elabora el teu propi programari perquè funcioni els semàfors segons els
requeriments que trobes en la descripció.
5. Realitza el codi i escriu-lo aquí a sota. Puja’l a Arduino i comprova que els
semàfors funcionen segons els requeriments que trobes en la descripció.
// Semáforo para coches y peatones ARDUINO
int carRed = 12 ;
int carYellow = 11;
int carGreen = 10;
int peaRed = 9;
int peaGreen = 8;
int button = 2;
int TiempoCruce = 5000;
unsigned long TiempoCambio = 0;
void setup(){
pinMode(carRed, OUTPUT);
pinMode(carYellow, OUTPUT);
pinMode(carGreen, OUTPUT);
pinMode(peaRed, OUTPUT);
pinMode(peaGreen, OUTPUT);
pinMode(button, INPUT);
digitalWrite(carGreen, HIGH);
digitalWrite(peaRed, HIGH);
}
void loop() {
int estado = digitalRead(button);
if (estado == HIGH && (millis() - TiempoCambio) > 5000 ){
cambioLuz();
}
}
void cambioLuz() {
digitalWrite(carGreen,LOW);
digitalWrite(carYellow, HIGH);
delay(2000);
digitalWrite(carYellow, LOW);
digitalWrite(carRed, HIGH);
delay(1000);
digitalWrite(peaRed, LOW);
digitalWrite(peaGreen, HIGH);
delay(TiempoCruce);
for (int x=0; x<10; x++) {
digitalWrite(peaGreen, HIGH);
delay(250);
digitalWrite(peaGreen, LOW);
delay(250);
}
digitalWrite(peaRed, HIGH);
delay(500);
digitalWrite(carYellow, HIGH);
digitalWrite(carRed, LOW);
delay(1000);
digitalWrite(carGreen, HIGH);
digitalWrite(carYellow, LOW);
TiempoCambio = millis();
}
Resultat Final
En les següent imatge pots trobar una similitud amb el que s’espera del treball final