Forum: Mikrocontroller und Digitale Elektronik Impulsbreiten modulation - Signal auslesen


von Dilligent (Gast)


Lesenswert?

Hallo mal wieder,
ich hab schon ne weile gesucht und auch selber probiert das Problem zu 
lösen, habs leider nicht so ganz hinbekommen. Leider mangelt es mir auch 
an einem Oszilloskop und die teile sind ja nun auch nicht gerade für nen 
paar cent zu kaufen ;(

Das Signal ist wie folgt definiert:
http://img341.imageshack.us/img341/440/oszims2.jpg

In meinem Programmcode habe ich einen Timer der mit einer Auflösung von 
0.1msec läuft, dh sollte ich eine gute Zeitreferenz haben um das Signal 
messen zu können.

Kurzum, ja es geht hier um eine Anwendung im Fahrzeug als Bordcomputer. 
Gechwindigkeit und andere Signale habe ich bereits erfolgreich 
angezapft.

Nun müsste ich noch dafür sorgen das mein µC auch erkennt wieviel Sprit 
nun eingespritzt wird, doch ganz schlau werde ich aus dem Datenblatt 
nicht. Wie gesagt, habe keine Osziloskop :(

Meine Idee war es zu zählen wie lange das Ventil offen war, das ganze 
dann pro sekunde mit der Geschwindigkeit in bezug zu setzen und daraus 
einen aktuellen Verbrauch pro 100km darstellen zu können. Hat nicht 
funktioniert :( Hat jemand Vorschlöde, bzw ist jmd in der Lage die Daten 
richtig zu interpretieren?

Würde mich echt freuen, schöne Grüße, Dennis

von GagoSoft (Gast)


Angehängte Dateien:

Lesenswert?

Welchen Controller verwendest Du?

Wenn es sich um einen AVR handelt, würde ich vorschlagen das Signal auf 
einen externen Interrupt zu legen und einen Counter nebenbei laufen zu 
lassen.
Bei jedem Interrupt liest Du den Counter und resettest ihn.

zum Thema Oszilloskop: eines zu haben ist eine feine Sache, doch es geht 
auch anders:
  Relativ langsame Signale kannts Du auch mit einer Linux-Kiste und 
einer (alten/billigen) Soundkarte messen. Die Ergebnisse sind ganz 
passabel.
Als Software schlage ich qoscc vor, das hat bei mir am besten 
funktioniert
http://flup.homelinux.org/qoscc.html
Alternativ:
http://xoscope.sourceforge.net/

----------------------------------
wer Rechtschreibfehler findet, darf sie behalten, Inhaltliche Fehler
nehme ich gerne zurück

von He Ro (Gast)


Lesenswert?

Moin moin,

> Meine Idee war es zu zählen wie lange das Ventil offen war, das ganze
> dann pro sekunde mit der Geschwindigkeit in bezug zu setzen und daraus
> einen aktuellen Verbrauch pro 100km darstellen zu können. Hat nicht
> funktioniert :( Hat jemand Vorschlöde, bzw ist jmd in der Lage die Daten
> richtig zu interpretieren?

Bei mir funktioniert das so :) Ich gehe über 100kOhm auf einen 74HC14 
(Schmitt-Trigger-Inverter als Schutz für den AVR) und davon dann direkt 
auf den AVR (Mega16 bzw. Mega32)

Mit einem Unterschied: Ich nutze dafür den Input Capture Interrupt, der 
ist dafür IMHO geradezu prädestiniert. Auflösung bei mir etwa 21uS - 
viel mehr als nötig. Achso, das ganze läuft auch nicht pro Sekunde, 
sondern pro Überlauf des 16Bit-Timers.

Wichtig dabei: So ganz exakt wird das nicht, vermutlich weil:
1) Die Durchflussmenge nicht ganz linear mit der Ansteuerdauer ansteigt 
und/oder
2) die Druckdifferenz zwischen Ansaugtrakt und Kraftstoffverteiler nicht 
immer konstant ist

Ich komme auf etwa +-5% Schwankung ggü. der Ermittlung des 
Spritverbrauchs an der Tanksäule (die natürlich auch nicht exakt ist)

MfG, Heiko

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.