Hartelijk welkom op ArtimesDIY

ArtimesDIY, uw website voor geknutsel en gebouw in de brede zin van het woord. Hier kunt u lezen, bijhouden en misschien zelf bouwen wat er allemaal in mij opkomt en bij mij op de tafel ligt. Veel lees genot toegewenst.

12volt relais aansluiten op de Arduino
Sunday, 04 March 2012 21:10

Het leuke van een Arduino is dat hij te gebruiken voor een tal van verschillende hobby’s. Vooral het kunnen aan en uit schakelen van verschillende kanalen is een grote uitkomst. Maar vaak is de 5volt weinig ampère niet genoeg te doen wat je graag zou willen. Een goede oplossing is om dan een relais te gebruiken. Heb je nog een paar relais liggen? Dan hierbij een kleine uitleg hoe je ze kunt aansluiten. Hoe bereken je de waardes van de relais en hoe gebruik je deze in je projekt?

 

Eerst moeten we weten hoeveel stroom het relais nodig heeft. (oftewel ampère) De voltage staat zowat altijd op het relais, n anders is ook hier een makkelijk trucje voor om hier achter te komen.

Hiervoor moeten we de spoel van het relais meten. Deze is te herkennen aan het spoel tekentje op het relais zelf. Deze staat vaak aan de zijkant/bovenkant waar een uitleg staat over de belegging van de pinnen. Het kan ook voorkomen dat de onderkant een spoel teken heeft tussen twee pinnen.

Staat dit er niet op gaan we kijken of we deze kunnen vinden. Dit betekend dat je elke pin combinatie moet doormeten. De spoel heeft geen plus of min, dus het maakt niet uit hoe je meet of hoe je + en GND aansluit.

Als je de spoel doormeet moet hier een waarde uitkomen van tussen de 100 en 10.000 Ohm. Schrijf deze waarde op.

We hebben nu een formule nodig om uit te rekenen wat het verbruik van het relais zou moeten zijn. We kennen U (voltage) en R (weerstand) Hiermee kunnen we dan I (ampère) uitrekenen.

Hiervoor gebruiken we de standaard formule.

U = R x I (voltage = weerstand x ampère)

Maar daar we ampère willen weten delen we de formule door R (weerstand) Waardoor we alles kunnen omdraaien.

U = R X I / R

=

I = U/R

Dus in ons voorbeeld zouden we dus krijgen:

I = 12V / 400Ohm

I = 0.03 A => 30 mA

De Arduino geeft ons 5v op max 20mA maar het is dan al slimmer om een transistor te gebruiken. Dus bij 30mA moet we dat zeker doen.

We moeten dus een transistor gaan gebruik om de extra vermogen te leveren. Een van de meest gebruikte hiervoor in europa is de BC549, of anders zijn Amerikaans broertje, de 2N2222. Deze transistor voor nog geen dubbeltje is een erg veel gebruikt onderdeel in veel projecten, dus het is nooit overbodig hier een paar van te hebben liggen.

Om te controleren of hij geschikt is voor wat we willen doen moeten we even de datasheet opzoeken. Een simpele google opdracht “BC549 datasheet” is hiervoor voldoende.

Dan kunnen we controleren of:

-De transistor een NPN is. (Geen PNP gebruiken!!!)

-Ic groter is dan de waarde die we net hebben uitgerekend

-Vceo groter is dan de voeding voltage.

Als deze drie waardes naar tevredenheid zijn moeten we gaan met hoeveel spanning we de transistor gaan voeden zodat deze de juiste stroom uitgeeft om de relais te voeden. Helaas werkt een transistor namelijk niet als een relais door aan of uit te gaan. En moeten we dus kijken dat we hem op de juiste manier “aan” zetten zodat hij zichzelf niet opblaast.

De manier om dit te doen is te kijken naar de hfe-waarde van de transistor. De hfe waarde is een afkorting voor de versterkende factor van de transistor. Ook hier gaan we de datasheet voor gebruiken. Hier staan tabellen op die de verschillende waardes aangeven bij verschillende spanningen. In ons geval van de BC548 wordt aangegeven dat de hfe waarde bij 10v (we willen 12v aansturen en 10 komt het dichtste erbij in de buurt op de tabel) 75 is. Wees gewaarschuwd dat deze waardes niet nauwkeurig zijn. Ze zijn meer een richtlijn.

hfe = Ic / Ib (hfe=uitgaande stroom/ingaande stroom)

Hierdoor kunnen we nu Ib uitrekenen waardoor we weer kunnen bekijken welke weerstand we voor de transistor moeten schakelen. Maar laten we eerst Ib uitrekenen

Hfe = Ic / Ib

=

Ib = Ic / hfe

Dit word dus:

Ib = 0.03 A / 75 (ingangsspanning = uitgangsspanning / hfe)

Ib = 0.0004 A => 0.4 mA

De transistor moet dus met 0.4mA gevoed worden. We hebben 5v uit de Arduino, dus kunnen we uitrekenen welke weerstand we nodig gaan hebben om voor te schakelen.

Volgens de wetten van Ohm:

R = U / I (weerstand = spanning / stroom)

R = 5V / 0.0004 A

R1 = 12500 Ohm

En gezien het allemaal niet erg nauwkeurig is gebruiken we een 10kOhm weerstand.

Al dit gereken levert nu een niet heel erg spannend schema dat hieronder uitgetekend staat. De laatste toevoeging is een diode die ervoor zorgt dat piekspanningen en spanning verschuivingen ondervangen worden als de transistor schakelt. De diode wordt tegen de stroming van de spanning gezet.

 

Op de datasheet is te zien welke pootjes de E, B en C van de transistor zijn.

Het is belangrijk dat de 12v (voeding relais) en de 5v (voeding Arduino) een gedeelde GND (min) hebben.

Wil je het geheel testen zonder de Arduino te gebruiken kun je een 4.6 volt accu (4 oplaadbare batterijen gebruiken waarbij je de min aan GND aansluit en de plus op de plek die aangesloten word op de arduino. Bedenk wel dat de 12v voor het relais dan wel aangesloten hoort te zijn.

Mocht het geheel niet werken loop je schakeling na. Ben je er zeker van dat alles klopt is de weerstand misschien te zwaar en kan je proberen een lichtere te gebruiken. Doe dit met kleine stapjes.

Dan hebben we hier een makkelijke aanpassing van het Blink programma om het te testen.

/*------------------------------------------------------------------------------------
    relais test
    Author: artimesdiy
    Date: 21-2-2012
    Function: Schakelt pin 13 om de 10 seconden aan en uit
*/-----------------------------------------------------------------------------------
int outPin = 13;
void setup()
{
     pinMode(outPin, OUTPUT);
}
void loop()
{
     digitalWrite(outPin, HIGH);
     delay(10000);
     digitalWrite(outPin, LOW);
     delay(10000);
}

 

 

Add comment


Security code
Refresh