mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Geschwindigkeit KFZ bestimmen


Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
in meinem PKW gibt es ein zerhacktes Rechtecksignal. Dieses Soll bei 
einem (bei mir nicht vorhandenen) Bordcomputer für 
Geschwindigkeitsberechnungen genutzt werden. Ich möchte dieses Signal 
nun mit einem ATmega auslesen. Erstmal nur theoretisch, da ich noch 
nichtmal weiß um welche Pegel es sich handelt aber ich weiß, dass pro 
Radumdrehung 16 Rechteckimpulse ankommen. Sollte ich jetzt nun am INT0 
bei jedem auslösen einen zähler hochsetzen und wenn ich bei 16 bin die 
Zeit zwischen Impuls1 und Impuls16 nehmen? Damit könnte man ja die 
Geschwindigkeit berechnen, reine Physik. Aber wie würde man diese 16 
Impulse zählen, besser noch, die Zeit dazwischen am besten messen? 
Vielen Dank!

Autor: Klaus R. (klaus2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...ließ dir mal alles zu "timern" durch im tutorial. 16 impulse würde 
ich nicht warten, evtl 5 oder sowas, dann mittelwertbildung und mit dem 
reifenumfang verrechnen.

Klaus.

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab jetzt noch was rausgefunden, der Pegel ist 12V, rechteck, 
f=7Hz-1200Hz je nach Geschwindigkeit.

Autor: Ricardo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

um den Pegel zu wandeln, kannst Du einen Schmitt-Trigger nehmen (5V - 
damit Du die Impulse mit dem uC erfassen kannst). Um die Frequenz zu 
messen, kannst Du ein Capture-Compare-Register verwenden, oder wenn Du 
die Möglichkeit hast, könnstest Du auch das Signal an einen 
extern-Interrupt Pin des uCs anschliessen, dann zählst Du nur die 
fallenden (oder steigenden) Flanken in einer Sekunde .... und zasss so 
hast Du Deine Frequenz.

Gruß

Ricardo

Autor: Moritz E. (devmo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um es genauer zu machen, messe die Periodendauer eines Rechtecks, und 
erhalte so den Kehrwert der Frequenz. Wenn du Ereignisse zählst und 
deren Frequenz angeben willst solltest du ja schon so 100 Ereignisse 
abwarten und dann durch die Zeit teilen, sonst wirds ungenau.

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das sind schonmal gute tipps, danke :)

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verwende den Capture Eingang des timers um die Flanken zu zählen.
Dann verwedne einen 2. Timer um alle zb 20 ms einen Interrupt zu 
generieren.
In diesem Interrupt liest du die Anzahl der eingegangen Flanken ein, und 
kannst damit die Geschwindigkeit berechnen.
Danach noch etwas Filtern, zb gleitender Mitterlwert und du hast eine 
brauchbare Geschwindigkeit.
Über die Zeiteinstellung für den interrupt und die Filtertiefe kannst du 
einstellen wie schnell und stabil die Geschwindigkeit der Realität folgt

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.