Forum: Mikrocontroller und Digitale Elektronik Drehzahlmessung Rad


von Felix Bäder (Gast)


Lesenswert?

Ich hab grad nen kleines Problem.

Ich möchte mit meinem RC-Car einen Einparkassistenten und dann mal noch 
eine ASR realisieren. Jetzt steh ich aber vor der Frage, wie ich die 
drehzahl der einzelnen Räder am besten messe. Den für die ASR brauch ich 
ja den Unterschied der Drehzahl der vorderen zu den hinteren Rädern.

Ich habe jetzt zur Abnahme einen Hallsensor an das Chassi und einen 
Magnet an das Rad montiert. Das funktioniert auch soweit alles. Nur das 
Problem ist, dass ich ja dann zum Zählen der Impulse in einem Zeitraum 
bzw. messung der Zeit zwischen zwei Impulsen, einen Interrupt für jedes 
Rad haben muss. Mein Atmega32 hat ja aber nur 2.

Eine Abfrage in einer Schleife ist ja auch blöd, weil so die Fehlerrate 
zu hoch ist. Und natürlich ist das ja auch laufzeit mäsig blöd für den 
restlichen ablauf.

Ich will das ich 4 Impulse, sprich 4 Magnete an einem Rad, pro Umdrehung 
hab. Das RC-Car hat eine Maximalgeschwindigkeit von ca 80 km/h und einen 
Radumfang von etwa 35cm. Sprich ich hab pro Sekunde etwa 64 Umdrehungen. 
Allerdings muss ich ja für die ASR nicht bis 80 km/h messen.


Wie kann ich nun am besten die Impulse zählen bzw. die Zeit messen?

Hoffe ihr ich hab mein Problem verständlich ausgedrückt und ihr könnt 
mir weiterhelfen.

Mit freundlichen Grüßen

Felix.

von INT2 (Gast)


Lesenswert?

Hallo Felix,

der ATMega32 hat 3 ext. Interrupts.

Du kannst dann auch noch die beiden Analogkomparatoren benutzen.

Damit hast Du dann sogar 5 Interruptwuellen, was reichen sollte.


Gruß

von MaWin (Gast)


Lesenswert?

> einen Interrupt für jedes Rad haben muss. Mein Atmega32 hat ja aber nur 2

Nein, man muss keine Eingänge mit Interrupts verwenden zur 
Inkrementaldecoderauswertung, man darf sogar keine flankengetriggerte 
Auswertung einsetzen, "weil so die Fehlerrate zu hoch ist".

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29

Dann ist auch die gleichzeitige Auswertung von 4 Decodern kein Problem 
(ein Byte, ein Port).

> Ich will das ich 4 Impulse,

Erscheint mir für ASR zu wenig. Ein Auto hat hundert, dort werden Zähne 
eines Zahnrads abgetastet.

> Hoffe ihr ich hab mein Problem verständlich ausgedrückt

Du kannst noch nicht programmieren und musst noch einiges lernen.

von CZM (Gast)


Lesenswert?

der klassische fall wäre, die impulse der sensoren, genauer die 
Zeitwerte der zwischenräume, als pwm aufzufassen und per cir filter zu 
dezimieren. dabei muss die gf des cir filters der Drehzahl = 
Kreisfrequenz entsprechen

von M. N. (Gast)


Lesenswert?

Der ATmega324 wäre besser geeignet. Dann ginge auch folgende Schaltung 
mit 4 Kanälen für 4 Räder über PCINT:
Beitrag "4-Kanal Drehzahlmessung mit ATmega88"

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.