Project digitale meters E24, E30 en E21

Voor alle vragen, reparatieverslagen en upgrades
Post Reply
User avatar
Peter_P
Upcoming E21 fanatic
Posts: 155
Joined: Tue Apr 15, 2014 10:57 pm

Re: Project digitale meters E24, E30 en E21

Post by Peter_P »

Tof dat degenen die alsnog een metersetje willen op deze manier een alternatief krijgen.

Ik denk echter dat de meesten zullen houden van een kant en klaar product, dus opgebouwde printplaat met behuizing, met alle nodige sensoren en bedrading. Ik vermoed dat je nu enkel de opgebouwde printplaat aanbiedt ? Ik ben ook wel benieuwd om wat foto's te zien.

Ikzelf ben intussen bezig geweest aan de opvolger met een LCD karakter display. Het is ook nog wat universeler geworden dan de vorige. Er kunnen nu 3 drukken en 3 temperaturen gelijktijdig gemeten worden. Verder heb ik nog 3 aan/uit ingangen die 0V als "uit" en haast eender welke spanning als "aan" aanvaarden. Hierop kan bv. het injector signaal van een L-jetronic of motronic aangesloten worden om de openingstijden van de injectoren te monitoren en zo een soort verbruiks computer op te zetten. Hiervoor moet dan ook een snelheidssignaal aangelegd worden.
Met snelheidssignaal en LCD scherm is een tripmaster natuurlijk ook niet meer ver af.

Ik ben ook eens afgestapt van mijn microcontroller in assembler te programmeren en heb een arduino nano als hart van het project gebruikt. Op die manier is het programmeerbaar/aanpasbaar door "jan met de pet".

Er moet nog een behoorlijk verslagje van gemaakt worden en dan denk ik eraan om het als open source project on-line te zetten. Zelf nog volledig afgewerkte producten gaan maken kruipt me te veel tijd in. Misschien dat er op die manier wel ook wel interesse voor is.

De printplaat heeft exact de afmetingen van een 4x20 LCD module en kan dus makkelijk een sandwish vormen hiermee.
Maar via een stukje (band)kabel kan eender welke LCD module aangesloten worden.

Image


User avatar
BertjeConti
E21 Mad
Posts: 3007
Joined: Mon Nov 04, 2013 9:49 pm
My E21(s): E12 520-6
Location: nederland , Weert

Re: Project digitale meters E24, E30 en E21

Post by BertjeConti »

Peter,

Inderdaad bedoelde ik een volledig afgebouwde en geteste print, complete set met behuizing, sensoren en bekabeling is natuurlijk ook mogelijk, maar dan wordt het wel maatwerk per project, omdat het afhankelijk is van type auto en zijn motorisering en de gewenste meet waarden.
Foto's kan ik helaas niet laten zien, omdat het alleen nog maar in ontwerpfase op de PC bestaat, dus alleen schema tekeningen en gerbers van het printplaat ontwerp.
Als ik het zelf ook wilde gebruiken zou ik wel op voorhand een batch printen kunnen laten maken, maar voor mijzelf is dit display niet interessant.
Omdat het een zo compact mogelijk double sided PCB ontwerp is, denk ik niet dat het lukt zo'n print zelf thuis succesvol te etsen.

Mooi dat je ook overgestapt bent op de Atmega 328 micro controllers. Het arduino platvorm maakt het allemaal veel toegankelijker.
Jouw opzet lijkt wel heel erg op de display die ik in de auto heb gebouwd, Ik had eerst een blauw-wit LCD display, maar dit was nogal traag waardoor karakters die een paar keer per seconde wijzigden niet af te lezen waren, en bij direct zonlicht ook moelijk af te lezen is, daarom ben ik overgestapt op een ouderwets groen/zwart LCD.

Wellicht heb je mijn display project al gezien, maar toch hier een paar plaatjes van mijn oplossing:

op de keukentafel:
Image

oud type display:
Image

zelf ge-etst pcb:
Image

Image

Als je benzine verbruik wil kunnen meten, dan is alleen de openingstijd van de injectoren niet voldoende, hier komt toch wel het één en ander bij kijken.
LET OP, want op de injectoren staan spanningen die tot -75 volt kunnen doorschieten, afhankelijk van de aansturing. Daarnaast zul je rekening moeten houden met de dode tijd van de injectoren, en die niet statisch, maar mede afhankelijk van de accuspanning.
De Megasquirt die ik gebruik kan daar al allemaal rekening mee houden en stuurt alle benodigde waarden uit, en daar is dan een redelijk gemakkelijk een daadwerkelijk brandstofverbruik waarde mee uit te rekenen.

Ben benieuwd naar de vorderingen van je project.
Image
Megasquirted '77 E12 520-6

Aspen Silver '96 E39 523i
User avatar
Peter_P
Upcoming E21 fanatic
Posts: 155
Joined: Tue Apr 15, 2014 10:57 pm

Re: Project digitale meters E24, E30 en E21

Post by Peter_P »

Rob,

De opbouw van uw megasquirt met display was me al bekend.

Ik ben eigenlijk niet overgestapt op ATmega 328. In het vorige project gebruikte ik net die controller ook al.

Image

Alleen programmeerde ik die in assembler, zodat ik geen last had van de beperkingen en nadelen die Arduino oplegt.
Het programmeren is natuurlijk een pak toegankelijker met arduino, en ATmega328 blijft wel een super goede microcontroller.

Spijtig dat uw ontwerp nog alleen in uw PC leeft. Ik keek ernaar uit om eens het idee en de uitvoering van een ander te zien. Het programmeerwerk is dan ook niet gedaan neem ik aan ? Hoe zou je het niet lineaire gedrag van een NTC sensor opvangen ?
Any way, je bent niet aan het proefstuk toe dus de praktische probleempjes die er toch nog altijd zitten tussen een theoretisch ontwerp op PC en een werkend toestel in de auto zul je dan wel oplossen.

Wat de tegen EMK van 75V betreft, ik heb het nog niet nagemeten maar waarschijnlijk is die al niet meer aanwezig omdat de ECU ook wel in bv. een vrijloopdiode beschikt om die tegen EMK niet te laten verschijnen. Als je zelf begint injectoren aan te sturen is het wel iets om bij stil te staan.
Verder hebben mijn aan/uit ingangen wel een limiter die van 75V geen last gaat ondervinden.
Last edited by Peter_P on Thu Nov 28, 2019 7:46 pm, edited 1 time in total.
User avatar
BertjeConti
E21 Mad
Posts: 3007
Joined: Mon Nov 04, 2013 9:49 pm
My E21(s): E12 520-6
Location: nederland , Weert

Re: Project digitale meters E24, E30 en E21

Post by BertjeConti »

Hallo Peter,

Het ontwerp leeft niet alleen in de PC maar ook op een breadboard, dat is toch wel een verder stadium dacht ik zo.

Programmeerwerk voor de 7 segment displays is grotendeels al klaar, het meeste komt namelijk terug uit 2 projecten die ik al gemaakt heb, de Tripmaster waarin de 7segment displays gebruikt worden, en het LCD display in mijn BMW waarin ik laatst de oliedruk en olietemperatuur uitlezing heb toegevoegd. Het zal grotendeels nog hapklare brokken die ik al eens gemaakt heb samen voegen worden.

Het niet lineaire gedrag van bijvoorbeeld de temperatuur sensor heb ik aangepakt met de "multimap" functie die op de arduino site beschreven en beschikbaar is. de volgende reeks weerstand wordt zo direct vertaald naar temperatuur:
//arrays for the oil temp sensor -  
  // in[] holds the calculated R values from temp sensor
  // note: the in array should have increasing values
  long oilRin[ ] = { 1100,1230,1370,1640,1920,2210,2530,2940,3410,3960,4650,5480,6480,7660,8760,12330,18100,26800,40000,60000,160000,250000};
  // out[] holds the values wanted in Celcius
  long oilTout[ ] = {140,135,130,125,120,115,110,105,100,95,90,85,80,75,70,60,50,40,30,20,0,-20};
De input voor bovenstaande is dus de weerstand van de sensor die je eerst berekend, dat mag denk ik geen probleem zijn, ik heb het zo gemaakt (oilRref bevat de weerstandswaarde van de serieweerstand met de temperatuursensor):
  long oilr = analogRead(OiltPin); // read analog value
  oilr = (oilr*oilRref)/(1024-oilr);              // calculate oil temp resistance
  long oilt = multiMap(oilr, oilRin, oilTout, 22); // transform resistance to temp
  lcd.print(oilt,DEC); // prints as xx
Om de uitgangsspanning van de oliedruksensor te vertalen naar daadwerkelijke oliedruk heb ik de functie "map" gebruikt, hierbij geef je in de functie zelf de gewenste vertaling op, in mijn geval in PSI< maar in BAR gaat net zo gemakkelijk, stukje voorbeeld uit mijn code:
    int oilp = analogRead(OilpPin);
    oilp = map(oilp, 102, 922, 0, 150); //convert 0,5V to 0 till 4,5V to 150 PSI
    oilp = constrain(oilp,0,155); // limits readout from 0 to 155, otherwise pressure could be negative
    lcd.print(oilp); // prints as xx
Ik ga er dus van uit dat de gebruikte druksensor wel een lineair gedrag heeft, daarnaast komt het zich niet op een PSI'tje

De temperatuursensor in mijn geval is een "TK-CGQ06" waar ik geen tabel van kon vinden en deze dus zelf maar na gemeten heb met de sensor in een bakje olie die ik heb opgestookt tot 140 graden en daarna laten afkoelen en bij elke 5 graden afkoeling de weerstand gemeten en genoteerd.
Ik had niet verwacht dat hydroliek olie bij deze temperaturen zo zou gaan roken en stinken e_surprised

Groet Rob
Image
Megasquirted '77 E12 520-6

Aspen Silver '96 E39 523i
User avatar
BertjeConti
E21 Mad
Posts: 3007
Joined: Mon Nov 04, 2013 9:49 pm
My E21(s): E12 520-6
Location: nederland , Weert

Re: Project digitale meters E24, E30 en E21

Post by BertjeConti »

Oh ja, Peter, bijna vergeten, ik heb die "multimap" functie zelf aangepast zodat er met long's in plaats van int's gerekend wordt, hier is tie:
// this function is a multi map function, recalculates a value using a in and out array
// note: the _in array should have increasing values
long multiMap(long val, long* _in, long* _out, uint8_t size)
{
  // take care the value is within range
  // val = constrain(val, _in[0], _in[size-1]);
  if (val <= _in[0]) return _out[0];
  if (val >= _in[size-1]) return _out[size-1];

  // search right interval
  uint8_t pos = 1;  // _in[0] allready tested
  while(val > _in[pos]) pos++;

  // this will handle all exact "points" in the _in array
  if (val == _in[pos]) return _out[pos];

  // interpolate in the right segment for the rest
  return (val - _in[pos-1]) * (_out[pos] - _out[pos-1]) / (_in[pos] - _in[pos-1]) + _out[pos-1];
}
Groeten Rob,
Image
Megasquirted '77 E12 520-6

Aspen Silver '96 E39 523i
User avatar
BertjeConti
E21 Mad
Posts: 3007
Joined: Mon Nov 04, 2013 9:49 pm
My E21(s): E12 520-6
Location: nederland , Weert

Re: Project digitale meters E24, E30 en E21

Post by BertjeConti »

Peter, ook nog even terug komen op die hoge inductie spanningen uit de injectoren.
Vrijloop dioden zullen niet gebruikt zijn in je Motronic, anders zouden de injectoren langer dan gewenst open blijven. Die hoge inductie spanning is nodig om de injectoren zo snel mogelijk te laten sluiten nadat de aansturing weg valt. Er zal wel een cirquit aanwezig zijn die de spanning op een bepaalde waarde gaat afkappen, maar dat zal zo tussen -30V en -50 V liggen schat ik zo.
Image
Megasquirted '77 E12 520-6

Aspen Silver '96 E39 523i
User avatar
Peter_P
Upcoming E21 fanatic
Posts: 155
Joined: Tue Apr 15, 2014 10:57 pm

Re: Project digitale meters E24, E30 en E21

Post by Peter_P »

Het niet lineaire karakter van de NTC kan je op 2 manieren oplossen. Zoals jij doet met de multimap functie geef je een soort mapping (in uw geval 22 waarden) waaruit afgelezen/geïnterpoleerd wordt, ofwel laat je het via een juiste vergelijking echt uitrekenen. Met een beperkte mapping/interpolatie heb je de exponentiele karakteristiek benaderd door een aaneenschakeling van rechten. Als de punten niet te ver uit elkaar liggen, in uw geval 5° voor de hoogste temperaturen en 10 of 20° voor de lagere temperaturen dan is dat eigenlijk goed genoeg.
Voor mijn assembler oplossing had ik ook gekozen om een mapping te geven bestaande uit 255 punten. Interpolatie is dan niet meer nodig.

Vermits je met arduino wel wat makkelijkere math ter beschikking hebt dan bij assembler, heb ik in het laatste project ervoor gekozen om het verband tussen weerstand (omgezet naar spanning) en temperatuur gewoon te laten uitrekenen. De bekende Steinhart-hart vergelijking, die het gedrag van elke NTC kan beschrijven dient hier als uitgangspunt. Die formule geeft R in functie van de temperatuur. Wat we nu nodig hebben is het omgekeerde, T uitrekenen als R gemeten is waardoor in de uiteindelijke formule een natuurlijke logaritme opduikt. Maar dat is voor de arduino compiler geen probleem.



De druksensoren (die ik gebruikte) waren idd. lineair, wat die problemen niet stelt. Zo aan uw waarden te zien (0.5 - 4.5V) gebruik je dezelfde. Het zijn eigenlijk wel sensoren die absolute drukken meten. Dat is de reden waarom er al ongeveer 0.5V uit komt zonder dat je een overdruk aangelegd hebt. Je kan er dus ook onderdruk mee meten. In dat geval komt er minder dan 0.5V uit.
Een vaste waarde aftrekken, de 102 die jij in uw map instructie gebruikt, kan wel eens tot vreemde resultaten leiden. Afhankelijk van de heersende atmosferische druk is de uitgangsspanning dus niet altijd exact 0.5V. Zonder aangelegde druk ga je, afhankelijk van het weer, al een geringe PSI waarde krijgen die zowel positief als negatief kan uitvallen. Je kan dit vermijden door bij het opstarten de heersende atmosferische druk te meten en die waarde dan aftrekken ipv. een vaste 102.
Is PSI trouwens de gebruikelijke eenheid voor druk in NL ? Ik had mijn metertjes in bar gekalibreerd en niemand maakte daar opmerkingen over.
User avatar
323baur
E21 VIP
E21 VIP
Posts: 11757
Joined: Fri Jan 12, 2007 8:44 pm
Location: the Netherlands, Houten
Contact:

Re: Project digitale meters E24, E30 en E21

Post by 323baur »

Hilarisch dit, 2 vakmensen die voor mij echt totaal onbegrijpbare dingen posten. Maar ik ben er wel blij mee.
Understeer is when you hit the wall with the front of the car and oversteer is when you hit the wall with the rear of the car. Horsepower is how fast you hit the wall. Torque is how far you take the wall with you.
geerling
E21 VIP
E21 VIP
Posts: 237
Joined: Fri Sep 07, 2012 4:16 pm
My E21(s): BMW 320/6 '81 zypressengrun
Location: Ruinerwold Drenthe

Re: Project digitale meters E24, E30 en E21

Post by geerling »

Haha ik dacht precies hetzelfde, dit gaat mij allemaal boven de pet maar wel leuk om te lezen!! :wink:
User avatar
Peter_P
Upcoming E21 fanatic
Posts: 155
Joined: Tue Apr 15, 2014 10:57 pm

Re: Project digitale meters E24, E30 en E21

Post by Peter_P »

Oops ... :oops:
Beetje laten meeslepen precies. We zullen elkaar voortaan via mail verder helpen.
Passie voor klassiek
Upcoming E21 fanatic
Posts: 73
Joined: Tue Jan 06, 2015 3:17 pm
My E21(s): 320/6 '82
Location: Noord Brabant

Re: Project digitale meters E24, E30 en E21

Post by Passie voor klassiek »

Via mail?

Nu ben ik zelf absoluut geen elektrotechnici en zijn logaritmen alweer ca 10 jaar geleden voor mij.
Maar ik herken het redelijkerwijs.

Ik probeer het te volgen. En de intentie is mij helder. Wat mij betreft mag je hier lekker doorstoeien!

Ik zou nog weleens wat extra waarden in mijn e21 willen. De olietemperatuur bijvoorbeeld. Via een mooi klassiek display zoals jullie dat voorheen voor een e30 bouwde.
Erg leuk project!

Met vriendelijke groet,

Mark
(deel)restauratie?
Plaatwerk ingelast naar wens.
Voor informatie mag u altijd vrijblijvend contact opnemen!
User avatar
323baur
E21 VIP
E21 VIP
Posts: 11757
Joined: Fri Jan 12, 2007 8:44 pm
Location: the Netherlands, Houten
Contact:

Re: Project digitale meters E24, E30 en E21

Post by 323baur »

Van mij ook hoor!
Understeer is when you hit the wall with the front of the car and oversteer is when you hit the wall with the rear of the car. Horsepower is how fast you hit the wall. Torque is how far you take the wall with you.
User avatar
Jeroen
Site Admin
Posts: 29194
Joined: Tue Sep 14, 2004 12:23 pm
My E21(s): '81 323i Baur
Location: The Netherlands
Contact:

Re: Project digitale meters E24, E30 en E21

Post by Jeroen »

Same here, de basis is aanwezig dus ik vind het alleen maar leuk om mee te lezen hoor, ga zo door heren!
Regards/groeten, Jeroen
User avatar
BertjeConti
E21 Mad
Posts: 3007
Joined: Mon Nov 04, 2013 9:49 pm
My E21(s): E12 520-6
Location: nederland , Weert

Re: Project digitale meters E24, E30 en E21

Post by BertjeConti »

Mark,

Die mooie door Peter gebouwde display's die hier beschreven zijn, zijn niet alleen succesvol in een E30 gebouwd, maar ook in meerdere E21's zoals die van Remy die deze writeup gestart is.
Op dit moment kan Peter geen displays meer maken vanwege bepaalde componenten die niet meer verkrijgbaar zijn (dat klopt toch Peter?). Daar ben ik toen ingesprongen met een re-design met nu goed verkrijgbare componenten. Er is nu eigenlijk maar één probleem, en dat is de printplaat zelf die ik alleen in grotere aantallen voor een verantwoorde prijs kan laten maken.

Peter, goeie tip om bij de startup de atmosferische druk te meten en deze als beginwaarde te laten gelden, alleen zal dat met de arduino zoals ik hem gebruik niet lukken. Door de bootloader die erin zit duurt het enkele tellen alvorens hij aan het eigenlijke programma begint. Dan is de oliedruk waarschijnlijk al niet meer atmosferisch.
Die "102" is eigenlijk de digitale waarde van de AD converter uitlezing en komt dan exact overeen met 0,5V op de ingang. (1024 = 5 V dus 0,5 = 1024/10 =102)

Van de andere kant denk ik dat het bij oliedruk niet op een PSI tje komt. Het idee is dat je kan zien of er voldoende oliedruk is, en of dit nu 25 of 26 PSI is maakt niet zoveel. Komt hij in de buurt van de atmosferische druk dan is er echt iets aan de hand !

Waar ik nog mee bezig ben is om een bepaalde waarschuwing te gaan inbouwen, als een bepaalde gemeten waarde boven of onder de ingestelde max of min komt wil ik een sterk signaal (witte led) aan laten gaan. Bijvoorbeeld bij te hoge olie of koel temperatuur of te lage oliedruk als de motor loopt, te lage boordspanning en wellicht nog andere zaken.

groet Rob
Image
Megasquirted '77 E12 520-6

Aspen Silver '96 E39 523i
User avatar
Peter_P
Upcoming E21 fanatic
Posts: 155
Joined: Tue Apr 15, 2014 10:57 pm

Re: Project digitale meters E24, E30 en E21

Post by Peter_P »

Het is een beetje samenloop van omstandigheden wat ertoe geleid heeft dat ik schreef dat ik geen setjes meer kon aanbieden.
Eén ervan kom jij nu ook alweer tegen: printplaten laten maken.
Verder waren mijn display's qua opstelling en afmetingen een beetje speciaal. Die zijn ook niet per stuk te koop in het winkeltje om de hoek.
Tot slot kruipt er ook heel wat tijd in om een compleet setje inbouw klaar te kunnen afleveren. In het begin ook nog wel tof maar op zeker moment lijkt dat wel bandwerk, en dat is aan mij niet besteedt. Ik steek die tijd dan liever in iets nieuw.

Atmosferische druk meten en aftrekken is de enige juiste methode, maar in de praktijk niet altijd even makkelijk. Zoals je zegt zou het kunnen dat je met een arduino te laat komt om te gaan meten vooraleer de oliedruk opkomt. Verder is er nog een probleem als je de auto opnieuw start alvorens de druk helemaal naar nul is kunnen gaan. Vooral bij benzinedruk, die echt lang aan blijft moet er nog iets extra bedacht worden. Je kan dan de begindruk meten, maar als je een waarde terug krijgt die echt geen normale luchtdruk kan zijn, dan toch maar een geschatte waarde aftrekken. Dit alles zat in mijn vorige generatie metertjes.
Het klopt misschien wel dat het niet op een paar PSI aankomt. Het is gewoon geen zicht dat een metertje niet perfect op 0 staat voor je begint te meten. Verder wil ik eigenlijk toch ook wel zo juist mogelijk meten. Als het er enkel op aankomt te weten of je wel of geen oliedruk hebt ... daar hebben we al een rood lampje voor.

Een systeem om wat aandacht te trekken bij abnormale waarden had ik ook al ingebouwd. De display's van mijn voltmeter begonnen te knipperen bij een spanning kleiner dan 11.5 en groter dan 14.5. De oliedruk knippert beneden de 1.0 bar. Afhankelijk van de opstelling valt dat knipperen genoeg, of niet genoeg op. Op het printje voor LCD sturing is nog wat ruimte, er is nog wel een vrije uitgang op de arduino nano, dus als ik het ontwerp nog wat bijstuur komt er waarschijnlijk een piezo beeper bij.
Post Reply