Het Volvo cluster aansturen met de Arduino

Eerder kon je lezen dat ik het zelfgebouwde linkercluster fragiel vond en daarom na aankoop van het Volvo cluster dat graag zou plaatsen. Ik vond een manier uit waarop dat mogelijk zou zijn, maar begon als eerste met het maken van de elektrische verbindingen. Sommige onderdelen op de print soldeerde ik daarvoor los.

Omdat het cluster uitgaat van hoofdstroom en een elektrisch circuit dat pas actief wordt zodra de motor loopt, moest ik verbindingen leggen om spanningen te verdelen over pinnen die ik anders zonder reden dubbel uit moest voeren.

Omdat ik ook af wil van de statuslampjes en ze graag vervang door LED’s, besloot ik de printsporen vanaf de vereiste pinnnen te veranderen als ze aan de + zijde schakelden met een gemeenschappelijke massa. Dit werd al gauw een rommelige bedoening waar ik mijn twijfels bij had: ik moest ook de behuizing een klein beetje aanpassen omdat er draadjes zaten op plekken waar deze strak aansloot op de behuizing.

Als eerste zorgde ik ervoor dat de achtergrondverlichting omgevormd kon worden tot LED’s. Een niet altijd betrouwbare oplossing om de twist-lock houders te gebruiken als LED-houders zorgde ervoor dat ik niet al teveel hoefde te solderen. Maar soms maakten de draadjes niet goed contact.

Uiteindelijk kwam ik wel waar ik wilde komen. Maar ik twijfelde over de achtergrondverlichting: deze gaf lelijke vlekken in de meterplaten en leek niet erg egaal. Ik besloot daarom om toch weer een gloeilampje terug te plaatsen (en alle LED’s te verwijderen) om uit te vinden dat dat er nét zo uitzag. En ik maar denken dat het kwam omdat ik een LED had gebruikt…

In juli 2024 had ik ook de statusverlichting bovenin aangesloten. Zonder de behuizing te sluiten teste ik elk “lampje” afzonderlijk, en dat werkte prima. Maar toen sloot ik de behuizing… Even voor de duidelijkheid, dit is hoe de print er met alle aanpassingen uit ziet: een zooitje.

Het was bijna onvermijdelijk dat eenmaal gesloten een probleem optrad en dat deed het: het rechter “master-caution” LED’je brande continue half en brande feller als de waarschuwing knipperde, terwijl het linkerLED’je ervan niks deed. De indicator voor het groot licht brandde altijd. Hier ging iets goed fout en dus verwijderde ik de laatst aangebrachte aanpassing.

Dat loste niks op. Zelfs na bijna alle draadjes, alle doorgesneden printsporen en stukjes kopertape verwijderd te hebben bleef het probleem aan de Master-caution zijde (dit was de eerste aanpassing die ik zo ongeveer maakte in de statusverlichting) bestaan.

Dit vroeg om een zelf geëtste print!

De bovenstaande foto van alle aanpassingen voerde ik in als referentie-afbeelding in KiCad en tekende de hele print na, maar dan nu met alle juiste verbindingen. Omdat de meters bij mij niet meer werkten op 24V maar op 5, kon ik ook toe met een kleinere, kwart-Watt weerstand in de hoofdspoel van elke meter.

Voor de toerentalmeter moest ik een motorstuurprint gebruiken, ik besloot de L298N uit te kiezen, daar had ik namelijk al eerder mee gewerkt. De chip op de print voor deze meter was zeer waarschijnlijk kapot: met alle documentatie die ik kon vinden (en dat was niet veel) sloeg de meter nooit verder dan 45-50 graden uit, wat ik ook deed. De naald bleef een beetje eigenaardig stuiteren rond de 500 toeren.

Met de scoop heb ik de tweede winding van de meter bekeken: uit de controller kwam nooit een signaal, zelfs geen storing. Omdat deze meters werken met een trek-duw opstelling waarbij 1 winding de naald wegduwt en de andere winding eraan trekt (en dit rond de 90 graden omklapt en het proces zich herhaald), is dat samenspel tussen de windingen belangrijk. Het signaal in de onderstaande video komt uit een functiegenerator.

Omdat er een bestaande behuizing in gebruik is, moest de hoofdconnector precies op de juiste plek zitten. Het heeft dan ook vele uren meten gekost, en 2 prints op A4 om me ervan te verzekeren dat de gaatjes juist uitgelijnd waren. Daarna kon het etsen beginnen, en daarna het boren van de gaatjes.

Het bracht voldoening om te zien dat de hoofdconnector zonder enige wrijving in de behuizing viel terwijl deze nog niet gemonteerd was op de nieuwe print. Dat de gaten voor de meters en schroeven ook precies goed zaten was dan ook een enorme opluchting.

Die opluchting werd nog groter toen ik de mescontacten voor de meters (metalen pennetjes met 2 verende plaatjes aan de binnenzijde die een rechthoekige pin aan de onderzijde van elke meter ontvangen) had ingesoldeerd en de meters plaatste: deze ervoeren alleen de weerstand van de mescontacten en niet omdat de boel verkeerd uitgelijnd was! De toerental meter heeft in de foto al zijn nieuwe meterplaat gekregen, die wijkt in kleur een klein beetje af van de rest, maar dat zie je in het echt veel minder.

Toen was het tijd om de LED’s aan te brengen. Was dit beter geweest om op een dubbelzijdige print aan te brengen? Absoluut: het had een hoop gedonder gescheeld, want zoals de LED’s nu op hun pootjes staan is wat…onconventioneel. De 6-pins headerpin ontvanger (waarvan 4 pinnen bedraad zijn) is voor de L298N motorsturing.

Die motorsturing past namelijk zeer mooi in een inkeping in de lichtgeleider van de toerentalmeter. Zo precies dat het er bijna voor gemaakt lijkt. De bekabeling past precies onder de lichtgeleider en zit zo niks anders in de weg. Warm wordt de motorsturing niet: er gaat ongeveer 6,8V in en de hoogste stroom die ik gemeten heb in de meter was zo’n 23 mA. Toen ik alles aangesloten had begon het grote testen. De Master-Caution LED’s knipperden niet: er bleek een gaatje in het printspoor te zitten omdat de transfer niet helemaal juist was overgebracht. Met een tinbruggetje werd dat opgelost.

Hierna kon ik de meterwaardes gaan plotten: omdat de 4 kleine meters worden aangestuurd met een BC547, die een PWM signaal gevoerd krijgt uit de Arduino Mega, gebruik ik de transistors eigenlijk als een regelbare weerstand. Maar omdat het bereik natuurlijk niet lineair is en de meters elk hun eigen tolerantie hebben, horen bij bepaalde PWM waardes bepaalde visuele waardes op de meter.

Dit gold trouwens ook voor de toerentalmeter, waarbij de waarde uit de Arduino bovendien een samenspel vormde met de ingstelde spanning van de DC-DC converter die de toerentalmeter van een afwijkende spanning voorziet. L298N motorstuurchips hebben namelijk een spanningsval van ongeveer 1,6-1,8V. Omdat de meter bij het gebruik van 5V in moeite had met de overgang van elk kwadrant, verhoogde ik de spanning zodat deze 5V aan de meterzijde zou zijn.

Maar uiteindelijk kreeg ik ook dat gedeelte van de code zo precies mogelijk als ik hoopte: 500 toeren betekende ook echt 500 toeren. In de video hieronder zie je de remdrukketel meters werken, net als de benzinemeter (de koelwatermeter valt bijna buiten beeld, maar werkte ook). Het spel om te testen is Euro Truck Simulator 2, en hoor je op de achtergrond het spelgeluid van als ik het gaspedaal in N tot z’n max intrap. De Master Caution waarschuwing slaat op het bereiken van het maximum toerental (met bij langdurig gebruik daarvan een risico op oververhitting, vandaar de waarschuwing). Omdat de meterplaat op bussen is gebaseerd, klopt dat niet helemaal, maar dat neem ik voor lief.

Daarmee is ook dit probleem opgelost! Het enige dat ik in de toekomst nog overweeg is de stuurprint uit dit bericht grotendeels onderbrengen ín het cluster (dat scheelt weer bekabeling en gedoe, en er is ruimte voor).

Scroll naar boven