/* CVO De Verdieping: Arduino
Oefening 12: Knop en led met geheugen functie.
Je drukt op de knop en de led verandert van toestand.
Met ontdendering
Davy Wolfs
2021
*/
// CONSTANTEN
const int PIN_KNOP = 7; // drukknop op pin 7
const int PIN_LED = 12; // led op pin 12
// VARIABELEN
int knopWaarde = LOW;
int vorigeKnopWaarde = LOW;
// VOORBEREIDING
void setup()
{
Serial.begin(9600);
pinMode(PIN_KNOP, INPUT); // pin 7 input
pinMode(PIN_LED, OUTPUT); // pin 12 ouput
}
// UITVOERING
void loop()
{
// INVOER
knopWaarde = digitalRead(PIN_KNOP);
// VERWERKING
if ((knopWaarde == HIGH) and (vorigeKnopWaarde == LOW)) // Als de knop ingedrukt WORDT ...
{
Serial.print('T');
}
if (Serial.available() > 0)
{
char karakter = Serial.read();
if (karakter == 'T')
{
flipLed(PIN_LED);
}
}
delay(50);
vorigeKnopWaarde = knopWaarde; // update de variabele zodat we bij de volgende loop() de
// vorigeKnopWaarde overeenkomt met die van de huidige loop()
}
//functie
void flipLed(const int PIN)
{
int ledWaarde = digitalRead(PIN);
ledWaarde = not ledWaarde;
digitalWrite(PIN, ledWaarde);
}