Bildator (temperatur- och RPM-mätning och visning)

Berätta om dina pågående projekt.
idiotdea
Inlägg: 471
Blev medlem: 26 juli 2006, 16:11:34
Ort: Vasa, Finland
Kontakt:

Bildator (temperatur- och RPM-mätning och visning)

Inlägg av idiotdea »

Det är länge sedan jag har startat en tråd här, men nu börjar det i alla fall vara dags igen. Jag har alltså gjort en enkel bildator som mäter temperaturer med digitala temperaturgivare (DS1820) och även varvtalet, och visar detta på en LCD.

Motivering
Det hela började med att min bil (en BMW 316 -87) har haft en tendens att gå lite varm och jag ville ha bättre koll på exakt hur varm den går. De vanliga kylvattenmätarna har en skala som man kan tyda med ca. 5°C upplösning, och man har inte någon bra koll på noggrannheten. Därför valde jag att använda byta ut originalmätaren mot en DS1820, med upplösning på 1/8°C och noggrannhet på 0,5°C. Samtidigt tänkte jag att det kunde vara intressant att se motorvarvtalet, och då det inte finns någon varvtalsmätare som standard, så lade jag samtidigt till denna funktionalitet till "datorn".

Hårdvara
Det hela är uppbyggt runt en Atmel ATmega48. Denna sköter alltså om att läsa in värdena från temperaturgivarna och varvtalet, samt att visa värdena på skärmen. Temperaturgivarna är kopplade till varsin normal ingång, och varvtalssignalen är kopplad till ICP1, som triggar på externa händelser.

Spänningsdelen är grundad på Skyddad 5V matning, men med en del utelämnade komponenter. Ifall utelämnandet av några av komponenterna var riktigt smart kan man fråga sig. Ibland (men relativt sällan) blir skärmen svart, och endast "omstart" hjälper. Denna defekt skulle kunna bero på dålig matning.

Varvtalssignalen tas direkt från tändspolen och begränsar till ca. -0,6V - +5,6V med hjälp av två dioder. Därefter går den in i ett lågpassfilter (RC) som filtrerar bort störningar och "ringning". Efter detta går signalen via en Schmitt-trigger in till mikrokontrollern. Jag gjorde en miss när jag designade denna del, och signalen var inte tillräckligt stark för att driva Schmitt-triggern (en 74HS14). När jag väl hade lokaliserat problemet, var det dock relativt lättlöst. Jag hittade en CMOS Schmitt-trigger med samma "pinout", så det var bara att byta till den, så fungerade allt fint.

Displayen är av "inverterad" typ, vilket innebär att det är själva tecknen som lyser istället för bakgrunden. Ljusstyrkan kan regleras från en PWM-utgång på mikrokontrollern.

Mjukvara
Programmet är skrivet i C och kompileras med WinAVR. Bortsett från några funktioner från standardbilblioteket har jag skrivit allting själv. Koden för displayen och 1-wire kommunikationen är återanvänd från tidigare projekt. Tyvärr stötte jag på problem med programminnesstorleken på ATmega48:an, så jag har gjort vissa kompromisser för att få allt att rymmas. Jag har t.o.m. 4 bytes kvar att använda för framtida funktionalitet :) Ifall någon är intresserad av koden kan jag säkert lägga upp den också.

Bilder
Det är väl för bilderna ni öppnade tråden, så lite sådana måste jag väl också visa :) Tyvärr tog jag inga bilder med kortet bestyckat.
schematic.png
simulation.png
pcb.png
front.jpg
back.jpg
panel.jpg
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
EEPROMdanne
Inlägg: 1155
Blev medlem: 30 oktober 2007, 09:39:59
Ort: Söderköping

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av EEPROMdanne »

Trevligt projekt :) Jag håller på med en liknande grej fast till båten, där jag bl.a ska mäta varvtalet.
>Varvtalssignalen tas direkt från tändspolen
Menar du att du kopplar in dig på spolens primärlindning då? Eller kapacitivt/induktivt på tändkabeln?

Nu använder jag ju själv PIC, men vad jag förstår så använder du ICP1-pinnens capture-funktion till att mäta tiden mellan två pulser, för att sedan kunna beräkna varvtalet?
idiotdea
Inlägg: 471
Blev medlem: 26 juli 2006, 16:11:34
Ort: Vasa, Finland
Kontakt:

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av idiotdea »

Japp, varvtalssignalen tas direkt från spolens primärlindning. Jag tyckte det var enklast/säkrast så.

Jo, det är input capture jag använder. Timern avläses vid varje avbrott, nollas därefter, och får ticka på tills nästa avbrott. Enkelt och exakt ;)
beavy-o
Inlägg: 149
Blev medlem: 13 mars 2006, 19:27:54

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av beavy-o »

Intressant! Är sugen på något liknande till min gamla pråm som saknar färddator. Det är förgasare på denna eller? Annars kanske man kunde läsa ur något kul från spridarsignalerna :)
idiotdea
Inlägg: 471
Blev medlem: 26 juli 2006, 16:11:34
Ort: Vasa, Finland
Kontakt:

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av idiotdea »

Jodå, det är nog förgasare på denna. Inga nymodigheter här inte ;)

Det som inte ännu finns med, varken på bilderna eller i verlighet, är temperaturmätningar inne i kupén och utomhus. Men det är bara att koppla in sensorerna så börjar temperaturerna visas.

Annan trevlig funktionalitet skulle vara:
- Spänningsmätning (planerad, men bortlämnad p.g.a. utrymmesbrist)
- GPS för hastighet och fartkameror
- Bränsleförbrukning (skulle kräva flödesmätare)

Men den extra funktionaliteten får nog vänta till version 2. Och den kommer knappast att komma ;)
Användarvisningsbild
Electricguy
Inlägg: 12480
Blev medlem: 15 augusti 2007, 16:52:14
Ort: Kälmä' typ..

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av Electricguy »

Har inte alla BMW av den serien insprutning? Alla jag har sett har haft det iaf.
Användarvisningsbild
stekern
Inlägg: 453
Blev medlem: 2 november 2008, 08:24:18
Ort: Esbo, Finland

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av stekern »

Eloge för en mycket bra projektbeskrivning!
Tyvärr stötte jag på problem med programminnesstorleken på ATmega48:an, så jag har gjort vissa kompromisser för att få allt att rymmas.
Den är ju pinkompatibel med atmega88 och atmega168, så det är ju bara att plutta dit nån av dem om du vill bygga ut funktionaliteten.
Användarvisningsbild
Glenn
Inlägg: 36647
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av Glenn »

idiotdea skrev: Det hela började med att min bil (en BMW 316 -87) har haft en tendens att gå lite varm och jag ville ha bättre koll på exakt hur varm den går. De vanliga kylvattenmätarna har en skala som man kan tyda med ca. 5°C upplösning, och man har inte någon bra koll på noggrannheten. Därför valde jag att använda byta ut originalmätaren mot en DS1820, med upplösning på 1/8°C och noggrannhet på 0,5°C.

Hur löste du detta fysiskt ? alltså du måste ha byggt "sensorn" baserad på DS1820 själv ? har du bilder på detta ? det vore intressant.
Electricguy skrev: Har inte alla BMW av den serien insprutning? Alla jag har sett har haft det iaf.
Inte innan 1988, då fanns det förknasare också. 316 var ju dessutom billigaste modellen så många såldes nog med just förgasare.
Användarvisningsbild
cl3mens
Inlägg: 681
Blev medlem: 1 augusti 2004, 23:26:33
Ort: Stockholm

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av cl3mens »

Om du bestämmer dig för att visa förbrukning kan du jaga rätt på flödesgivare till Zemcos färddatorer, de verkar rätt enkla att hitta på ebay.
Användarvisningsbild
Glenn
Inlägg: 36647
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av Glenn »

Problemet är ju att man ofta har returledning, blir jobbigare att mäta flödet då.. och även om det inte är returledning så har man ju flottörhus, fast ska man bara ha förbrukningen under en längre tid funkar det ju då.
Användarvisningsbild
Andy
Inlägg: 5893
Blev medlem: 26 september 2004, 18:24:52
Ort: Södern

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av Andy »

Tyvärr har många flödesgivare ett minimumflöde för att gå igång överhuvudtaget. Det gör att det är mycket svårt att få rätt visning av förbrukningen.
idiotdea
Inlägg: 471
Blev medlem: 26 juli 2006, 16:11:34
Ort: Vasa, Finland
Kontakt:

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av idiotdea »

Electricguy skrev:Har inte alla BMW av den serien insprutning? Alla jag har sett har haft det iaf.
Som redan nämnts har inte alla insprutning. I själva verket tror jag inte att det finns någon BMW E30 (serien) 316 som har insprutning. Om jag har förstått rätt så har de med inspruning namnet 316i eller 318.

Jag skulle gärna ha insprut istället för förgasare, och har lite halvhjärtat sökt efter en delar som skulle behövar för att konvertera till insprutning (topp, insug, o.s.v.). Men jag har inte hittat något till lämpligt pris.
stekern skrev: Den är ju pinkompatibel med atmega88 och atmega168, så det är ju bara att plutta dit nån av dem om du vill bygga ut funktionaliteten.
Jo, jag hade för mig att det skulle gå ganska enkelt att "uppgradera", men hade inte orkat kolla upp det. Vi får se hur det blir, men det är förstås bra att möjligheten finns.
Glenn skrev: Hur löste du detta fysiskt ? alltså du måste ha byggt "sensorn" baserad på DS1820 själv ? har du bilder på detta ? det vore intressant.
Jag tog den gamla temperaturgivaren (biltema-typ som skruvas fast) och borrade ut inälvorna. Sedan dit med en DS1820 och kemisk metall ;) Kanske inte den finaste lösningen, men det verkar fungera bra. Jag har i och för sig inte kontrollmätt temperaturen, men rimliga värden visar den i alla fall.


Angående flödesmätning tror jag nog inte att det blir av. Men på denna bil finns ingen returnledning, så det borde nog gå att mäta flödet. Fast då borde flottörventilen ligga "halvöppen" hela tiden, istället för att öppna och stänga i intervall. Hur det fungerar i verkligheten vet jag inte. Och någon momentanförbrukning får man förstås inte, men medelförbrukning borde vara möjligt.
Användarvisningsbild
Glenn
Inlägg: 36647
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av Glenn »

Tja, det är ju en ganska bra lösning iaf, jag vet faktiskt inget bättre sätt att lösa det på förutom att köpa en färdig sensor och sen interfacea den, men det är ju bra mycket enklare att kommunicera med en 1wire-enhet, därför var jag intresserad av hur du hade gjort :)
kimachren
Inlägg: 104
Blev medlem: 15 september 2010, 21:27:18
Ort: Vasa

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av kimachren »

om du vill ha förbrukningsmätare ska du leta efter en vit-gul (tror ja det var) kabel bakom mätartavlan. Åtminstone på 88or fanns det en sådan. den ska ge en spänning mellan en och två volt beroende på hur mycket bränsle den drar.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Bildator (temperatur- och RPM-mätning och visning)

Inlägg av Icecap »

idiotdea: Din lösning med att nolla timern är faktisk inte så exakt som du tror!

Vill du ha exakt tid ska man spara "förra tiden" (kallas X här) och sedan räkna lite:
Tid_Sedan_Förra_Interrupt = Tiden_Nu - X;
X = Tiden_Nu;

Vid att nollställa introducerar du en fördröjning, i fallet med motorns RPM kan det vara försumbart men generellt är det fel något man ska undvika. Fördröjningen kommer av att interrupten kommer och sedan ska µC'n aktivera ISR'n, detta tar tid. Sedan läsas tiden och timern nollas och "all" denna overhead kostar mättid. Vid att bara spara förra värde och subtrahera får man det exakta värde varje gång.
Skriv svar