Drehzahlmesser mit CNY70 und atmega32
Guten Abend,
im Rahmen eines Schulprojekts bauen wir ein autonom-fahrendes spielzeug Auto, das einen Parkour auf Zeit durchfahren soll, im Rahmen eines Wettrennens.
Ein Feature, das ich gern hätte, wäre eine Drehzahlmessung der beiden Reifen hinteren Reifen. Diese drehen im allgemeinen nicht durch.
Die letzten 2 Stunden habe ich via Google und hier im Forum versucht, mir selbst die Grundlagen dafür klar zu machen, wie ich das Drehzahlmessen realisiere, aber all die Datasheets und Tutorials (die nur zum teil meiner Situation entsprechen) sind letztenendlich spanisch für mich.
Was ich bisher geplant hab:
Bild hier
Das kleine blaue Kästchen stellt dabei den o.g. Sensor dar.
Auf der Innenseite der weißen "Felgen" (im bild rot dargestellt) sollen ein paar schwarze markierungsstreifen sein, die vom sensor registriert werden können.
Das ganze soll dann für beide Hinterreifen funktionieren.
Ich weiß, dass es irgendwie 2 Möglichkeiten zum auslesen gibt mit dem Atmega32(zumindest 2 hat mir mein Lehrer gesagt).
Einmal via Interrupt(versteh ich) und die 2. Möglichkeit war (irgendwie), dass der die Ausgabe(HIGH und LOW?) des Sensors von der Hardware mit einem Timer (oder so) hochgezählt wird und man das dann irgendwie anders macht.
Wie man merkt hab ich trotz meiner recherchen kaum etwas verstanden :)
Wo und Wie muss ich die beiden Sensoren an den Controller anschließen ?
Vielen Dank im Voraus
Re: Drehzahlmesser mit CNY70 und atmega32
Hi, AlexJ,
Zitat:
Zitat von AlexJ
... Einmal via Interrupt(versteh ich) und die 2. Möglichkeit war (irgendwie), dass der die Ausgabe(HIGH und LOW?) des Sensors von der Hardware mit einem Timer (oder so) hochgezählt wird und man das dann irgendwie anders macht.
Ich hab aktuell eine Lösung, mit der ich direkt am Motor, vor dem Getriebe, mit einer Lichtschranke messe. Als Lichtschranke verwende ich ein Miniaturding, die Sharp GP1S096HCZ, weil ich nur recht beschränkt Platz habe. Die Hardware habe ich hier vorgestellt. Damit bekomme ich gute, deutliche Signale bei jeder Unterbrechung der Lichtschranke. Die Signale der beiden Motoren führe ich bei meinem mega168 an den INT0 und INT1 (bei Deinem mega32 wären das Pin16 und Pin17, bzw. PD2 und PD3) und zähle in der Interruptroutine meinen internen Zeittakt von 50 µs. Das gibt mir die Dauer zwischen zwei steigenden Flanken. Den Code könnt ich Dir ja posten. Der läuft auf dem mega168. Den müsstest Du selbst für den m32 umstricken (Registerinitialisierung des Timers etc).
Dies ist allerdings keine Version mit einer Reflexlichtschranke, die Du wohl geplant hast. Diese Version mit Reflexlichtschranke hatte ich nie getestet - hab also auch keine Ahnung davon.