In Bearbeitung
Mit folgendem Testaufbau kann man sehr einfach mit dem Arduino Ereignisse zählen. Der Testaufbau zeigt einen Gleichstrommotor der mit einem kleinen Zeiger verbunden ist, auf dem wiederum ein Magnet aufgeklebt wurde. Dieser Motor wird über einen selbstgebauten PWM-Motor-Regler auf NE555 Basis geregelt.
Über diesem „Event-Generator“ befindet sich ein Reedkontakt, der über einen Pulldown Widerstand, beim Schliessen eindeutige Impulse generiert, die über die PulsIn-Funktion des Arduino erfasst und ausgewertet werden können.
Mit folgendem Programm können die Events erfasst und gezählt werden:
int pin = 8; unsigned long T; //Periodendauer in us double f; //Frequenz in MHz void setup() {Serial.begin(9600); Serial.println("IMPULSZAEHLER/FREQUENZZAEHLER"); pinMode(pin, INPUT); } void loop() { T = pulseIn(pin, HIGH) + pulseIn(pin, LOW); if (T==0) Serial.println("Timeout."); else {f=1/(double)T; // f=1/T Serial.print(f*1e6); Serial.println(" HZ"); //Ausgabe in Hertz } }