Creativiteit (stoplicht)

OPDRACHT 3    STOPLICHTEN
Bouw deze eerst na en maak vervolgens een tweede knop of dubbele lichten.
De schakeling (schets) is wat ingewikkelder, maar ook hierbij deels de uitleg.

Zoals je ziet zit er een knipper in (blink)
Deze werkt niet zuiver. Maak een schema om dat zuiverder te maken en pas aan.

Bedenk daarbij een zeer praktische functie en aanpassing . Dat is dus zowel inhoudelijk als uiterlijk.

EINDWERKOPDRACHT

Neem deze schakeling over.

SCHETS

int rood = 13;        //variabele voor pin 13
int geel = 12;        //variabele voor pin 12
int groen= 11;        //variabele voor pin 11
int roodvoet= 10;     //variabele voor pin 10
int groenvoet= 9;     //variabele voor pin 9
int button = 8;       //variabele voor pin 8
int buttonStatus;     //variabele waarmee we kijken of de button is ingedrukt

void setup()
{
 
pinMode(rood, OUTPUT);       //output wil zeggen er komt stroom op
pinMode(geel, OUTPUT);
pinMode(groen, OUTPUT);
pinMode(roodvoet, OUTPUT);
pinMode(groenvoet, OUTPUT);
pinMode(button, INPUT);      //zorgt dat de button input is
digitalWrite(button, HIGH);  //en zorgt dat bij indrukken de button een signaal afgeeft
}

void loop()
{
//standaard staat groen aan en mogen auto’s rijden. Voetgangers moeten wachten
digitalWrite(rood, LOW);   
digitalWrite(geel, LOW);   
digitalWrite(groen, HIGH);   
digitalWrite(roodvoet, HIGH);
digitalWrite(groenvoet, LOW);

buttonStatus = digitalRead(button); //controleer de hele tijd of de button wordt ingedrukt                   
if(buttonStatus == LOW)          //(if) als de button wordt ingedrukt dan gebeurt er onderstaande
{

delay(3000);                     //3 seconden wachten
digitalWrite(geel, HIGH);        //eerst geel voor de auto’s
digitalWrite(groen, LOW);        //groen is op uit gebleven
delay(1000);                     //wacht een seconde
digitalWrite(rood, HIGH);        //zet op rood voor auto’s
digitalWrite(geel, LOW);         //geel gaat nu uit
digitalWrite(roodvoet, LOW);     //rood voor wandelaars gaat uit
digitalWrite(groenvoet, HIGH);   //groen voor wandelaars gaat aan
blink(groenvoet, 4);
delay(3000);                     //wacht drie seconden
digitalWrite(geel, HIGH);        //zet geel voor auto aan
delay(1000);                     //wacht een seconde en we beginnen bij begin van de loop

}
}
void blink(int pin, int times)
{
    for(int i = 0; i < times; i++){
        digitalWrite(pin, LOW);
        delay(500);
        digitalWrite(pin, HIGH);
        delay(500);
    }
}

ARDUINO opdrachten 2 schakeling

Advertenties