Code-Beispiel von Eric Bartmann
Quelle: http://www.erik-bartmann.de/down/download-arduino1.html
/*
Author: Erik Bartmann
Website: http://www.erik-bartmann.de
Blog: http://www.tumblr.com/tumblelog/arduino-processing
Twitter: https://twitter.com/#!/ErikBartmann
Flickr: http://www.flickr.com/photos/erikbartmann/6311998488 (Schaltplan)
Scope: Der störrische Taster
Version: 1.0
Date: 03.10.2011
Last modified:
Description: Dieser Sketch zeigt eine Möglichkeit, einen prellenden Taster
zu entprellen, so dass pro Tastendruck nur ein einziger Impuls
erkannt wird.
Referenz: http://arduino.cc/en/Reference/PinMode
http://arduino.cc/en/Reference/Constants
http://arduino.cc/en/Reference/If
http://arduino.cc/en/Reference/Else
http://arduino.cc/en/Reference/DigitalWrite
http://arduino.cc/en/Reference/DigitalRead
http://arduino.cc/en/Reference/Modulo
*/
int tasterPin = 2; // Taster-Pin 2
int tasterWert = 0; // Variable zur Aufname des Tasterstatus
int vorherTasterWert = 0; // Variable zur Aufname des alten Tasterstatus
int ledPin = 8; // LED-Pin 8
int zaehler = 0; // Zählervariable
void setup(){
pinMode(tasterPin, INPUT); // Taster-Pin als Eingang
pinMode(ledPin, OUTPUT); // LED-Pin als Ausgang
}
void loop(){
tasterWert = digitalRead(tasterPin); // Abfrage des Taster
// Ist vorheriger Tasterwert ungleich aktuellem Tasterwert?
if(vorherTasterWert != tasterWert){
if(tasterWert == HIGH){
zaehler++; // Zähler inkrementieren (+1)
}
}
vorherTasterWert = tasterWert; // Speichern des aktuellen Tasterwertes
if(zaehler%2 == 0) // Ist Zähler eine gerade Zahl?
digitalWrite(ledPin, HIGH);
else
digitalWrite(ledPin, LOW);
}