|
Eine einzige Taste ...
Folgendes Problem war zu lösen:
Nur eine Taste soll eine LED einschalten und danach
auch wieder ausschalten. Also:
- Taste drücken: LED an
- Taste loslassen: LED bleibt an
- Taste drücken: LED geht aus
- Taste loslassen: LED bleibt aus
- ...von vorn
Schaltung:
- Taste an Pin 3
- LED an Pin 7 (mit Widerstand = 220 Ohm =
rot rot braun)
(anklicken zum Vergrößern)
Quelltext:
int merker = 0; // 0 meint: LED ist aus, 1 meint: LED ist an
void setup(){
pinMode(3, INPUT); // Taste an Pin3
digitalWrite(3, HIGH); // ein HIGH am Eingang Pin3 vorgeben
pinMode(7, OUTPUT); // LED an Pin7
}
void loop(){
// Taste drücken bei dunkler LED
if ( digitalRead(3)==LOW && merker==0)
{
digitalWrite(7, HIGH);
merker=1;
while (digitalRead(3)==LOW) delay(10); //die Abarbeitung "einfangen"
}
// Taste drücken bei heller LED
if ( digitalRead(3)==LOW && merker==1)
{
digitalWrite(7, LOW);
merker=0;
while (digitalRead(3)==LOW) delay(10); //die Abarbeitung "einfangen"
}
}
Ein ähnliches Experiment -aber mit Interrupt- findest Du hier.
|