Flödesmätare för båt med bensinmotor.
Flödesmätare för båt med bensinmotor.
Jag har en båt med dubbla dieselmotorer, så det är intressant att hålla koll på bränsleförbrukningen. Om man kan hitta en optimal hastighet så kan man spara många liter bränsle. Om man loggar förbrukningen så kan man även dubbelkolla mot tankmätaren hur mycket man förbrukat. Eftersom det på en diesel behövs två givare (en till motorn, och en för returen tillbaka till tanken.) så behövdes det fyra givare, plus instrument. Bara givarna kostar i vanliga fall mer än vad man med rimligt antal semesterveckor kan spara in i bränsle.
Nu har ju Conrad.se ett antal billiga givare som tål bensin och diesel. Jag bygger till ett par kompisar som har bensinmotorer (1st), då blir det hela mycket enklare. Om de funkar kan jag bygga till mig sedan...
Så, jag skaffade den billigaste givaren från conrad.se. Den har open-collector-npn-sinking-utgång, och ger en fyrkantsvåg. Jag kopplade denna till en interruptpinne på en atmega48 så att jag kan räkna antalet pulser. Sedan har jag en timer-loop som ger en interrupt varannan sekund. Då har jag känd tid och ett variabelt antal pulser från flödesmätaren, vilket gör det busenkelt att räkna ut förbrukningen. Sedan har jag även två "totaler" som räknar förbrukade liter sedan reset, och förbrukade liter på denna "resa". Rese-räknaren nollställs när man inte förbrukat något på en viss tid och sedan startar igen, helt automagiskt . Den andra siffran kan resettas manuellt, och är tänkt att användas tex vid varje tankning, så att man kan kolla hur mycket som man borde ha kvar... Kan vara bra att använda innan man ska dra kompisarna på vattenskidor också
Sen behövdes några trick för att kunna Spara till eepromet när spänningen slås av. Det funkar hyffsat, men man kan paja värdena ibland. Ska kolla om brown-out-detection kan hjälpa. Ska även kolla vilka eepromadresser som berörs. Det borde ge en ledtråd...
Eagle schema:
Källkod (öppen och fri, men har inte någon licens direkt...)
http://www.lundells.no-ip.com/annat/flo ... 16.tar.bz2
Nu är det bara att ge sig i kast med diesel-varianten... med krockande interrupter och överskrivna puls-loggar....
EDIT: glömde resetknappen i schemat (mellan PB1 och jord)
Nu har ju Conrad.se ett antal billiga givare som tål bensin och diesel. Jag bygger till ett par kompisar som har bensinmotorer (1st), då blir det hela mycket enklare. Om de funkar kan jag bygga till mig sedan...
Så, jag skaffade den billigaste givaren från conrad.se. Den har open-collector-npn-sinking-utgång, och ger en fyrkantsvåg. Jag kopplade denna till en interruptpinne på en atmega48 så att jag kan räkna antalet pulser. Sedan har jag en timer-loop som ger en interrupt varannan sekund. Då har jag känd tid och ett variabelt antal pulser från flödesmätaren, vilket gör det busenkelt att räkna ut förbrukningen. Sedan har jag även två "totaler" som räknar förbrukade liter sedan reset, och förbrukade liter på denna "resa". Rese-räknaren nollställs när man inte förbrukat något på en viss tid och sedan startar igen, helt automagiskt . Den andra siffran kan resettas manuellt, och är tänkt att användas tex vid varje tankning, så att man kan kolla hur mycket som man borde ha kvar... Kan vara bra att använda innan man ska dra kompisarna på vattenskidor också
Sen behövdes några trick för att kunna Spara till eepromet när spänningen slås av. Det funkar hyffsat, men man kan paja värdena ibland. Ska kolla om brown-out-detection kan hjälpa. Ska även kolla vilka eepromadresser som berörs. Det borde ge en ledtråd...
Eagle schema:
Källkod (öppen och fri, men har inte någon licens direkt...)
http://www.lundells.no-ip.com/annat/flo ... 16.tar.bz2
Nu är det bara att ge sig i kast med diesel-varianten... med krockande interrupter och överskrivna puls-loggar....
EDIT: glömde resetknappen i schemat (mellan PB1 och jord)
Mina kommentarer:
I en annan länk nämns Ramtron FM25C160 som är en FRAM EEPROM, tål 10^12 skrivningar! Ung. samma pris som samma EEPROM från MicroChip t.ex.
Sen tycker jaf att du gör fel i din avkänning.
Skit i D2 (kortslut typ) och feta upp C1 med en elektrolyt också. Via en spänningsdelare (och mycket gärna en transistor) känner du av JP2 pin1, då får du det hela med "rätt" spänningsvärde och stabilare spänning "fram till slutet".
Anledningen till transistorn är att störningar stannar där och kommer inte in i processorn.
Jag tjatar inte om pull up på kollektorn osv för du verkar klara av den delen elegant.
I en annan länk nämns Ramtron FM25C160 som är en FRAM EEPROM, tål 10^12 skrivningar! Ung. samma pris som samma EEPROM från MicroChip t.ex.
Sen tycker jaf att du gör fel i din avkänning.
Skit i D2 (kortslut typ) och feta upp C1 med en elektrolyt också. Via en spänningsdelare (och mycket gärna en transistor) känner du av JP2 pin1, då får du det hela med "rätt" spänningsvärde och stabilare spänning "fram till slutet".
Anledningen till transistorn är att störningar stannar där och kommer inte in i processorn.
Jag tjatar inte om pull up på kollektorn osv för du verkar klara av den delen elegant.
Angående FRAM-minnet så tycker jag att det är lite BAK-vänt (hihihi, hohoho, hahaha). Det vore ju bra om man kunde slippa en exptern IC. Grejjen är att jag har tänkt att mätaren ska vara lätt att bygga för en novis med TCP.
icecap: Du får gärna tjata lite om pullups på kollektorer om du vill... Jag kan inte saker så elegant som det ser ut (har bara pysslat med elektronik på hobbynivå i drygt ett år eller så)
angående eeprom-korruptionen så verkar det som om det endast är de minnespossitioner som jag skriver till som blir korrupta (0xFF verkar det som). Då borde det kunna gå att lösa med BOD får jag för mig...
(TCP= tummen centralt placerad)
icecap: Du får gärna tjata lite om pullups på kollektorer om du vill... Jag kan inte saker så elegant som det ser ut (har bara pysslat med elektronik på hobbynivå i drygt ett år eller så)
angående eeprom-korruptionen så verkar det som om det endast är de minnespossitioner som jag skriver till som blir korrupta (0xFF verkar det som). Då borde det kunna gå att lösa med BOD får jag för mig...
(TCP= tummen centralt placerad)
En lyt på C1 kommer väl att fördröja detekteringen av spänningsfall, så den måste vara bra mycket mindre än C4 för att vara säker?
Jag håller ju på att grejja lite med en sniffer till min Janfire, och där behöver jag också en "power detect". Där hade jag tänkt mig att bara mata ostabbad spänning (JP2.1) till en liten optokopplare som får hålla en pinne låg så länge allt är ok.
Med en lagomt stöddig "C4" kan man hålla systemet i liv så länge att man kan kolla power-pinnen nå'n gång imellanåt om man inte vill "interrupta".
Jag har inte testat i praktiken än, men det känns enkelt och "idiotsäkert" - hoppas jag...
Jag håller ju på att grejja lite med en sniffer till min Janfire, och där behöver jag också en "power detect". Där hade jag tänkt mig att bara mata ostabbad spänning (JP2.1) till en liten optokopplare som får hålla en pinne låg så länge allt är ok.
Med en lagomt stöddig "C4" kan man hålla systemet i liv så länge att man kan kolla power-pinnen nå'n gång imellanåt om man inte vill "interrupta".
Jag har inte testat i praktiken än, men det känns enkelt och "idiotsäkert" - hoppas jag...
Pjoms: javisst kommer en lyt att försena spänningsbortfallsavkänningen...det är därför att den avkänning ska tas från ANDRA sidan av dioden, precis som jag skrev.
simon78: Då jag är nojig med störningar har jag ALDRIG några ingångar direkt in till en CPU, jag har alltid något mellan. I detta fall ville jag föreslå ett motstånd om ca: 33K från JP2 pin 1 till basen på en NPN. Emitter till GND, mellan bas och GND ett motstånd om ca: 3K3 och mellan kollektor och +5V ett motstånd om ca: 4K7.
Sedan kan du ta ut ett signal på kollektorn: '1'= POWER FAIL, '0'=POWER STABEL.
D2 ska såklart kortslutas och en "fet" elektrolyt (Cx) adderas över C1.
Detta ger en del mer tid per µF innan Cx laddas ur ska från 12V -> 7V innan 5V sjunker och därmed hinns en skrivning lätt.
simon78: Då jag är nojig med störningar har jag ALDRIG några ingångar direkt in till en CPU, jag har alltid något mellan. I detta fall ville jag föreslå ett motstånd om ca: 33K från JP2 pin 1 till basen på en NPN. Emitter till GND, mellan bas och GND ett motstånd om ca: 3K3 och mellan kollektor och +5V ett motstånd om ca: 4K7.
Sedan kan du ta ut ett signal på kollektorn: '1'= POWER FAIL, '0'=POWER STABEL.
D2 ska såklart kortslutas och en "fet" elektrolyt (Cx) adderas över C1.
Detta ger en del mer tid per µF innan Cx laddas ur ska från 12V -> 7V innan 5V sjunker och därmed hinns en skrivning lätt.
Senast redigerad av Icecap 17 januari 2006, 12:52:52, redigerad totalt 1 gång.
- EagleSpirit
- Inlägg: 1288
- Blev medlem: 27 maj 2003, 23:15:48
- Ort: Västerås
- Kontakt:
Har du en diod mellan kondingen och nätagget?
Jag sitter med en grej här som har en 9F konding i sig, den kondingen kan driva en "strömsnål" dator i ca 1 minut. Det den är till för är just det här, spara undan en massa info till hårddisken innan den stänger av. Iofs är det lite mer intelligens eftersom nätagget styrs med USB men det är samma princip.
Jag sitter med en grej här som har en 9F konding i sig, den kondingen kan driva en "strömsnål" dator i ca 1 minut. Det den är till för är just det här, spara undan en massa info till hårddisken innan den stänger av. Iofs är det lite mer intelligens eftersom nätagget styrs med USB men det är samma princip.
- EagleSpirit
- Inlägg: 1288
- Blev medlem: 27 maj 2003, 23:15:48
- Ort: Västerås
- Kontakt: