Goed/fout knop - Introductie
Dit is soort controle programma. De rode LED zal continue branden. Als je op de knop drukt zal de groene LED aangaan. Als je de knop weer los laat, dan zal de rode LED weer aangaan.
In treinen zit de
dodemansknop
. Dit is een knop die vroeger continue door de machinist (de bestuurder van een trein) moest worden ingedrukt. Het idee hierachter was dat als de machinist de knop zou loslaten hij waarschijnlijk ziek/dood/zwak/misselijk zou zijn, en dat dan de trein meteen een stop zou moeten maken.De dodemansknop zit nog steeds in treinen. Alleen nu klinkt er af en toe een geluidje dan moet de machinist de knop pas even indrukken en daarna weer loslaten. Hiermee voorkomen ze dat machinisten een baksteen op de knop zouden kunnen leggen.
Breadboard

Source code
/*
Good/wrong
(C) copyright www.punthooft.nl 2019-2025
*/
// Constants
const int ledRed = 2;
const int ledGreen= 3;
const int button = 4;
// Variables
int buttonState = 0;
// Setup function runs once when powerup the board and on reset
void setup() {pinMode(ledGreen,OUTPUT);
pinMode(ledRed,OUTPUT);
pinMode(button,INPUT);
// Let each LED flash for a moment, to test the connection
for(int pinNumber = 2; pinNumber <= 3; pinNumber++) {digitalWrite(pinNumber,HIGH);
delay(100);
digitalWrite(pinNumber,LOW);
}
}
// The loop function runs over and over again forever
void loop() {buttonState = digitalRead(button);
if (buttonState == HIGH) {digitalWrite(ledGreen, HIGH);
digitalWrite(ledRed, LOW);
} else {digitalWrite(ledGreen, LOW);
digitalWrite(ledRed, HIGH);
}
}
Opmerkingen
De LEDs zitten aangesloten op de poorten 2 en 3, deze zijn gedefinieerd als OUTPUT.
Om de LED's te beschermen tegen teveel spanning zijn voorschakelweerstanden nodig. Een weerstand per LED. Ik gebruik er hier van 220 Ohm. De te gebruiken weerstandswaarde is echter afhankelijk van het type/soort/kleur van de LED. Uitrekenen is eenvoudig, zie de theorie in componenten of gebruik meteen de rekenhulp
Ook de drukknop sluiten we aan met een weerstand. Gebruik hier een weerstand van 220 Ohm.
De button is aangesloten op poort 4 en gedefinieerd als INPUT. Inkomende waarden worden hier gelezen, door het digitalRead commando. Iedere cycle van de loop zal de waarden worden gelezen van de button. Is dat HIGH (knop ingedrukt) dan zal de groene LED branden, anders de rode.
