/* 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