Arduino - verkeerslicht


/* verkeerslicht sturing
* (c) Luc De Beukelaer - 2015-11-11
* Mogelijkheid om te kiezen tussen
* - het Belgisch en Duits patroon
* - overschakkelen op knipperlichten
*
*/
/* init constanten */
int nTijdRood = 1000; // (=1 sec)
int nTijdRdGl = 1000; // (= 1 sec)
int nTijdGeel = 1500; // (= 1,5 sec)
int nTijdGroen = 12000; // (= 12 sec)
int nKnipper = 1000;
int nDuits = 0; //0 = Belgisch – 1 = Duits (te sturen via een schakelaar)
int nKnipperstand = 0; //0 = neen – 1 = ja

/* setup poorten */
void setup()
{

for (int i = 2; i <= 7; i++)
{
pinMode(i, OUTPUT);
}
pinMode (8, INPUT); // Schakelaar Duits J/N
pinMode (9, INPUT); // Schakelaar Knipperstand J/N
}

/* sturing */
void loop()
{
nDuits = digitalRead(8);
nKnipperstand = digitalRead(9);

if (nKnipperstand == HIGH)
{
for (int i = 2; i <= 7; i++) // zet alle lichten uit
{
digitalWrite (i, LOW);
}
delay (nKnipper);
digitalWrite(3, HIGH); // NZ-geel aan
digitalWrite(6, HIGH); // OW-geel aan
delay (nKnipper);
}
else
{
/* periode 1 */
digitalWrite(2, HIGH); // NZ-rood aan
digitalWrite(3, LOW); // NZ-geel uit
digitalWrite(4, LOW); // NZ-groen uit
digitalWrite(5, HIGH); // OW-rood aan
digitalWrite(6, LOW); // OW-geel uit
digitalWrite(7, LOW); // OW-groen aan
delay (nTijdRood);

/* periode 2 */
if (nDuits == HIGH)
{
digitalWrite(2, HIGH); // NZ-rood aan
digitalWrite(3, HIGH); // NZ-geel aan
digitalWrite(4, LOW); // NZ-groen uit
digitalWrite(5, HIGH); // OW-rood aan
digitalWrite(6, LOW); // OW-geel uit
digitalWrite(7, LOW); // OW-groen aan
delay (nTijdRdGl);
}

/* periode 3 */
digitalWrite(2, LOW); // NZ-rood aan
digitalWrite(3, LOW); // NZ-geel uit
digitalWrite(4, HIGH); // NZ-groen uit
digitalWrite(5, HIGH); // OW-rood aan
digitalWrite(6, LOW); // OW-geel uit
digitalWrite(7, LOW); // OW-groen aan
delay (nTijdGroen);

/* periode 4 */
digitalWrite(2, LOW); // NZ-rood aan
digitalWrite(3, HIGH); // NZ-geel uit
digitalWrite(4, LOW); // NZ-groen uit
digitalWrite(5, HIGH); // OW-rood aan
digitalWrite(6, LOW); // OW-geel uit
digitalWrite(7, LOW); // OW-groen aan
delay (nTijdGeel);

/* periode 5 */
digitalWrite(2, HIGH); // NZ-rood aan
digitalWrite(3, LOW); // NZ-geel uit
digitalWrite(4, LOW); // NZ-groen uit
digitalWrite(5, HIGH); // OW-rood aan
digitalWrite(6, LOW); // OW-geel uit
digitalWrite(7, LOW); // OW-groen aan
delay (nTijdRood);

/* periode 6 */
if (nDuits = 1)
{
digitalWrite(2, HIGH); // NZ-rood aan
digitalWrite(3, LOW); // NZ-geel aan
digitalWrite(4, LOW); // NZ-groen uit
digitalWrite(5, HIGH); // OW-rood aan
digitalWrite(6, HIGH); // OW-geel uit
digitalWrite(7, LOW); // OW-groen aan
delay (nTijdRdGl);
}

/* periode 7 */
digitalWrite(2, HIGH); // NZ-rood aan
digitalWrite(3, LOW); // NZ-geel uit
digitalWrite(4, LOW); // NZ-groen uit
digitalWrite(5, LOW); // OW-rood aan
digitalWrite(6, LOW); // OW-geel uit
digitalWrite(7, HIGH); // OW-groen aan
delay (nTijdGroen);

/* periode 8 */
digitalWrite(2, HIGH); // NZ-rood aan
digitalWrite(3, LOW); // NZ-geel uit
digitalWrite(4, LOW); // NZ-groen uit
digitalWrite(5, LOW); // OW-rood aan
digitalWrite(6, HIGH); // OW-geel uit
digitalWrite(7, LOW); // OW-groen aan
delay (nTijdGeel);
} // end if
} // end loop

Wanneer U geen menu's ziet klik dan hier

Valid HTML 4.01 Transitional 100% hand coded HTML