Hallo ich habe eine Lichtschranke und möchte die High impulse hochzählen lassen und wenn diese abweichen soll ein Motor nachgeregelt werden.
Jedoch bräuchte ich erstmal ein Programm welches mit die Impulse hochzählt...
Anschluss liegt auf A0...
Wäre super wenn jemand sich die Zeit nimmt!
Grüße
Das ist richtig.
Bin mittlerweile ich verzweifelt ...
Sitze mittlerweile schon ewig dran.
Nun dachte ich fang nochmal von vorne an und dazu muss ich ja die Umdrehung in 1 oder 2 sekunden messen.
Dann wollte ich ne schleife laufen lassen die guckt ob der wert auch der Sollwert ist wenn nicht nachregeln (rauf/runter)
Bin echt für jeden Tipp dankbar....
Ich kann bisher den Motoransteuern und erhalte ein High-Signal am 13. Pin (LED)...
Es ist einfacher die Zeit zwischen 2 Impulsen (oder je nach verwendeter Lochscheibe die Länge des Impulses) zu messen zB mit pulseIn(). Dieser wert Wird mit dem Sollwert verglichen (subtrachiert) und dementsprechend der Motor angesteuert.
Grüße Uwe
Das Problem bei diesem Code ist, das Du nie weisst ob das gemessene "HIGH" Signal schon ein neuer Impuls ist, oder noch der alte, den Du bereits gezählt hast. Ich würde immer auf einen Wechsel von LOW nach HIGH testen, um sicher zu sein, das es ein neuer Impuls ist, den ich zähle. Bei jedem erkannten Flankenwechsel von LOW zu HIGH wird dann der aktuelle Wert von millis() gespeichert (long last = millis()). Wenn der nächste Flankenwechsel erkannt wird, kann man den gespeicherten Wert mit dem aktuellen vergleichen. Die Differenz aus beiden Werten ist dann die vergangene Zeit zwischen 2 Impulsen (millis() - last).
Mario.