Flips V70 - 666K - Frankenstein is jarig

Gestart door pcpg.janssen, 15-05-2015 14:51:19

Vorige topic - Volgende topic

0 leden en 2 gasten bekijken dit topic.

StefanCJ

Wow, knap werk zeg! Die laatste dingetjes komen ook wel goed.

pcpg.janssen

#76
Citaat van: pcpg.janssen op 26-06-2015 19:12:34
Helaas niet door de APK gekomen:
CO te hoog op LPG
Stuurhoes rechts is gescheurd
Hoezen van de aandrijfassen zitten niet strak genoeg vast

30-06 - Stuurkogels en stuurhoezen vervangen
Ik had me al voorgenomen om de buitenste stuurkogels te vervangen en dan kon ik direct de hoezen van het stuurhuis meenemen. Vol goede moed stond ik rond 9.30u bij DHZ Buren. Helaas was de baas even weg en kon ik er niet in. Kleine stadswandeling gedaan door Buren en rustig even op het terras gezeten.

Rond 11.00u nogmaals geprobeerd en toen kon ik erin. Auto op de vierkolommer gezet en rustig begonnen met het vastzetten van de hoezen van de aandrijfassen en het opruimen van het rondgespatte homokineetvet. Wat een bende was het onder de auto.

Daarna rustig begonnen aan het losmaken van de stuurkogels. Uiteindelijk geeindigd met de hulp van de monteurs daar, samen met een flinke brander en wat ander zwaar gereedschap om de zaak los te krijgen. Uiteindelijk was het allemaal gelukt.


Helaas viel me op dat de hitteschilden rond de uitlaat wat nat oogden en na kort zoeken vond ik het probleem: de koppeling van de koelslangen die door het schutbord heen richting de kachelradiator liepen, lekte. Dus gebeld naar de dealer in Amerongen om deze koppeling (Volvo 3522035) te bestellen zodat ik dat kan gaan aanpakken. Om te zorgen dat ik toch nog thuis kwam, de slangen uit de koppeling getrokken, een 16mm slang gepakt en goed vastgezet met slangklemmen. Dan maar zonder kachelradiator voor een weekje. Het is goed weer, dus waarom niet.

01-07 - APK deel 2
Om 10.15u had ik de APK ingepland bij de dealer, dus ook meteen de nodige onderdelen opgehaald om de lekkage in het koelsysteem te verhelpen. Auto was goed voor de APK, dus we kunnen verder. Meteen nog even een nieuwe kachelradiator besteld voor de zekerheid: geen idee hoe de oude is en als alles toch open ligt, dan vervang ik het maar meteen. Dan weet ik in ieder geval dat het goed is.

06-07 - Radiatorkoppeling vervangen (deel 1)
Vanavond na het werk rustig gegeten en daarna even snel oude kleren aan gedaan om een begin te maken aan het vervangen van de kachelradiatorkoppeling. Na het demonteren van een deel van het interieur en de kachelradiator, ging de koppeling er vrij makkelijk uit.

Oud en nieuw:


Daar moet de nieuwe komen, anders wordt het koud en nat binnen:


Het is wat priegelen achter het gaspedaal, maar het is te doen. De nieuwe koppeling ging er met ongeveer dezelfde moeite in, dus so far so good. Morgen ga ik verder, want enerzijds ben ik moe en wil ik naar bed en anderzijds geeft met dit een mooi excuus om het boodschappenwagentje van m'n vriendin morgen lekker uit te laten: een 193PK sterke, zilvergrijze Mercedes SLK 230 Kompressor. Ik weet dat het vloeken in de kerk is, maar dat stuurt heerlijk en de automaat is met recht uit een andere klasse dan die in onze Volvo's  :eusa_dance: :evil:.





Tomorrow, life is good :eusa_dance:

drdre


The Volvoboy

Goed bezig! 8)

Die Benz lijkt wel een exacte kopie van degene die hier in de straat staat/stond... (toevallig een import kenteken? :P )
'98 - Volvo V70 2.3 T5 SE - LPi - Garnet Red metallic - 17'' Comets - 687.000km
'00 - Volvo V70 2.4T AWD Nordic - LPG - Venetian Red metallic - 16" Helium - 398.000km
'95 - Volvo 850 2.3 T-5R Aut. - Black Stone Solid - 17" Titans - 382.000km
'96 - Volvo 850 2.3 T-5 Aut. - Dark Olive Pearl - 16" Columba - 395.000km
'96 - Volvo 960 2.5 24V aut. Oxford - Dark Olive Pearl - 16" Uranus - 356.000km

pcpg.janssen

De Benz is inderdaad geimporteerd uit Duitsland in 2002. Is oorspronkelijk van 1997 (dus helaas nog met de infraroodafstandsbediening), maar zit wel goed vol: 5-traps automaat, leer, stoelverwarming, airco in 2 zones enzovoorts. Alles wat je in een goede auto zou verwachten. En het dak dat volledig in de kofferbak valt met een druk op de knop was de afgelopen twee weken wel echt genieten (en snoeihard verbranden in het gebied van de haargrens).

Ik moet wel eerlijk toegeven dat je een stuk uitgeruster uit de Volvo komt dan uit de Benz. Het kan liggen aan die iele Recaro sportstoeltjes, het geluid of de straffe vering in combinatie met de 18 inch wielen. M'n vriendin begon inmiddels toe te geven dat de Volvo inmiddels een fijnere auto begint te worden dan de SLK  ;D

Net nog een setje O-ringen voor de kachelradiator besteld, dus die ga ik vanmiddag nog even ophalen. Vanavond weer lekker verder en morgen hopelijk weer met de Volvo naar het werk.

henry classic v70

Best geinig zo'n SLK cabrio, valt onder de noemer verwende jongetjes speelgoed  :D
615.000 km 2.5 10V '99 lpg Volvo V 70
295.000 km 1.6 16V '05 lpg Citroën C4

pcpg.janssen

In dit geval zit de SLK onder het meisjesspeelgoed. Maar ik zal niet klagen over de "smaak" van het meisje  ;)
Het is een geweldige wagen en ik ben blij dat ze hem heeft uitgezocht.

Vandaag verder gegaan met het aanpakken van de lekkage bij de kachelradiator koppeling. Ik had de koppeling er gisteren al in gekregen, maar verder nog niets gedaan.

En dat was nog wel te zien onder de motorkap: een mooie slang die ervoor zorgde dat er toch koelvloeistof rond kon gaan. Hier zit hij nog vast getaped aan de veerpootbrug en door de bovenste motorsteun heen geregen met een handdoekje erom tegen het schuren.


Geen porum en ook niet ideaal. De 17mm slang was net een maat te groot, waardoor er alsnog lichtjes wat uit lekte merkte ik. Dus haast gemaakt om het vandaag af te krijgen. De nieuwe O-ringen had ik inmiddels opgehaald en ik moet zeggen dat Volvo er wel weer een prijs voor weet te verzinnen: 6,53 euro voor 2 ringetjes (Volvo part 3545586). Maar dan weet je ook zeker dat het voorlopig goed zit en die rust is ook wat waard.


Ook voor de vorm een nieuwe Behr/Hella kachelradiator besteld. Bij het verwijderen van de "oude" bleek dat deze helemaal nog niet zo oud was: productiedatum is 04-04-2011. Dus die zit er nog niet gek lang in. Toch maar vervangen, want dan weet ik zeker dat alles straks klopt, niet lekt en de komende 10 jaar heel blijft.
Links de nieuwe (zwart), rechts de oude (wit).


Pijpjes aan de binnenkant teruggeplaatst met de verse O-ringen.


En vervolgens rustig de kachelradiator teruggezet.


Tot slot rustig het hele systeem ontlucht, 27 keer alle koppelingen gecontroleerd of er toch niet ergens een heel klein beetje koelvloeistof uit kwam, maar na een ruim half uur was alles nog kurkdroog en heb ik het interieur weer netjes in elkaar gezet.

Bij dit alles weer veel hulp gehad aan dit forum in de vorm van een heldere uiteenzetting van Dirk342 en aan deze How-To van het Volvov70forum van forumlid Robbar. Waarvoor wederom mijn dank  :eusa_clap:

Morgen weer lekker droog (en indien gewenst met verwarming) het dagelijkse woon-werk verkeer doen in de rust van de Volvo.

pcpg.janssen

#82
En er is weer nieuws. Net zoals Daanium heb ik een RTI scherm liggen, maar wil ik er wat moderners aan vast knopen dan het originele RTI systeem. De aansturing van de motor en eindschakelaars is een kleine uitdaging, zoals Daan al had uitgevonden, maar ik denk dat ik er ben.

Ik heb zojuist een proof-of-concept gemaakt met een Arduino Nano printje, welke controleert of het contact aan staat, of de gebruiker het scherm omhoog wil hebben (door 12 volt op een bepaalde pin te zetten) en of het scherm al omhoog of omlaag staat met behulp van de originele eindschakelaars die al in het scherm zitten. Dit om te voorkomen dat het motortje door brand.

Benodigdheden:
1x Volvo RTI scherm (Volvo part 9452064)
1x Arduino Nano (+/- 7 euro bij DX.com)
1x Deek-Robot L293D motorcontroller (8 euro bij Raspberrypishop)
4x 10K weerstand
4x 4,7K weerstand
2x 4N25 optocoupler
2x 1N4184 diode

Het schema:


In het hart van het geheel heb ik gekozen voor een Arduino Nano V3.0, omdat deze bijzonder klein (45x18mm) is en makkelijk in de schermbehuizing te verstoppen is. Omdat de Arduino geen 12 volt op de digitale inputs kan verwerken, zal dit verlaagd moeten worden naar 5 volt. Dit gebeurt met behulp van 2 optocouplers (4N25).

De Arduino
De pinbezetting:
D2: Controleert of het contact aan is
D3: Geactiveerd als het scherm omlaag is
D4: Geactiveerd als het scherm omhoog is
D5: Knop om het scherm te activeren
D6: Activeer motor voor scherm omhoog
D7: Activeer motor voor scherm omlaag

Het idee:
Pinnen 3 en 4 controleren of het scherm in de hoogste of laagste stand zitten. Op het moment dat het scherm volledig ingeklapt is, zal de knop (in de code "endbtn_down") ingedrukt zijn en daarvoor zal er op pin 3 5 volt komen te staan. Pin 4 ("endbtn_up") doet hetzelfde, maar dan met het scherm in de hoogste stand.
Op pin 2 staat 5 volt op het moment dat het contact aan is ("engine_running" in de code). Als het contact uit staat, kan het scherm niet geactiveerd worden.
Te slotte zit op pin 5 de knop ("button_up" in de code) aangesloten waarmee de gebruiker het scherm omhoog kan brengen. Zolang er spanning wordt gemeten op pin 5, zal het scherm omhoog blijven. Als de spanning wordt weggenomen en het scherm is nog niet beneden, zal het scherm naar beneden gedraaid worden.

Er zijn dus een paar voorwaarden die voor iedere handeling gecontroleerd worden:
Wat is de positie van het scherm?
Staat het contact aan?
Heeft de gebruiker de knop voor het scherm omhoog geactiveerd?

Als er aan bepaalde combinaties van deze voorwaarden wordt voldaan, zal het Arduino printje een opdracht sturen naar de motorcontroller om zo de motor te besturen welke het scherm omhoog en omlaag brengt.

De motorcontroller?
De Arduino kan de motor niet rechtstreeks aansturen, omdat die het vermogen niet kan leveren. Om schade te voorkomen, gebruik ik een simpele motorcontroller van Deek-Robot op basis van de L293D controller. Op de controller zitten leds op de uitgangen, zodat je kunt zien of ze geactiveerd zijn (handig voor het proof of concept).



De pinbezetting voor de motorcontroller is vrij simpel:
VCC: 5 volt input
GND: Ground
IN1: Aansluiten op Pin 6 van de Arduino
IN2: Aansluiten op Pin 7 van de Arduino
A-: Aansluiten op de ene pool van de motor
A+: Aansluiten op de andere pool van de motor

De code
De Arduino is van zichzelf niet veel meer of minder dan een microcontroller (Atmega 328 in dit geval), welke je vrij kunt programmeren met behulp van de gratis software die je kunt downloaden op www.arduino.com. Zonder programma doet de Arduino niets. Het programmeren is niet gek moeilijk en er is veel over te vinden op de fora van Arduino. Gelukkig maar, want ik heb nog nooit iets geprogrammeerd voor een Atmega microcontroller en ik heb ook weinig ervaring met elektronica.

Na een paar uur aanmodderen en testen kwam het volgende in de Arduino te staan:

//Volvo RTI motor controller for 1999 RTI system installed on
//the S70, V70 classic and C70 untill 2014.
//Requires Arduino Nano + Motorcontroller + 2 optocouplers
//Installation instructions (in Dutch): http://www.volvo850forum.nl/index.php/topic,75682.msg1608670.html#msg1608670
//By P. Janssen, The Netherlands

//Declaration of variables
int motor_forward = 7;
int motor_reverse = 6;
int button_up = 5;
int endbtn_up = 4;
int endbtn_down = 3;
int engine_running = 2;
int engine_value = 0;
int endbtn_upValue = 0;
int endbtn_downValue = 0;
int button_upValue = 0;

// the setup routine runs once when you press reset:
void setup()
{
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);

// initialize the digital pin as an output.
pinMode(motor_forward, OUTPUT);
pinMode(motor_reverse, OUTPUT);

// make the pushbutton's pin an input:
pinMode(button_up, INPUT);
pinMode(endbtn_up, INPUT);
pinMode(endbtn_down, INPUT);
pinMode(engine_running, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
 //Read input pins
   engine_value = digitalRead(engine_running);
   endbtn_upValue = digitalRead(endbtn_up);
   endbtn_downValue = digitalRead(endbtn_down);
   button_upValue = digitalRead(button_up);

 //Serial Print to USB
 //For debug purposes. Disable in production environment.
   Serial.print("Engine Running:");Serial.println(engine_value);
   Serial.print("\tEnd Button up:");Serial.println(endbtn_upValue);
   Serial.print("\tEnd Button down 3:");Serial.println(endbtn_downValue);
   Serial.print("\tButton up:");Serial.println(button_upValue);

 //Set default: Display motor is off
 digitalWrite(motor_forward,LOW); //Pin D6 will be LOW
 digitalWrite(motor_reverse,LOW); //Pin D7 will be LOW

 //If current state is NOT up and contact is on/engine is running and the switch for the display is ON, bring display up.
 if ((engine_value == HIGH) && (button_upValue == HIGH) && (endbtn_upValue == LOW)) {
   digitalWrite(motor_forward,HIGH); //Pin D6 will be HIGH
   digitalWrite(motor_reverse,LOW); //Pin D7 will be LOW
 }
 
 //If current state is up and contact is off/engine is NOT running, bring display down.
 else if ((engine_value == LOW) && (button_upValue == HIGH) && (endbtn_downValue == LOW)) {
   digitalWrite(motor_forward,LOW); //Pin D6 will be LOW
   digitalWrite(motor_reverse,HIGH); //Pin D7 will be HIGH
 }
 
 //If current state is NOT down and contact is on/engine is running and the switch for the display is OFF, bring display down.
 else if ((engine_value == HIGH) && (button_upValue == LOW) && (endbtn_downValue == LOW)) {
   digitalWrite(motor_forward,LOW); //Pin D6 will be HIGH
   digitalWrite(motor_reverse,HIGH); //Pin D7 will be LOW
 }
 
 //If nothing is true, don't move the screen.
 else {
   digitalWrite(motor_forward,LOW); //Pin D6 will be LOW
   digitalWrite(motor_reverse,LOW); //Pin D7 will be LOW
 }  
}



De regels die beginnen met "//" zijn commentaar en is geen echte code. Dit is gedaan om de code enigszins begrijpelijk te maken. En omdat programmeren nog het meeste op Engels lijkt, heb ik ook het commentaar maar in het Engels gedaan.

Ik hoop dat deze uitleg een beetje begrijpelijk is voor degenen die het willen proberen. Zoals gezegd ben ik geen programmeur of elektro-technicus, maar als je vragen hebt mag je ze stellen. Ik zal ze proberen te beantwoorden.

Ook moet ik toegeven dat het tot nu toe enkel een proof-of-concept is. Ik heb de schakeling nog niet opgebouwd in het scherm en ik weet alleen dat de motorcontroller correct bestuurd wordt door de Arduino op basis van de gevraagde inputs. Ik weet nog niet hoe de grijze en de bruine draad van de motor moeten worden aangesloten op de motorcontroller.

Maar het gaat hard, dus ik hoop de komende avonden hier nog een paar uurtjes in te kunnen stoppen en het uiteindelijke product aan jullie te kunnen presenteren.

daanium

Super cool om te lezen wat je bedacht hebt.
Zoals je waarschijnlijk al wist, zit ik al een paar weken (of zelfs maanden :-[) te klooien met m'n printje.
Vol enthousiasme wil ik eigenlijk direct 1-op-1 jou schakeling overnemen, zodat ik mijn Tomtom project ook eens af kan ronden :eusa_whistle:
Maar voor ik ga bestellen, wacht ik even jou ervaringen af.
Proof of concept liep bij mij goed, tot ik de motor aan ging sluiten, toen deed die toch weer dingen die ik niet wilde.
Hopelijk (én waarschijnlijk) gaat het bij jou gewoon goed, ziet er namelijk goed uit :eusa_clap:
Mannen blijven kinderen, alleen het speelgoed wordt duurder.
Check hier mijn BLOG en WhitePolestar
[ S60 Polestar 3.0 T6 MY2015] + [ S70 ex-KLPD 2.4-G3 ]

pcpg.janssen

#84
Het is even stil geweest. Wel een hoop gedaan, weinig foto's gemaakt en niet heel veel interessants te vertellen... Tot nu toe.

Vorig weekend heb ik in alle rust de accu- en massakabels vanaf de accu vervangen door verse exemplaren. En toen kwam ik te zitten met twee vreemde dingen, te beginnen met een startprobleem

Na van alles te hebben geprobeerd, uiteindelijk een vervangende startmotor gekocht en die eens geprobeerd. De oude had z'n beste tijd gehad en dat was ook te zien:


Het tweede probleem is dat de auto nu prima loopt op benzine maar beroerd op LPG. Ik heb een AEB Leonardo systeem (=lambda gestuurd) in de wagen zitten met een OMVL verdamper. De motor slaat compleet af op het moment dat ik het gas los laat en dat is vreemd. Dus de computer eraan gehangen en een stukje gaan rijden. Op benzine is alles normaal: lambda pendelt mooi heen en weer, toerental is correct en alles gaat goed. Op LPG wordt het verhaal anders: het toerental klopt en in het begin lijkt de lambdasonde normaal gedrag te vertonen. Echter, als je redelijk gas geeft (tot 4000 RPM) en daarna het gaspedaal helemaal los laat, valt de lambdawaarde naar 0 volt en slaat uiteindelijk de motor af. Geen idee wat dit kan zijn, dus als iemand een suggestie heeft, hoor ik het graag.

Verder kwam ik tot de conclusie dat ik een slangetje overhoud in de luchtslang (Volvo part 9179301) tussen het luchtfilterhuis en het gasklephuis. Aan deze lichtslang zitten 2 pijpjes. De dikke gaat naar de carterontluchting, maar waar die dunne voor is? Zie hier het bewuste slangetje:


Mijn hoop is weer op jullie allen gevestigd  :eusa_pray:
(no presure)

Ik hoop trouwens deze week (met gepaste trots) het RTI schermpje te kunnen presenteren. Met wat finetunen werkt alles nu goed, maar de ruimte is zo beperkt dat het inbouwen toch een kleine uitdaging blijkt.

razorx

Verdorie, vergeet ik weer bij te lezen. Niet alleen in het topic van anderen maar ook dit topic.
Leuk wat je met die Arduino doet. Ook een optie als oplossing voor Daan.

Ex roffel Fred had een OMVL Leonardo installatie. Het probleem dat je beschrijft komt me heel bekend voor.
Ga niet aan de stelschroefjes van de verdamper morrelen al kan je dit foute gedrag enigszins compenseren.

Als deze wagen het probleem voorheen niet had is je verdamper hoogstwaarschijnlijk op. Mijn ervaring is dat een OMVL verdamper ongeveer vier jaar mee gaat zeg 70 á 80dkm in ons geval. revisie vind ik zinloos. Ze kosten bij bedrijven als Luccio nog geen 119,- incl. Alweer een tijdje terug. Roffel Fred leeft overigens niet meer. ;(

pcpg.janssen

Weer wat kleine dingen gedaan gisteren en vandaag. Een dashboardkastje met houtinleg gemonteerd (uiteraard met chromen greepje), dus binnenin ziet het er weer wat mooier uit.

Verder ben ik al enige tijd bezig met de queste voor een (vrijwel) perfect schakelende AW50-42 automaat. De bak is 4000km geleden voorzien van nieuwe vloeistof, alle motorsteunen zijn vervangen en ook de bak is vervangen voor een model met 200.000km minder ervaring, maar nog altijd is het schakelen redelijk voelbaar. Ook de massakabel (en accukabel) heb ik twee weken geleden vervangen om te zien of er mogelijk kleine storingen optraden in de communicatie met de bak. Helaas geen verbetering
Ik las afgelopen week bij stom toeval iets over de elektronica van de bak en het viel me op dat ik een drietal condensatoren zag op de bak ecu. Condensatoren worden slechter over tijd en de temperaturen onder de motorkap zullen dit proces niet vertragen. Dus ik heb drie nieuwe condensatoren van 63V/47uF uit de la getrokken en de bak ecu open gemaakt. Eerst voorzichtig een deel van de coating verwijderd, daarna de oude condensatoren voorzichtig los gesoldeerd en de nieuwe erop gezet.

Het resultaat:


De bak lijkt iets vlotter/scherper te schakelen, maar dat kan ook tussen m'n oren zitten. Het was helaas niet de verbetering waar ik op hoopte. Volgende pogingen: nieuwe TPS en experimenteren met JWS-3309 ATF in plaats van de standaard Dex III.

Ik ben er trouwens nog niet uit, waar dat slangetje aan m'n luchtfilterslang voor is, dus mochten er nog mensen zijn met een idee dan ben ik hier nog altijd naar op zoek!

pcpg.janssen

#87
Eindelijk is het zo ver: Het RTI beeldscherm zit er in en werkt! Ik heb wat kleine wijzigingen gemaakt in de manier van aansluiten en aansturen, dus hieronder een zo volledig mogelijke beschrijving van wat ik gedaan/gebruikt heb:

1x Volvo RTI scherm (Volvo part 9452064)
1x Arduino Nano (+/- 7 euro bij DX.com)
1x Deek-Robot L293D motorcontroller (8 euro bij Raspberrypishop)
4x 10K weerstand
4x 4,7K weerstand
2x 4N25 optocoupler
2x 1N4184 diode
5 Inch LCD met driverboard (ZJ050NA-08C display met KYV-N2 V1 driver board)
12V naar 5V step-down converter (bijvoorbeeld deze)
Verlengkabel voor de LCD module
Koppelstukje voor deze verlengkabel

Eerst heb ik het beeldscherm ingebouwd in de originele behuizing. Zowel het driverboard als het LCD passen prima samen in de behuizing. Ook de knoppen voor het on screen display heb ik ingebouwd, maar dat is niet echt noodzakelijk. Zie hier een eerste opzet:


Achter het scherm zit een stuk ruimte met onder andere de motor die het scherm omhoog en omlaag brengt. Dit gedeelte wordt nu aangestuurd met een Arduino Nano en een motordriver board in de vorm van de Deek Robot L293D driver.

De "grote" verandering zit hem er nu in dat ik heb besloten om de functie die het scherm activeert maar via 1 kabel te laten verlopen. Dit scheelt ook 1 optocoupler en is daardoor niet alleen iets goedkoper, maar ook iets compacter waardoor je alle elektronica wat makkelijker kwijt kan in de behuizing.

Ik heb de accesoire stekker van Volvo gebruikt om het scherm van spanning te voorzien. De constante 12 volt lijn drijft de 5V Step Down converter aan. In de geschakelde 12 volt lijn heb ik een schakelaar gezet die bepaald of het scherm omhoog mag (waarbij er dus spanning wordt gegeven) of niet. Aan deze geschakelde 12 volt lijn, zitten de octocoupler en de spanning voor het scherm zelf. Op deze manier gaat het scherm dus uit als het wordt ingeklapt en wordt er niet onnodig energie omgezet in warmte.

Het schema:


De Arduino
De pinbezetting:
D2: Controleert of de gebruiker het scherm omhoog wilt
D3: Geactiveerd als het scherm omlaag is
D4: Geactiveerd als het scherm omhoog is
D6: Activeer motor voor scherm omhoog
D7: Activeer motor voor scherm omlaag

Het idee:
Pinnen 3 en 4 controleren of het scherm in de hoogste of laagste stand zitten. Op het moment dat het scherm volledig ingeklapt is, zal de knop (in de code "endbtn_down") ingedrukt zijn en daarvoor zal er op pin 3 5 volt komen te staan. Pin 4 ("endbtn_up") doet hetzelfde, maar dan met het scherm in de hoogste stand.
Op pin 2 staat 5 volt op het moment dat het contact aan is en de gebruiker de schakelaar voor het scherm omhoog heeft geactiveerd ("engine_running" in de code). Als het contact uit staat, kan het scherm niet geactiveerd worden. Als de schakelaar niet geactiveerd is, zal het scherm ook niet omhoog komen.

Er zijn dus een paar voorwaarden die voor iedere handeling gecontroleerd worden:
Wat is de positie van het scherm?
Wil de gebruiker het scherm geactiveerd hebben EN staat het contact op 2?

De motorcontroller
De Arduino kan de motor niet rechtstreeks aansturen, omdat die het vermogen niet kan leveren. Om schade te voorkomen, gebruik ik een simpele motorcontroller van Deek-Robot op basis van de L293D controller. Op de controller zitten leds op de uitgangen, zodat je kunt zien of ze geactiveerd zijn (handig voor het proof of concept).



De pinbezetting voor de motorcontroller is vrij simpel:
VCC: 5 volt input
GND: Ground
IN1: Aansluiten op Pin 6 van de Arduino
IN2: Aansluiten op Pin 7 van de Arduino
A-: Aansluiten op de ene pool van de motor
A+: Aansluiten op de andere pool van de motor

De code
De Arduino is van zichzelf niet veel meer of minder dan een microcontroller (Atmega 328 in dit geval), welke je vrij kunt programmeren met behulp van de gratis software die je kunt downloaden op www.arduino.com. Zonder programma doet de Arduino niets. Het programmeren is niet gek moeilijk en er is veel over te vinden op de fora van Arduino.

Dit is de code die nu in mijn scherm zit:

//Volvo RTI motor controller for 1999 RTI system installed on
//the S70, V70 classic and C70 untill 2004.
//Requires Arduino Nano + Motorcontroller + 1 optocouplers
//Installation instructions (in Dutch): http://www.volvo850forum.nl/index.php/topic,75682.msg1608670.html#msg1608670
//By P. Janssen, The Netherlands

//Declaration of variables
int motor_forward = 7;
int motor_reverse = 6;
int button_up = 2;
int endbtn_up = 3;
int endbtn_down = 4;
int engine_value = 0;
int endbtn_upValue = 0;
int endbtn_downValue = 0;
int button_upValue = 0;

// the setup routine runs once when you press reset:
void setup()
{
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);

// initialize the digital pin as an output.
pinMode(motor_forward, OUTPUT);
pinMode(motor_reverse, OUTPUT);

// make the pushbutton's pin an input:
pinMode(button_up, INPUT);
pinMode(endbtn_up, INPUT);
pinMode(endbtn_down, INPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  //Read input pins
    endbtn_upValue = digitalRead(endbtn_up);
    endbtn_downValue = digitalRead(endbtn_down);
    button_upValue = digitalRead(button_up);

  //Serial Print to USB
  //For debug purposes. Only works when connected to USB with Arduino software.
    Serial.print("\tEnd Button up:");Serial.println(endbtn_upValue);
    Serial.print("\tEnd Button down:");Serial.println(endbtn_downValue);
    Serial.print("\tButton up:");Serial.println(button_upValue);

  //Set default: Display motor is off
  digitalWrite(motor_forward,LOW); //Pin D6 will be LOW
  digitalWrite(motor_reverse,LOW); //Pin D7 will be LOW

  //If current state is NOT up and the switch for the display is ON, bring display up.
  if ((endbtn_upValue == LOW) && (button_upValue == HIGH)) {
    digitalWrite(motor_forward,HIGH); //Pin D6 will be HIGH
    digitalWrite(motor_reverse,LOW); //Pin D7 will be LOW
  }
 
  //If current state is NOT down and the switch for the display is OFF, bring display down.
  else if ((endbtn_downValue == LOW) && (button_upValue == LOW)) {
    digitalWrite(motor_forward,LOW); //Pin D6 will be HIGH
    digitalWrite(motor_reverse,HIGH); //Pin D7 will be LOW
  }
 
  //If nothing is true, don't move the screen.
  else {
    digitalWrite(motor_forward,LOW); //Pin D6 will be LOW
    digitalWrite(motor_reverse,LOW); //Pin D7 will be LOW
  } 
}


De regels die beginnen met "//" zijn commentaar en is geen echte code. Dit is gedaan om de code enigszins begrijpelijk te maken. En omdat programmeren nog het meeste op Engels lijkt, heb ik ook het commentaar maar in het Engels gedaan.

De laatste stukjes electronica
De 5 Volt Stepdown converter en de optocoupler kreeg ik helaas niet meer in de behuizing. Ik heb daarom het printje met de originele stekker afgezaagd en de Stepdown en optocoupler gemonteerd in de holte aan de onderkant van het scherm die nu was vrijgekomen. Voor wat betreft de inbouwdiepte veroorzaakt dit geen problemen. Wel is het zo dat alle componenten toch wat interferentie veroorzaken, dus ik heb m'n GPS antenne's moeten verplaatsen. Ze zitten nu gezellig samen voor m'n linker tweeter. Het GPS bereik is nu weer prima in orde.
Alle elektronica komt binnen via de originele stekker. Het composiet video signaal had ik ook hierlangs willen laten lopen, maar dit heb ik uiteindelijk niet meer gedaan: het voegt niet veel toe en nu kan ik mooi tot aan de displaydriver een 75 Ohm kabel gebruiken zodat het beeld nog een beetje toonbaar blijft.

VDO Dayton navigatie
Het scherm werkt prima met m'n VDO Dayton PC5200 navigatiecomputer. Ik laat de VDO Dayton een composiet signaal uitsturen, welke gelukkig standaard te vinden in op de display kabel van deze navigatiecomputers op pin 10. Als aarding kun je pin 7 of 9 gebruiken:

Dit schema kun je (volgens mij) gebruiken voor alle PC5X00 navigatiecomputers.

Het resultaat
Dit is het gedeelte dat me met trots vervulde toen ik afgelopen week alles had ingebouwd.

Klepje dicht:


Systeem opstarten:


Klaar voor gebruik:


Om te zorgen dat ik ook de stem van de navigatie goed kan horen, heb ik afgelopen zaterdag een speaker in m'n hoofdsteun gebouwd en de kabel door de stoel naar beneden gevoerd. De navigatiecomputer heeft een standaard 3,5mm jack ingang waar de speaker rechtstreeks op aangesloten kan worden.

Het ziet er nu helemaal origineel uit en het werkt goed. Gisteren heerlijk met een origineel ogend navigatiesysteem naar Mysteryland gereden.

Nu nog een keer uitzoeken hoe ik m'n navigatiecomputer uitgelegd krijg dat het huidige scherm geen breedbeeldscherm meer is. Dan is het helemaal af.

V70 400K+

Gaaf gedaan. Compliment ziet er fantastisch uit :eusa_clap:

Privé V70 2.4-20V - 1999 - Aut5 90.000-470.000 defect
Zakelijk Jaguar XE
Privé V70 D5 Geartronic 2004 412.000
Privé 850R Blackstone

razorx