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.
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ß
> 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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.