#include int reedPin = 8; // PIN8 als Eingang int resetPin = 9; // Taster zum Zurücksetzen an PIN9 int ledPin = 13; // Status-LED an PIN13 int count = 0; // Anzahl der Umdrehungen int actualState = 0; // Aktueller Status int lastState = 0; // Letzter Status global gespeichert LiquidCrystal lcd(2, 3, 4, 5, 6, 7); // LCD-Display auf LCD-Shield initialisieren void setup() { pinMode(reedPin, INPUT); // An PIN8 Reed-Schalter initialisieren pinMode(ledPin, OUTPUT); // Status LED an PIN13 pinMode(resetPin, INPUT); // Zähler durch Taster an PIN9 auf Null setzen lcd.begin(16,2); // LiquidCrystal Init: Display hat 2 Zeilen à 16 Zeichen. } void loop() // Hauptschleife: Anzahl der Umdrehungen, Aktueller Status und letzter Status auf LCD ausgeben { readReed(); // Auslesen des Reedschalters in externer Funktion if (digitalRead(resetPin) == 1) // Checken ob Reset gedrückt wurde { count = 0; lcd.clear(); } digitalWrite(ledPin, actualState); // Anzahl der Umdrehungen und gelaufene Meter auf dem Display ausgeben lcd.home(); lcd.print(count); lcd.print(" Umdrehungen"); lcd.setCursor(0,1); lcd.print(count*0.66); lcd.print(" Meter"); } void readReed() // Status des Reed-Schalters auslesen { actualState = digitalRead(reedPin); if (actualState == 1 && lastState == 0) { count++; lastState=actualState; } if (actualState == 0) { lastState=0; } }