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!
...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.
hab jetzt noch was rausgefunden, der Pegel ist 12V, rechteck, f=7Hz-1200Hz je nach Geschwindigkeit.
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
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.
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
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.