03: if then

Dit is een les die gaat over als je dit doet dan gaat dat gebeuren (if then).
Als je op de knop drukt dan gaan de rode lampjes om en om knipperen en gaat het groene lampje uit.
Hier komt het vooral neer om logisch denken.
Er zit een storende fout in de weerstandkleuren van de fritzing tekening, bij de ledjes neem je 220 Ω en bij het drukknopje 10kΩ

les3_schema__bbNODIG

  • Arduino bord
  • Breadboard
  • 1x groene LED
  • 2x rode LEDs
  • 1x drukknop
  • 1x 10 kilohm weerstand (bruin-zwart-zwart-rood)
  • 3x 220 ohm weerstanden (rood-rood-zwart-zwart)

Controleer hier je weerstanden

les3_schema__schema

Hierboven zie je de technische tekening van de schakeling. Herken je wat je hebt gemaakt?

EXTRA

  1. Verander het programma zodanig dat de rode LEDS MINIMAAL 5* knipperen als het knopje word ingedrukt
  2. Verander het programma zodanig dat de rode LEDS om de 9/10 SECONDE knipperen als het knopje word ingedrukt

FILMPJE

SCHETS
Uitleg code commando’s

  • switchstate = de stand van de drukknop dit is een variabele. int switchstate=0 wil zeggen dat als je niet drukt dan is dat cijfer 0
    Druk je wel dan is dat cijfer 1
  • OUTPUT = als dit aan staat (HIGH) dan treed er iets in werking
  • INPUT = hier komt een signaal naar het Arduinobord
  • pinMode= een pinnummer op Arduinobord
  • digitalRead= lees wat er gebeurd op een pin
  • digitalWrite= onderneem een actie op een pin
  • LOW=uit of doe niets of er gebeurd niets
  • HIGH= aan of doe iets  of er gebeurd iets
  • delay(250) = vertraging van 250/1000 seconden dus een kwart seconde
  • void setup = hieronder zet je alles wat aangeeft dat je met een pin doet
  • void loop=hieronder zet je het programma
  • ; = na ieder commando moet een ;
  • // hierachter mag je de  uitleg zetten
  • { en } = hiertussen komt een setup of een loop. Bij de loop kun je meerdere loops achter elkaar zetten die moeten telkens tussen de accolades  {  }

SCHETS VOOR ARDUINOPROGRAMMEEROMGEVING

/*
Les 3 if then   THEORIE: IF THEN ELSE
   Drukknop los: groen aan,
   Drukknop ingeduwd: rode led’s om en om aan
   !
*/

// Gebruik de variabele switchstate om de stand
// van de drukknop in op te slaan.
int switchstate = 0;

void setup(){
  // definieer de LED PIN’s als OUTPUT
  pinMode(3,OUTPUT); //groen
  pinMode(4,OUTPUT); //rood 1
  pinMode(5,OUTPUT); //rood 2

  // definieer de drukknop PIN als INPUT 
  pinMode(2,INPUT);
}

void loop(){

  // vraag de waarde van de drukknop
  // digitalRead() checkt of er spanning
  // op de pin staat 
  switchstate = digitalRead(2);

  // als de drukknop niet wordt ingedrukt
  // zet LED groen AAN en LED’s rood UIT
  if (switchstate == LOW) {
    digitalWrite(3, HIGH); // zet de groene LED op pin 3 aan
    digitalWrite(4, LOW);  // zet de rode LED op pin 4 uit
    digitalWrite(5, LOW);  // zet de rode LED op pin 5 uit
  }
  // deze ‘else” is onderdeel van het if() statement.
  // als de drukknop is niet LOW (dus de drukknop is ingedrukt)
  // zet de groene LED uit en laat de rode LEDs om en om knipperen
  else {
    digitalWrite(3, LOW);  // zet de groene LED op pin 3 uit
    digitalWrite(4, LOW);  // zet de rode LED op pin 4 uit
    digitalWrite(5, HIGH); // zet de rode LED op pin 5 aan
    // wacht een kwart seconde
    delay(250);
    digitalWrite(4, HIGH); // zet de rode LED op pin 4 aan
    digitalWrite(5, LOW);  // zet de rode LED op pin 5 uit
    // wacht weer een kwart seconde
    delay(250);
  }
}

Advertenties