4.6 Cas d'estudi

L'iDevice cas d'estudi és un problema complex que els alumnes han de resoldre en grup. És sol donar realimentació en principi amagada però fàcilment visible.
Icona d'iDevice Cas d'estudi

Ací tens les instruccions per contruir un semafor per vianants i controlar-lo amb la targeta Arduino.

1. Fes un semafor amb tres leds , de colors Roig , Groc i Verd.
2. Solda a cada led un resistència en sèrie de 330 Ohms.
3. Uneix la part positiva de cada led a la resistència i les negatives ( curtes) les uneixes totes tres a un terminal d'una regleta on aniran els comuns.
4. El altres leds han d'anar cadascun a un terminal de la regleta i estarn connectats amb cables roig el led roig , groc el led groc , i verd el led verd.
5. Posa el cable del led roig connectat al pin 12 de la controladora.
6. Posa el cable del led groc connectat al pin 11 de la controladora.
7. Posa el cable del led verd connectat al pin 10 de la controladora.
8. Posa el cable comú connectat a al pin comú (GND)
9. Posa un resistència de 10 Kohms en sèrie amb un polsador ( final de carrera o microswitch) connectada en pull-down.
10. També tens el codi font del programa amb que hem provat el semàfor per vianants .



Codi font:

/*
* Copyright (C) 2007 Carles Ferrando Garcia
* This program is free software; you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Foundation;
* See the GNU General Public License for more details
* ( http://www.gnu.org/licenses/gpl.html )
*
* SemaforRGV-Polsador
* Semafor Roig si premem el polsador ( final de carrera)
* es posa en groc i despres en verd si polsem
* al final torna al estat roig
*/
int ledPinR = 12; // led roig connectat al pin 12
int ledPinG = 11; // led groc connectat al pin 11
int ledPinV = 10; // led verd connectat al pin 10
int puls=8; // pulsador al pin 8
void setup()
{
pinMode(ledPinR, OUTPUT); // defineix la funcio digital pin roig
pinMode(ledPinG, OUTPUT); // defineix la funcio digital pin groc
pinMode(ledPinV, OUTPUT); // defineix la funcio digital pin verd
pinMode(puls, INPUT); // defineix la funció digital polsador
}
void loop() {
if(digitalRead(puls)==HIGH){ //Condicional que se ejecuta cuando detecta el pulsador presionado
delay(200); // retard per evitar errors al polsar varies vegades
digitalWrite(ledPinG, HIGH); // engega el led groc
delay(1000); // espera 1 segons amb el led engegat
digitalWrite(ledPinG, LOW); //apaga el led groc
digitalWrite(ledPinV, HIGH); // engega el led verd
delay(10000); // espera 10 segons amb el led engegat
digitalWrite(ledPinV, LOW); // apaga el led verd
}
//instruccions que s'executen si no esta presionat el polsador

digitalWrite(ledPinR, HIGH); //engega el led roig
delay(1000); // espera 1 segons amb el led engegat
digitalWrite(ledPinR, LOW); //apaga el led roig
delay(200); //espera 0,2 segons
}

L'enllaç web per veure el vídeo de youtube d'aquest semàfor amb polsador és ací , en aquests vídeo veureu el semàfor amb el programa que teniu més amunt.

Activitat: Mirat bé les instruccions i modifica-les per construir un Encreuament semàforic on tingues dos semàfors per vianants i un semàfor pels cotxes.

Sota la llicència de GNU Free Documentation License