Dit is de dodge waar het om gaat.

de auto is wel 6V , en Postieve GND , dus alles is omgedraaid kwa + en -.

[Bericht gewijzigd door bijlsma op (43%)]

Dag Bijlsma, ik lees nu dat de auto 6 v positief aarde is. Oplossing met arduino of AT85 lijkt mij dan moeilijk. het printje uit mijn webadres werkt wel met 6 v pos. aarde. Een Italiaans/Frans metertje uit die tijd (jaren 70-80) werkt meestal op een vaste spanning van 12 volt. De Duitse metertjes zijn eigenlijk allemaal 6 volt meters die met een voorschakelweerstand geschikt gemaakt worden voor 12 of 24 volt. Dus een VDO oid kan teruggebracht worden naar 6 v door de weerstand te verwijderen. Probleem is de pos. massa. Metertjes voor pos. aarde waren inwendig anders bedraad.
Andere oplossing: de Fiat zender openen, waarschijnlijk is dan een plaatje met daarop een gewikkelde weerstanddraad te zien. Door op diverse plaatsen met een druppel soldeer enkele windingen kort te sluiten kan ook het gewenste weestandbereik gecreeerd worden. Wel zal de meter dan wat meer in stapjes werken. Bij een nieuwer type zender kunnen er ook SMD weerstandjes op een plaatje gemonteerd zijn, dan weerstandjes vervangen/overbruggen.
ps; Wat is er met de oude, originele tankzender gedaan? Ik heb dit soort oude, jaren 50-60 zenders regelmatig gerepareerd op mijn werk. Doe dit werk thuis ook nog wel. Vaak zitten ze vast door vuil en of corrosie. Ik ben dus waarschijnlijk wel in staat de oude of de nieuwe zender geschikt te maken voor het originele metertje.Nieuwe zender ?https://www.moparpro.com/fuel-sending-unit-1949-1952-plymouth-dodge-de…
Gr. Douwe, Tiel

in principe maakt het weinig uit.
als de + pool aan carosserie hangt, zet je de arduino er gewoon omgekeerd in.

dwz de +5V hang je aan carosserie.
de massa van je arduino hang je met een 7905 aan de - pool.

je sender heeft een gemeenschappelijke + pool nu ipv massa. dus maak je een spanningsdeler tussen +12V en de sender. halfweg neem je dat signaal naar je arduino.

het maakt voor de arduino echt niks uit of die een signaal meet van 4-10V of een signaal van 10V naar 4V tov zijn +. een spanning is een spanning en dat meet die

normale auto met chassis aan -pool
stel een spanningsdeler van 1:3 (blauw getekent) en de sender kan tot 12V leveren, dan ziet de arduino van 0-4V

bij 0ohm hangt die dus hard aan massa en ziet de arduino dus 0V.
bij 300ohm weerstand, staat er pakweg 9V over de fuel sender en ziet de arduino dus 3V

auto met chassis aan + pool
stel een spanningsdeler van 1:3 en de sender kan tot 12V leveren, dan ziet de arduino van 5V tot 1V.

bij 0 ohm hangt de fuel sender dus aan +12V en ziet de arduino dus 5V aan zijn ingang (VCC dus)
bij 300 ohm staat er pakweg 9V over de fuel sender en komt er dus een 3V lagere spanning dan VCC (9V tov -pool accu, maar de arduino ziet 2V tov zijn GND punt)

Super , ik heb een arduino-kloon liggen , van velleman kan ik deze daar ook voor gebruiken ?
https://cdn2.botland.store/87432-large_default/velleman-vma100-atmega328-uno-module-compatible-with-arduino.jpg

En kwa programma , heb gehoord van git-hub maar is de code vrij simpel erin te zetten ?
zal een volt.regelaar bestellen. en kwa weerstanden heb ik wel wat liggen.

en jou schema is 12V , maar de auto is 6V , is het schema ook te gebruiken voor 6V ? of moet er eerst een soort converter tussen naar 12V ?

[Bericht gewijzigd door bijlsma op (16%)]

6V kan je de arduino direct aan de auto leggen, mag tot 12V hebben, dus 6V is zeker in orde.
zet er misschien wel een diode en een condensator tussen, om 'pieken' uit het boordnet te voorkomen

boel is nog een stuk makkelijker dan, de spanning over de fuel meter zal zowieso niet hoger uitkomen dan 5V.

k zou nog wat clonen bij bestellen, je zal er wel de rook laten uit ontsnappen.
ik gebruik de nano's, stukje kleiner. als je ze bv op aliexpress koopt, kost dan 2€/stuk (ik koop ze per 10 altijd)
https://qph.cf2.quoracdn.net/main-qimg-c751237a23c20be8d62be1bda7672747.webp

eigenlijk kan je nu maken wat je wil. een arduino heeft 13 outputs, dus je kan bv een aanduiding maken met 10 leds
https://img.lazcdn.com/g/p/144d12e5dd3feb1f53259090b0b692c9.jpg_720x720q80.jpg

je kan met displays werken,
http://www.fordcapri.be/off/pics/eo/arduinodash/640/1273067919236_hz_en_mp32_8_627.jpg
http://www.fordcapri.be/off/pics/eo/arduinodash/640/IMG_20120420_203700.jpg
http://www.fordcapri.be/off/pics/eo/arduinodash/640/Screen-Shot-2013-12-19-at-12.26.10-PM.jpg

je kan met 7 segment werken en het aantal liters weergeven
...

voorbeelden genoeg online

Wanneer je toch al een andere uitlezing gaat maken:

Door de tankgever te voeden vanuit een stroombron kun je de stroom door de weerstanddraad mooi constant houden en krijg je ook een nette verlopende spanning.

Voordeel is ook dat de gever minder snel doorbrandt (iets wat bij de kever destijds nogal eens voorkwam, zeker met de vervangende tankgevers van plastic)

in mijn gevallen behoud ik de stroom die door de originele meter geleverd wordt en meet ik enkel de spanningsvariator.

dan heb je altijd 2 uitlezingen, de originele op de dashboard meter, en je uitlezing van je eigen systeem. loopt er dan wat fout, heb je nog steeds de originele

Op maandag 29 april 2024 07:54:22 schreef fcapri:
6V kan je de arduino direct aan de auto leggen, mag tot 12V hebben, dus 6V is zeker in orde.
zet er misschien wel een diode en een condensator tussen, om 'pieken' uit het boordnet te voorkomen

Daar heb je wel wat meer voor nodig. De inductiepieken van het in en afschakelen van zaken zoals de startmotor of een zware ventilator kunnen honderden volts bedragen.

Antiparalleldiode (zwaar) om omgepoolde spanningen kort te sluiten. Zenerdiode om de boel op 5v te houden. Condensatoren aan beide kanten om ontstekingsruis zoveel mogelijk buiten de deur te houden.
Een 7805 werkt helaas niet op een 6v net omdat je iets meer spanning moet hebben aan de ingang dan 6,3v a 7v.

Heb vanmiddag de ardiuno nano (namaak) besteld ,
Samen met een mini Oled display en een step down converter van 5 tot 40V naar 5V 3A stabiel.
heb een goede collega die me wel wou helpen met programeren. want
daar snap ik niets van.
bedankt voor de hulp , en het eind product zal zeker een foto van gemaakt worden.

dat programmeren valt super reuze mee hoor.
een paar van de basic programmatjes inladen en naar eigen wens wat aanpassen om te begrijpen.
loop je vast, kom je hier vragen stellen, hulp is hier ook genoeg aanwezig.

dan even een oefening erin waarmee je een led feller of minder fel laat branden aan de hand van een pot meter, daar lees je al een input inlezen en omzetten naar een output.

dan maak je eens wat default scherm programmas (de examples van je display library) en pas die eens naar wens aan.

en voor je het weet ben je een fuel meter aan het schrijven. ik denk dat dit bij mij ook één van de eerste programmas was
heel basic begon ik met het inlezen van de accuspanning waarmee ik de arduino zelf voede
http://www.fordcapri.be/off/pics/eo/arduinodash/640/P_20150318_142228.jpg
denk dat dit resultaat al was na een voormiddag spelen. het gaat dus heel snel hoor.
daarna een noàkio scherm erbij als display
http://www.fordcapri.be/off/pics/eo/arduinodash/640/P_20150318_142640.jpg

PS: DIT zou ik zeker ook doen bij u. bij een oldtimer is het altijd handig om de laadspanning van de dynamo te zien zodat je falen ervan op tijd opmerkt

de arduino hangt al aan het boordnet, 2 weerstanden en 3regels code en je hebt de voltmeter ook geintegreerd.
motortemperatuur had ik ook, maar dit is meer ter info. temperatuursensoren zijn hyperbolen, en dus enorm moeilijk om in te lezen en programmeren (toch als je precieze waardes wil)

[Bericht gewijzigd door fcapri op (11%)]

"temperatuursensoren zijn hyperbolen, en dus enorm moeilijk om in te lezen en programmeren (toch als je precieze waardes wil)"
Daar is toch die "map"functie voor?
Douwe

dat lukt zomaar niet.

map linkt tussen 2 punten.
bv 10 ohm is 10L
100ohm is 55L
dan berekent die lineair dat 40ohm dan zal overeenkomen met 25liter.

hyperbool werkt zo niet.
temp sensor golf bv
20° = 2500ohm
90° = 200ohm

dan zou de map fuctie zeggen, 70° verschil is 2300ohm verschil. elke graad is dan 32ohm verschil.
dus 80° is 10° lager oftewel 320ohm meer.
200ohm + 320 ohm = 520ohm en das fout, 80° is maar 300ohm
520ohm komt overeen met 60°

dus ofwel moet je 6 verschillende stukken map maken, maar daar zit telkens weer een afwijking in

zou ik 2 punten nemen, bv 0° en 50°, dan kom je negatieve weerstand uit op 90° (paarse lijn)

Het Begin is er :)
de code is copy/paste van de website.

prima toch.
en met een usb kabeltje kan je altijd een update doen om nieuwe mogelijkheden te maken (chiptuning in een jaren 50 dodge :) )

Die displays gebruikte ik op het einde om in te werken in een knop
http://www.cwad.be/projectpics/digi2b.jpg
http://www.cwad.be/projectpics/digi2a.jpg

neem zeker voldoende fotos van je project, altijd leuk om naar terug te kijken later

[Bericht gewijzigd door fcapri op (49%)]

Aan een Mustang '65 gewerkt gehad, uiteindelijk de volt van die stabilisator gevonden en dat was 5 volt. Denkelijk reed men vroeger met 6 volt accu's. Anders klopt niks van temp of benzinepeil.
De Opels erna hadden een hogere voltage op die meters.

hangt een beetje van merk tot merk af. maar zolang je een stabiele spanning hebt maakt het weinig uit.

bij mijn VW was het 10V, bij ford is het 9V als ik me goed herinner.
die 9V staat over de benzinemeter en vlotter in serie. benzinemeter is een bimetaal.

stel 9V:
stand 1: 4V over de sender, 5V over de voltmeter, de meter wijkt ver uit (volle tank)
stand 2: 8V over de sender, 1V over de voltmeter, meter wijkt weinig uit, tank bijna leeg.

doe je dat op 5V, is gewoon de weerstandswaarde van de sender anders.
stand 1: 4V over de sender, 1V over de voltmeter, meter wijkt niet uit, tank is leeg
stand 2: 1V over de sender, 4V over de voltmeter, meter wijkt veel uit, tank vol.

je hebt senders die van 90 ohm naar 0 ohm gaan, maar ook die van 0ohm naar 90 ohm gaan.
je hebt er tussen 25 en 150 ohm (ford usa)
je hebt er tussen 240 ohm en 30 ohm
al die dingen bepalen welke meter en welke spanning je gebruikt.

zonder stabilisator zou het erg zijn. neem weer voorbeeld 1 van 4V naar 8V over de benzinemeter.
bv 12,5V boordspanning, sender op 6,5V (halve tank), meter krijgt 6V en die toont halvvol
boordspanning stijgt naar 14,5V, sender 7V, meter krijgt 7,5V, die toont ineens 3,4de vol.

als benzinemeter en temperatuurmeter schommelen, is de regelaar meestal kapot

fcapri, dit is wel wat off-topic maar op:
https://interface.khm.de/index.php/lab/interfaces-advanced/nonlinear-m…
wordt de (multi)map functie uitgelegd. Dit gebruikte ik om tankvlotters aan te passen aan een willekeurige tankmeter. 1 ingang, 1 uitgang, dus past in een Attiny85.
Gr.Douwe

zoals ik al vermelde, heb je dan stukjes lineair gebied.

zoals in mijn foto hierboven al vermeld, kijk je bv eens naar 10°C.
dan zit je al dicht tegen die bovenste lijn en niet meer tussenin de beide

het probleem is dat je dit voor elk type auto en sensor appart weer allemaal moet gaan uitmeten en programmeren.

die grafiek was namelijk de VW blauwe sensor van een GTI.
mijn 1.3 had de beige sensor, dus een andere grafiek, kan je opnieuw gaan beginnen.

bij een tankvlotter is het veel makkelijker te doen met 2 meetpunten, en die heb ik geautomatiseerd:
ik heb een menu en 1 drukknop gemaakt. je rijdt de auto leeg, zet contact af, drukt de knop in en zet contact aan.
de arduino boot, zit een ingedrukt knop en gaat in zijn menu.
daar heb je 3 instel opties.
nr 1) de tijd onveranderd, +1h en -1h (winter en zomertijd aanpassing)
nr 2) lege tank calibratie, die druk je in dan.

de arduino meet de binaire waarde en steekt deze in zijn 1e variabele voor de map. (bv 241).
je zet contact af en gaat tanken. bv 50liter getankt
je drukt de knop in, en zet contact aan. de eerste 2 opties verander je niet, de 3de druk je nu wel in:
nr 3) volle tank calibratie.

arduino meet hier nu de volle tank, bv 830 en steekt deze in de 2de waarde van de map.
dan vraagt de arduino hoeveel liter je tankte. hier is het dus 50.

in het programma komt nu
liters = map(meting, 830, 241, 50, 0);
830 = volle waarde
241 = lege waarde
50 = 50liter getankt
0 = lege tank.

die 3 waardes worden ook in eeprom geschreven zodat de arduino dit bij elke boot weer inleest.
dergelijk systeem is haast niet te doen voor de hyperbool van een temperatuur sensor.

Edit :
heb probleem gevonden,
maar ik krijg het percentage nog niet in het display,
de code is :
#include <Wire.h> // voor I2C-communicatie
#include <Adafruit_GFX.h> // Adafruit Graphics Library
#include <Adafruit_SSD1306.h> // Adafruit OLED-displaydriver

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
#define OLED_RESET -1

#define MaxTankOhm 310
#define MinTankOhm 5
#define KnownResistor 500

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

uint8_t analogPin = 0;
uint16_t rawVal = 0;
uint16_t VinmV = 5000;

uint16_t R1 = KnownResistor;
uint16_t R2 = 0;
uint32_t buffer = 0;
uint16_t Vout = 0;
uint8_t percentage = 0;

void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialiseer OLED-display met het juiste I2C-adres
display.clearDisplay(); // wis het display
display.setTextSize(2); // kies tekstgrootte
display.setTextColor(WHITE); // kies tekstkleur
}

void loop() {
char percentagemsg[3] = {0};

rawVal = analogRead(analogPin);
buffer = rawVal * VinmV;
Vout = (buffer)/1024.0;
buffer = (VinmV/Vout)-1;
R2 = R1 * buffer;

if(R2 >= MaxTankOhm)
{
R2 = MaxTankOhm;
}
if(R2 <= MinTankOhm)
{
R2 = MinTankOhm;
}

percentage = map(R2, MinTankOhm, MaxTankOhm, 0, 100);
sprintf(percentagemsg,"%d",percentage);

display.setCursor(0,0); // zet cursor aan het begin
display.println("Fuel Level %"); // voeg tekst toe aan display
display.setCursor(1,60); // zet cursor aan het begin
display.println(percentagemsg);
display.display(); // toon de tekst op het display

delay(2000);
}

die ' printin'fuel level%' moet nog iets toevoegen maar ik zou niet weten hoe.

waarom zet je zoveel om naar weerstanden enzo?

rawVal = analogRead(analogPin);

hier krijg je dus een waarde tussen 0 en 1024.
steek die in de map.

trek je tank leeg, meet met de arduino de waarde, bv 210
tank de boel vol, meet met de arduino de waarde, bv 620

percentage = map(rawVal, 210, 620, 0, 100);

meet de arduinu nu 300 als binaire waarde.
dan zal dat 22% zijn

gebruik serial print om je tussenwaardes allemaal eens op je pc te tonen. dan weet je tenminste dat het program goed rekent voor je begint te rommelen op displays. veel kans dat je display ook met integers moet werken en niet met floats

Ik heb de code copy/paste gekregen.
Snap er nog niet(heel) veel van eerlijk gezegt.

heb even wat uitleg tussen *** *** gezet bij alle stappen zodat je het kan begrijpen (NIET in je programmer zetten, dit gaat allemaal fouten geven nu).
heel dat middendeel van omzetten heb je niet nodig, daar berekenen ze de weerstand, wat nutteloos is. jij moet gewoon van meting naar percetage. omrekenen naar spanning, dan omrekenen naar weerstand, dan percentage maken tussen die weerstanden... nutteloze berekeningen die enkel afrondingsfouten bijmaakt.


***hieronder zijn libraries gedefinieert wat je allemaal gebruikt***
#include <Wire.h> // voor I2C-communicatie
#include <Adafruit_GFX.h> // Adafruit Graphics Library
#include <Adafruit_SSD1306.h> // Adafruit OLED-displaydriver

**** scherm instellingen***
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
#define OLED_RESET -1

**** vaste variabelen dat je definieert***
#define MaxTankOhm 310
#define MinTankOhm 5
#define KnownResistor 500


***aanmaken display in je programma***
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

*** nog variabelen***
uint8_t analogPin = 0;
uint16_t rawVal = 0;
uint16_t VinmV = 5000;

uint16_t R1 = KnownResistor;
uint16_t R2 = 0;
uint32_t buffer = 0;
uint16_t Vout = 0;
uint8_t percentage = 0;

*** instellingen in je programma, display starten, geheugen leegmaken, en lettertype instellen***
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialiseer OLED-display met het juiste I2C-adres
display.clearDisplay(); // wis het display
display.setTextSize(2); // kies tekstgrootte
display.setTextColor(WHITE); // kies tekstkleur
}


*** het eigenlijke berekenen, dit gaat altijd door die 'loop'****
void loop() {
char percentagemsg[3] = {0};

rawVal = analogRead(analogPin); ***inlezen waarde op datapin***
buffer = rawVal * VinmV; ***omzetten***
Vout = (buffer)/1024.0; ***omzetten***
buffer = (VinmV/Vout)-1; ***omzetten***
R2 = R1 * buffer; ***omzetten

if(R2 >= MaxTankOhm) *** vast zetten: als je meer meet dan het max, zet je die op max***
{
R2 = MaxTankOhm;
}
if(R2 <= MinTankOhm)
{
R2 = MinTankOhm;
}

***omzetting van de bovenste berekeneingen naar een percentage***
percentage = map(R2, MinTankOhm, MaxTankOhm, 0, 100);
sprintf(percentagemsg,"%d",percentage);

***weergeven op display***
display.setCursor(0,0); // zet cursor aan het begin
display.println("Fuel Level %"); // voeg tekst toe aan display
display.setCursor(1,60); // zet cursor aan het begin
display.println(percentagemsg);
display.display(); // toon de tekst op het display

***2sec wacht om alles opnieuw te doen
delay(2000);
}



Dat maakt het al iets duidelijker ,
maar hoe zou ik de % op het display krijgen ,
ik kan ook via een online-ardiuno kloon kunnen prutsen, zonder dat er wat stuk gaat. maar ik moet op een of andere manier het % 'antwoord' krijgen bij 'fuel level ****'

wat zie je of wat zie je niet?

veranderd dit
display.println(percentagemsg);

eens door
display.println(50);
of
display.println("50");

en zie of je dat wel op het display krijgt
als dit wel werkt, loopt er wat fout in de berekening en is percentagemsg gewoon leeg of een verkeerd formaat

[Bericht gewijzigd door fcapri op (23%)]

3d doosje geprint waar de nano in past , deksel is nog blank maar denk dat ik nog een deksel print waar het displayd mooi inpast.
code is iets aangepast maar werkt goed.
300ohm = 0%
5 ohm= 100%

nu in de auto bouwen morgen en proberen hoe het gaat kwa bochten nemen ,
wellicht nog een kleine condensator over de sender plaatsen dat hij niet heen en weer schommelt .