Servus,
da ich mir einen EFR Lader holen werd will ich natürlich auch den Speed-Sensor nutzen.
Das Teil liefert ein PWM Signal mit 50% duty cycle und variabler Frequenz (5V Pegel).
Z.B. sind 2,5KHz 100.000 RPM beim EFR 6758.
Will das ganze an einem InputCapture Port anschliessen und die Zeit zwischen 2 rising edges messen (per Interrupt). Damit kann ich dann die Drehzahl errechnen.
BorgWarner EFR SpeedSensor
- designer2k2
- Administrator
- Posts: 721
- Joined: Mon 31. May 2010, 20:13
- Location: Innsbruck
- Contact:
Re: BorgWarner EFR SpeedSensor
Schwierig, weil das InputCapture den ganzen Code anhält, und die minimal zu messende Zeit nicht sehr klein ist
http://arduino.cc/en/Reference/pulseIn
geht ab 10ms. für 50% PWM heißt das 20ms Periodendauer = 50Hz höchste Frequenz zur Messung möglich.
Deswegen lesen wir die Geschwindigkeit und RPM über Frequenz -> Spannungswandler ein, das ist Timingneutral und sehr genau.
Du könntest zb an der V2 den RPM oder Speed Eingang dafür verwenden, es muss nur das R/C Glied angepasst werden das dein Frequenzband sauber abgedeckt wird.
http://arduino.cc/en/Reference/pulseIn
geht ab 10ms. für 50% PWM heißt das 20ms Periodendauer = 50Hz höchste Frequenz zur Messung möglich.
Deswegen lesen wir die Geschwindigkeit und RPM über Frequenz -> Spannungswandler ein, das ist Timingneutral und sehr genau.
Du könntest zb an der V2 den RPM oder Speed Eingang dafür verwenden, es muss nur das R/C Glied angepasst werden das dein Frequenzband sauber abgedeckt wird.
itsmyfault...
Re: BorgWarner EFR SpeedSensor
Die Arduino pulseIn() Funktion kannte ich noch garnet.
Will dafür die Hardware direkt anprogrammieren und nen Interrupt nutzen.
Der IRQ-Handler wird ziemlich kurz (nur Zeit sichern) so dass ich keine Auswirkungen auf das Laufzeitverhalten erwarte.
Habe mir die Implementierung von pulseIn() angeschaut: völlig ineffizient implementiert.
Gut, für 1 mal pro Sekunde den Puls zu messen würds noch ausreichen.
pulseIn() wäre generell auch schnell genug: 10 microseconds nicht milliseconds!
also 50KHz max.
Ok, ich könnte mir auch eine Zusatzplatine basteln mit der LM2907 Schaltung drauf und dann einfach die Spannung einlesen (RPM und Speed brauch ich ja). Hab ich auch schon dran gedacht.
Will dafür die Hardware direkt anprogrammieren und nen Interrupt nutzen.
Der IRQ-Handler wird ziemlich kurz (nur Zeit sichern) so dass ich keine Auswirkungen auf das Laufzeitverhalten erwarte.
Habe mir die Implementierung von pulseIn() angeschaut: völlig ineffizient implementiert.
Gut, für 1 mal pro Sekunde den Puls zu messen würds noch ausreichen.
pulseIn() wäre generell auch schnell genug: 10 microseconds nicht milliseconds!
also 50KHz max.
Ok, ich könnte mir auch eine Zusatzplatine basteln mit der LM2907 Schaltung drauf und dann einfach die Spannung einlesen (RPM und Speed brauch ich ja). Hab ich auch schon dran gedacht.
- designer2k2
- Administrator
- Posts: 721
- Joined: Mon 31. May 2010, 20:13
- Location: Innsbruck
- Contact:
Re: BorgWarner EFR SpeedSensor
ah Micro gelesen und Mili gedacht...
Du willst doch öfters als nur mit 1Hz messen, so eine Turbo-Speed Kurve zusätzlich zu RPM/Ladedruck und AGT wär schon interessant Sieht man schön wie am Limit vom Turbo man fährt
Du willst doch öfters als nur mit 1Hz messen, so eine Turbo-Speed Kurve zusätzlich zu RPM/Ladedruck und AGT wär schon interessant Sieht man schön wie am Limit vom Turbo man fährt
itsmyfault...
Re: AW: BorgWarner EFR SpeedSensor
Ja wills schon so oft einlesen wie die anderen Werte auch. Ich schreib mal in einer ruhigen Minute den Code und probiers mal aus. Wäre halt eleganter als eine zusätzliche Platine.
- designer2k2
- Administrator
- Posts: 721
- Joined: Mon 31. May 2010, 20:13
- Location: Innsbruck
- Contact:
Re: BorgWarner EFR SpeedSensor
der Input Pin wäre auch für andere Sachen interessant, es könnte zb die Einspritzdauer gemessen werden
itsmyfault...
Re: BorgWarner EFR SpeedSensor
Code ist fertig.
Probiere jetzt mit einem Arduino das Signal des Speedsensors zu simulieren um am Schreibtisch testen zu können.
Probiere jetzt mit einem Arduino das Signal des Speedsensors zu simulieren um am Schreibtisch testen zu können.
Re: BorgWarner EFR SpeedSensor
Speedsensor fürn EFR ist bestellt.
Re: AW: BorgWarner EFR SpeedSensor
Lesen per Input Capture funktioniert.
4kHz Signal (ungefähr 160.000 Rpm -> schon über der Redline drüber) lese ich ohne messbare Auswirkung auf die Geschwindigkeit aus. Datenausgabe läuft auch weiterhin mit 20Hz
4kHz Signal (ungefähr 160.000 Rpm -> schon über der Redline drüber) lese ich ohne messbare Auswirkung auf die Geschwindigkeit aus. Datenausgabe läuft auch weiterhin mit 20Hz