Auto binnenverlichting

 

 

 

 

 

 

 

1.             Inleiding

 

 

De binnenverlichting van een auto zonder boordcomputer is vaak zeer eenvoudig: je opent de deur, de binnenverlichting gaat aan, je sluit de deur en het licht gaat weer uit.

 

Het zou heel comfortabel zijn als het licht wat langer blijft branden nadat de deur is gesloten, bijvoorbeeld om je sleutels in het contact te steken.

 

In de handel en op internet vind je talloze schema's en kant-en-klare apparaten hiervoor, maar het apparaat dat hier beschreven wordt heeft een paar interessante eigenschappen die ik nergens anders kon vinden, en die ik echt wou hebben. Vandaar dus zelfbouw

 

Deze schakeling is gebaseerd op de PIC18F2550 microcontroller. Deze chip is eigenlijk een kleine computer die in één enkele chip bevat is, inclusief RAM geheugen, EEPROM, I/O poorten, centrale verwerkingseenheid enz. Als je deze chip koopt, is hij uiteraard leeg en bevat geen enkel programma. Je moet de broncode (zie link onderaan) compileren en de resulterende machinecode naar de chip downloaden. Hierbij kun je gebruik maken van een kleine "programmer" die verbonden wordt met de PC en de chip. Voor meer in detail uitleg van dit soort dingen, kun je best eens naar volgende plaats surfen: Getting started with microcontrollers.

 

Terug naar boven

 

2.             Beschrijving

 

Het gebruik van een microcontroller voor een simpel apparaat als een auto interieurverlichting extender lijkt op het eerste zicht een beetje overkill. Een eenvoudige 555 timer of wat transistors/weerstanden/condensators zouden kunnen volstaan, maar rekening houdend met de eigenschappen die ik aan dit apparaat wou geven, is uiteindelijk het gebruik van een micro-controller de beste keuze gebleken.

 

Deze eigenschappen zijn:

-         Nul verbruik in standby mode

-         Geen enkele wijziging nodig aan de bestaande bedrading, zelfs geen onderbreking van de draad komende van de deurschakelaar naar de lamp of van de lamp naar de +12V. Het apparaat heeft slechts 1 draad nodig om te interfacen met de bestaande binnenverlichting (plus 2 draden voor de voeding)

-         Optioneel is een extra schakelaar aansluitbaar voor manuele bediening, deze bedient dan de lamp met soft start en soft stop (automatisch in- en uit dimmen)

-         Optioneel kan de lamp onmiddellijk uitgeschakeld worden door middel van een externe trigger, vb. wanneer de motor aangezet wordt of het alarm geactiveerd wordt

-         Instelbare uitschakeltijd voor de lamp nadat de autodeuren zijn gesloten, en instelbare tijd hoe lang de lamp dimt tot de uit positie of tot de aan positie

-         Geschikt voor zowel LED verlichting als gloeilampen

 

 

Terug naar boven

 

3.             Gebruik/aansluiting met bestaande binnenverlichting

 

 

Een typische auto binnenverlichting ziet er schematisch meestal zo uit:

 


 

 

 

 

 

 

 

 

 

 

 

 

 

Nadat dit apparaat erop aangesloten wordt, ziet het schema er zo uit:

 

 


 

 

 

Zoals je kan zien is er slechts 1 draad verbonden met de bestaande bedrading, dit kan gebeuren op elk geschikt punt (vb. in de buurt van de lamp, in de buurt van de deurschakelaar of eender waar tussenin).

 

Optioneel kan een extra schakelaar (S2) van het toggle-type toegevoegd worden waarmee de verlichting manueel kan bediend worden (PAD4 in het schema, zie later). Alsook kan een extra signaal van een ander systeem (vb. motor aan, alarm geactiveerd, …) toegevoegd worden aan het apparaat om onmiddellijk de verlichting uit te schakelen (S3, PAD10 in het schema). Dit resulteert in het volgende schema:


 

 

Terug naar boven

 

4.             Schema

 

 


 

Componentenlijst

 

Link naar Eagle schema

 

Terug naar boven

 

5.             Werking

 

(zie schema in vorige paragraaf).

 

Het moeilijkste is dat we slechts één draad hebben als interface met het bestaande binnenverlichtingssysteem, en dat deze draad reeds verbonden is met de lamp en met de deurschakelaar. Hieraan willen we absoluut niets veranderen.

 

Hiervoor gebruiken we relais K1. Dit relais is eigenlijk parallel verbonden met de lamp (blokkeer relais K3 even buiten beschouwing gelaten). Relais K1 wordt gebruikt om de toestand van de lamp in het oog te houden. Dus als de lamp aangaat of uitgaat weten we dit via poort RB0 van de PIC. Zie verderop.

 

Maar laat ons eerst even naar de stroomvoorziening voor het circuit kijken. Omdat we willen dat het verbruik in standby toestand nihil is, worden hiervoor eveneens relais gebruikt. Het spanningsregelaar IC (IC2) is in normale omstandigheden niet verbonden met de 12V van de auto. Zodra de deur geopend wordt, en daardoor de lamp gaat branden en ook relais K1 aangaat, voorziet K1 stroom naar de spanningsregelaar en dus ook naar de PIC. Het eerste dat de PIC softwarematig gaat doen is zichzelf verzekeren van stroom door relais K4 te activeren via poort RA4.

 

Zodra de PIC begint te lopen, doet hij eerst niets anders dan wachten tot de deur gesloten is via relais K1 en input poort RB0. In de software is dit terug te vinden onder “DOOR MODE”. Zodra RB0 aan de grond hangt, weten we dat de deur gesloten is. Het licht gaat hierdoor uit maar onmiddellijk neemt de PIC het van de deurschakelaar over en zet het licht terug aan door een 100% duty-cycle PWM signaal te sturen naar poort RC1 en transistor Q1. Daarna wacht de PIC circa 25 seconden (kan softwarematig gewijzigd worden) en begint dan de lamp zachtjes te dimmen (van 100% naar 0% in 3 seconden). Voordat de dim-cyclus gestart wordt, wordt K3 geactiveerd om te voorkomen dat relais K1 kan zoemen als gevolg van de PWM spanning op zijn spoel (K1 is immers parallel met de lamp verbonden). Zodra het dimmen voltooid is tot 0%, is al het werk gedaan en schakelt de PIC al zijn relais uit, ook K4, en komt het hele apparaat stroomloos te staan.

 

De 25 seconden wacht-cyclus (in “DOOR MODE”) zal onderbroken worden indien RB2 aan de grond hangt door triggering van een extern systeem. In dat geval zal de PIC onmiddellijk beginnen met de dim-cyclus.

 

Een andere manier om het licht aan te zetten is via de manuele schakelaar, dewelke relais K2 bedient. Dit is ongeveer hetzelfde als bij door modus (activeren van de spanningsregelaar om de PIC in te schakelen), maar omdat dit ook input RB1 aan de grond hangt zal de software in een andere modus gaan. In de source code is dit aangeduid als “MANUAL MODE”. In deze modus wordt gezorgd voor een zachte start van de lamp (dimmen van 0% tot 100% in 3 seconden), vervolgens wordt gewacht tot RB1 van de grond af gaat en dan wordt gestart met het terug uit-dimmen van de lamp (van 100% naar 0% in 3 seconden) en vervolgens wordt alles afgezet.

 

 

 

Terug naar boven

 

 

6.             Prototype

 

Het apparaat werd eerst geprototyped op een Dwengo bord en zijn bijbehorende breadboard. Doordat de 4 relais hier niet zomaar in te prikken zijn ziet het geheel er nogal slordig uit:

 

 

Beneden links een auto LED lamp. Beneden rechts de Dwengo programmer.

 

Terug naar boven

 

 

 

 

 

 

 

 

7.             De gedrukte schakeling

 

De print is ontworpen voor SMD componenten.

Ze is enkelzijdig met 8 doorverbindingen. Eigenlijk is ze ontworpen als dubbelzijdige print in Eagle (van Cadsoft) maar ik had geen zin om een dubbelzijdige print te maken dus is de onderkant bedoeld als doorverbindingen (aan de bovenzijde te solderen, daarvoor heb ik vierkantjes overheen de via’s gelegd).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

De grote transistor (IRFZ34N) is de enige niet-SMD component, hiervoor moet je dus 3 gaatjes boren. Het beste is om de transistor aan de onderzijde van de print te steken.

 

PDF bestand (gespiegeld) geschikt om op een transparent af te drukken: Print-layout. Zorg er bij het afdrukken voor geen schaling te gebruiken!

 

PDF bestand die de print toont inclusief componenten. De rode lijnen zijn de koperbanen, de blauwe lijnen stellen de doorverbindingen voor: Print-layout compleet

 

Link naar Eagle pcb

 

 

 

Terug naar boven

 

 

 

 

8.             Het uiteindelijke apparaat

 

 

Op de foto hieronder het is uiteindelijke apparaat te zien. De bedrading naar de buitenwereld: links boven massa en licht-controle, links in het midden +12V, links beneden de groene draad naar de manuele schakelaar. De draad aan de rechterkant is voor de externe trigger.

 

De printplaat had eigenlijk nog een stuk kleiner kunnen zijn als ik er wat langer aan gewerkt had.

 

De witte blokjes zijn de 4 relais. Deze zijn allen van het type Omron G6K-2F 5V SMD type (gepolariseerd).

 

De connecter gemarkeerd met “-+MCD” is de in-circuit programming interface die verbonden wordt met de programmer (connecties: - =, massa + = +5V, M = reset, C = clock, D = data).

 

 

 

 

 

Ingebouwd in een doorschijnend plastic kastje (5 x 7 x 1 cm):

 

 

 

 

Terug naar boven

 

 

 

 

 

 

9.             Programmeren

 

 

De software is geschreven in C (PIC C18 van Microchip).

Het eerste prototype is gemaakt op een Dwengo experimenteerbord (http://www.dwengo.org). Omdat dit bord gebruik maakt van de PIC18F4550, heb ik 2 projecten gemaakt: één voor de PIC18F4550 en één voor de PIC18F2550 (het uiteindelijke apparaat). Het eerste maakt gebruik van de Dwengo bibliotheek om wat debug boodschappen op het Dwengo LCD te tonen, het tweede heeft de Dwengo bibliotheek niet nodig.

 

Het Dwengo bord en bibliotheek zijn niet nodig om dit project te bouwen, enkel de Microchip MPLAB IDE en een PICkit2 compatibele programmer is voldoende.

De software maakt gebruik van de PWM module op de PIC18F2550 om de lamp te dimmen. Dit gebeurt in 64 stappen.

 

Zip bestand dat alle source code, header bestanden en project bestanden bevat: Link naar MPLAB projecten

 

Verbinding met een PIC programmer.

Pad 5-6-7-8-9 moeten (tijdelijk) verbonden worden met een PIC programmer (5=-, 6=+, 7=VPP, 8=clock, 9=data), bijvoorbeeld een PICkit2 compatibele programmer.

 

 

Terug naar boven

 

 

 

10.          Customisaties

 

Als je de software wilt customiseren, neem dan een kijkje naar CarCourtesyLight.c waarin de volgende defines naar wens kunnen veranderd worden:

 

TIMEOUT_SECONDS waarde in seconden: hoe hoger de waarde, hoe langer de extended cyclus duurt (tijd vooraleer de lamp begint met uitdimmen)

SOFT_STOP_DOOR hoe hoger de waarde, hoe langer het duurt om de lamp te dimmen (dim-cyclus tijd)

SOFT_START_MANUAL idem maar voor soft starting (fade in) via de manuele schakelaar

SOFT_STOP_MANUAL idem maar voor soft stop (fade out) via de manuele schakelaar

 

Gamma-tabel:

De software maakt gebruik van een gama tabel (g[] in de source code) om een percentage te vertalen naar een juiste duty cycle voor de lamp die visueel correspondeert met dat percentage. Deze tabel is geschikt voor LEDs, ik weet niet wat het effect is op gloeilampen. Mogelijk moet in dat geval de tabel worden aangepast.

 

 

Terug naar boven

 

 

 

Home                         Terug naar Electronica projecten