Hall allemaal,

Ray, Amsterdam, meer met computers en auto's
bezig dan verstand van diepere electronica.

Misschien dat hier iemand een idee heeft danwel
kan helpen met het volgende probleem/vraag:

Voor het plaatsen van een brandstof doorstroom meter
moet ik van 2500 pulsen per liter naar een boord-
computer die 12680 pulsen per liter wil zien van de
originele meter. Weet er iemand een manier om dit te
verwezenlijken of is er iemand in staat hiervoor op
een simpele manier een schakeling te ontwerpen?

Op zich zou maal 5 dus al aardig in de buurt komen
maar als nauwkeuriger mogelijk is zou dat helemaal
perfect zijn. 50ml per liter is bijna te verwaarlozen
maar op een volle tank toch een verschil van 4,5 liter.

Het is een hobbybob auto projectje en mag natuurlijk
geen kapitalen gaan kosten dus hoop ik op jullie kennis
van zaken :)

PIC/AVR, tot op de laatste decimaal gelijk.

Inderdaad. Een Pic/AVR is een goede in deze.

Opzich wil ik je wel op gang helpen, maar dan moet je me wel wat meer info geven.

De factor zou 5.072 worden. Waarschijnlijk kan de boordcomputer alleen gehele getallen aan (lijkt me logisch).
Dit houdt in dat je altijd met een afrondings "fout" zit. M.a.w. de convertie is niet linear.
Alleen als je een volle tank heb, is het verschil gelijk getrokken.
Het programma wat in een PIC gestopt zal moeten worden lijkt me niet heel erg ingewikkeld.

Hoor het wel als je meer hulp nodig hebt.

groet

Beetje rommelen in je AVR zodat je zo her en der goed uit komt. Na 125 pulsen zorgen dat je er 634 uitgestuurd hebt. Elke 18de 2x doen ofzo en aan het einde even recht trekken...

Op zich niet moeilijk om te schrijven, als je interfacing ook duidelijk is. Kost natuurlijk wel weer tijd. En daar zit het grootste probleem...

Dit soort vragen heerst een beetje. Van de week ook al een motor waarvan de boordcomputer gefopt moest worden.

Ik zou bijna gaan denken dat hier handel in zit voor de aktievere hobbiebob. Leerzamer dan vakantiewerk.

Een ontbrekende faktor: Is de meter een opteller, zoals een Km teller of is het een teller puls/tijd, zoals Km/uur

Dat staat er toch: aantal pulsen/liter

gewoon, net als een watermeter.

Zijn er dan geen mensen meer die een schema'tje met een F/V-converter en een V/F-converter kunnen bedenken >:) ?

Zo'n conversie programma is bere simpel om EXACT te maken.

Iedere binnenkomende puls tel je 12680 op bij een variabele. Zolang die meer dan 2500 is, stuur je een pulsje naar de uitgang, en trek je 2500 af van de variabele. Dit werkt voor iedere verhouding.

In dit geval zijn beide getallen deelbaar door 20, dus worden de getallen 634 en 125, om eventueel bits te besparen. Wat voor pulsjes gaat het om? 0-12V?

Ik heb nog nooit wat voor een auto gemaakt. Dus hoe erg de spanningspieken zijn van de "hele grote verbruiker" (startmotor) of van bijvoorbeeld een "vuile verbruiker" (electrische ventilator) zijn, weet ik niet.

[edit] Ik heb even een schema en een printje gemaakt. Omdat ik pas sinds gisteren "kan etsen", wilde ik wel eens een proefje doen. Ray, als je wilt kan ik wel het printje voor je maken.

Voor degenen die dat willen/kunnen: Even controleren:
http://prive.bitwizard.nl/circuitsonline/brandstofmeter.sch
http://prive.bitwizard.nl/circuitsonline/brandstofmeter.brd

Je moet dan wel even controleren wat die signalen zijn/moeten zijn. Ik ga er nu van uit dat het open collector signalen zijn. (met aan de ingang tolerantie voor driven 12V, maar dan kan ik beter R1 1k maken, en R2 niet bestukken)

@Frederick, Mijnheer Bresnham heeft het volgens mij uitgevonden om rechte lijnen op een beeldscherm te trekken. ehh. ja, dat is een heel andere toepassing.

Goh wat simpel. En wat slim. Chapeau!

Op 25 juli 2007 08:32:17 schreef GJ_:
Dat staat er toch: aantal pulsen/liter

gewoon, net als een watermeter.

En toch kan je op 2 manier meten:

[ pulsen / liter + zelfde pulsen / tijd ] geeft momenteel verbruik aan, > bij voorkeur zo correct mogelijk.

Of Totaal verbruik ( vb sinds de bak gevuld is, en hier kan wat meer fout schommeling toegelaten worden, als het totaal maar juist is.

Op 25 juli 2007 08:55:47 schreef rew:
Zo'n conversie programma is bere simpel om EXACT te maken.

Iedere binnenkomende puls tel je 12680 op bij een variabele. Zolang die meer dan 2500 is, stuur je een pulsje naar de uitgang, en trek je 2500 af van de variabele. Dit werkt voor iedere verhouding.

Maar als je een uc hebt die op 10 MHz werkt, dan heb je dus de situatie dat je om de milliseconde een pulsje binnenkrijgt, wat je uitsplistst naar 'om de milliseconde 5 (en soms zes) pulsjes, een paar microseconden van elkaar af'. Je kunt natuurlijk een wachtlus inbakken, maar dat blijft lapwerk.

Zou dat de bedoeling zijn? :P

Eén puls per milliseconde (binnenkomend) komt overeen met een verbruik van 1440 liter per uur. Een 60 liter tank zou dan in 2,5 minuten leeg zijn. Dat zie je niet zo vaak in de hobbysfeer waarover we het hier hebben :).

Als je tegen 200 per uur rijdt, met een verbruik van 1 op 5, dan is dat 40 liter per uur, ofwel bijna 28 pulsjes per seconde binnenkomend. Er moeten er dan dus 28 maal per seconde 5, soms 6 pulsjes uit.

Ze mogen dan ruim 5000 microseconden uit elkaar staan, of 5 milliseconden.
Als het verbruik minder is, heb je nog meer ruimte.

[Bericht gewijzigd door Frederick E. Terman op (25%)]

De vraag is natuurlijk of de boordcomputer ook iets intelligents doet met de frequentie van de binnenkomende pulsen. Ik ben niet thuis in de autotechniek. Maar ik denk aan de hoeveelheid brandstof per seconde voor het motormanagment.
Als dat zo is, moet er wel voor gezorgt worden dat de frequentie van de uitgaande puls trein, evenredig gelijk is aan de inkomende puls. Dan is het toch niet meer zo simpel

Ja, dan wordt het of een volledig analoge oplossing, met voltage/frequency (en andersom) converters, of iets waarbij je een uc gebruikt als frequentieteller, waarbij je de gemeten frequentie herschaalt en gebruikt om een timertje met een 'andere' frequentie te zetten. Wel een interessant probleem. :P

Een soort digitale faselus...
Misschien kun je het tempo waarin de 5 (6) pulsen gegeven worden, af laten hangen van de tijd tussen de zojuist binnengekomen puls en die daarvoor. Met 1/6 van die tijd spatieren dus. Dan lijkt het al heel goed.

Dan hou je alleen de onzekerheid tot de volgende puls, maar dat is zonder omzetting eigenlijk ook zo. Het systeem moet tenslotte ook wat haperende pulsen kunnen verwerken lijkt me.

..en ik mag aannemen dat je ook een variabele frequentie kunt hebben, van 0 tot 28 pulsen per seconde.

boordcomputers zijn vaak net ff intelligenter: je moet dus de frequentie van die pulsen bijhouden.. das nu net het lastige aan deze opdracht.

Boordcomputers kun je nl in aantal modi zetten:
momentaal verbruik (op dat moment)
actieradius (met oog op tank hoeveelheid hoe ver je nog komt met je rijstijl)
dus pulsjes verzamelen en ineens uitsutren werkt neit!

http://www.analog.com/UploadedFiles/Data_Sheets/ADVFC32.pdf

Pagina 4 is wel interessant. :P 't ding is niet goedkoop; 6.50 bij futurlec, en je hebt er twee nodig.

Als de boordcomputer de frequentie meet om het "momentaan verbruik" te schatten wordt het "ieder pulsje zoveel naar buiten" idee minder nauwkeurig. Op 4L per 100 km bij 50km/u kom je op een pulsje per 0.7 seconde of zo. Dat is vergelijkbaar met de verversingsfrequentie.

Ik had al willen zeggen dat je kunt verwachten dat het momentane verbruik niet meer zal werken, maar mogelijk is met wat slimmigheden in de AVR nog wel wat te versieren:

Wat blijft is dat je +634 moet doen als je een pulsje binnenkrijgt, en -125 als je een pulsje stuurt. De actuele waarde (+125*aantal pulsjes sinds vorig pulsje) van die variable moet dan een maat zijn voor de frequentie waarop je de pulsjes stuurt. Dit is een software PLL. Dat is eigenlijk wat we willen hebben.

Je moet, denk ik, die "onregelmatigheid" van de pulsen ook niet te belangrijk maken.
Als je even het gas intrapt om op te trekken, zal de auto bijvoorbeeld tijdelijk 1 op 5 verbruiken. Het systeem met 12680 poulsen per liter moet dan iedere 39 centimeter een puls ontvangen.
Maar als ik 50 km/h rijd, doe ik in één seconde al bijna 14 meter.
Moet de boordcomputer werkelijk iedere 40cm belissen?

Als ik zo'n boordcomputer zou moeten maken, dan zou ik iets doen van: als ik in een periode van 0.5 of 1 s > 10 pulsjes krijg, dan tel ik het aantal pulsjes. Als het aantal minder wordt, dan meet ik de tijd tussen de pulsjes.

je meot het neit AL te idioot doen idd F.E.T.

maar je kan bijv niet: er komt 1 pulsje binnen, laat ik nu dus 5 pulsjes uitsturen

bij een snelle pulstrein gaat het dan wel, maar bij een langzame pulstrein krijg je elke keer bursts te zien.

DWZ: je meter slaat van 6 ineens naar 40l / 100 km en weer terug

het gaat dus nergens meer over dan....

vobeeldje in transities:



origineel:
0-0-0-0-0-0-0-0-0-0-0-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-1

gemanipuleerd:
0-0-0-0-0-0-0-0-0-0-0-0-0-0-1-1-1-1-1-0-0-0-0-0-0-0-0-0-0-1-1-1-1-1-1-0-0-0-0-0-0-0-0-0-1

Dit gaat dus niet werken en levert een resultaat op zoals ik hierboven noemde: bij geen pulsjes (de 0-en) zal hij dus bijv 3 l /100 km aangeven en bij de pulstreinv an 5 eentjes ineens 40 l/100 km

Niet handig

je zult het zo moeten doen:



origineel:
0-0-0-0-0-0-0-0-0-0-0-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-1

gemanipuleerd:
0-1-0-0-1-0-0-1-0-0-1-0-0-1-0-0-1-0-0-1-0-0-1-0-0-1-0-0-1-0-0-1-0-0-1-0-0-1-0-0-1-0-0-1-0

Voor de oplettende teller:

Je zult in origineel 3 pulsen tellen in gemaniupuleerd 15 pulsen.

Je zult het programma dus zo intelligent moeten maken dat hij kan schatten wanneer de volgende puls komt

is een VERREKTES lastig klusje nog denk ik zomaar.

Gekke vraag voor de topic starter:

Waarom pak je niet de boordcomputer die bij deze auto hoort???

Wat voor auto is het eigenlijk? Misschien is er wel iets beters te verzinnen.

hoi allen,

misschien ben ik een beetje dom, maar zo moeilijk moet dat toch niet zijn: we moeten vermenigvuldigen met plm. 5 inzake frequentie (met een een fout van 1.4% indien we precies 5 doen).

Ik stel dan ook het volgende voor:
- PIC/AVR gebruiken (8 pinner)
- Maak een 'running loop' programma (zoals een PLC zeg maar, dus geen 'wacht' punten)
- Meet van de sensor de tijd (=aantal doorlopen lussen tussen twee pulsen (kan mooi interruptgestuurd)
- Deel dit getal door 5
- Gebruik dit om de output te sturen in het juiste ritme (dus geen bursts)
- Do until false

Voorbeeld:

Lus gaat 1000x per seconde
Input blijkt 200 lussen te geven tussen twee pulsen
Output moet dus omklappen per 200/5=40 loops
voila!

of snap ik het nou niet?

fripster

je redenering is leuk, maar die pulsjes komen niet altijd om dezelfde tijd, dus jouw programma gaat daar volledig mank als ik goed begrijp.