Sida 1 av 4

Flödesmätare för båt med bensinmotor.

Postat: 16 januari 2006, 23:01:16
av simon78
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:
Bild

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.... :roll:


EDIT: glömde resetknappen i schemat (mellan PB1 och jord)

Postat: 17 januari 2006, 09:34:38
av Icecap
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.

Postat: 17 januari 2006, 10:08:56
av DeVille
Hmm.. ang krockande interuppter.. kan du inte använda en avr till varje motor/givare å sedan skicka resultatet till en "huvud avr" som sköter interface och nollställningen?

Kanske blir ännu värre med komunikation osv, men det var en tanke som slog mig bara.

Postat: 17 januari 2006, 10:18:36
av simon78
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) :D

Postat: 17 januari 2006, 10:22:18
av Pjoms
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... :wink:

Postat: 17 januari 2006, 12:30:17
av Icecap
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.

Postat: 17 januari 2006, 12:33:21
av simon78
Tackar för den lite mer detaljerade beskrivningen... Ska försöka med den nu. Har problem med den tidigare uppkopplingen. BOD hjälpte inte. Processorn hinner spara om jag bara drar sladden, men om jag stänger av på nätagget så hinns det inte med att spara... underligt...

Postat: 17 januari 2006, 12:54:10
av EagleSpirit
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. :D

Postat: 17 januari 2006, 13:16:27
av simon78
icecap: Menar du nånting sånthär?

Bild

Med detta sättet borde jag kunna koppla 'power detect' eller vad man ska kalla det direkt till en pin-change-interrupt ISF den analoga komparatorn.

Ungefär hur stora ska elyterna vara tro?

Postat: 17 januari 2006, 13:51:00
av simon78
Fixxat! Det funkar fin-fint. Det klarar att spara till eepromet i de flesta tänkbara scenarion. (förrutom kortslutning efter den första dioden, men det ska man väl inte begära.) Elyterna räcker med 100uF verkar det som.

Postat: 17 januari 2006, 15:19:59
av EagleSpirit
Ett tips skulle kanske vara att sätta alla möjliga utgångar till 0 så att saker som "drivs" av PICen inte belastar kondingen.

Postat: 17 januari 2006, 17:32:14
av Icecap
Vad trevligt att du fick det att rulla. Tänk på att en LM7805 faktisk drar ca: 5-7 mA i "tomgång" och därmed tar ut en konding ganska snabbt. Men en 100µF är ju inget problem så det är perfekt ju.

Postat: 8 februari 2006, 10:34:03
av modro
Hur går det med diesel versionen ?

någon som vet hur interrupten fungerar på en pic 16f877 med mbasic

tänkte bygga något liknade fast med en pic

Postat: 9 februari 2006, 11:02:59
av simon78
Dieselversionen får dröja lite. Ska provköra bensinversionen lite i sommar. Blir jag för desperat så får jag bygga en till min båt (diesel) också.

Postat: 19 februari 2006, 19:13:54
av Eelector
En liten angränsande fråga:

Går det inte att kolla förbrukningen på en bensinare genom att spionera på spridarnas öppettider? Trycket är väl konstant, och det enda som ändras med gaspådraget är tiderna?
Känner man till hur mycket spridaren ger / tidsenhet så borde det väl vara en framkomlig väg?