arduino darlington array aansturen weerstand

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mookie
  • Registratie: Juni 2002
  • Laatst online: 15-06 08:37

mookie

Heerlijk Helder

Topicstarter
Ik heb een velleman K6714-16
Dat is een 16 relais kaart die via open collector of met cmos/ttl aangestuurd kan worden.

Omdat ik hem via de arduino aan wil sturen heb ik er de ULN2803 opgezet (zoals voorgeschreven uit de handleiding) zodat ik met 5 volt (ttl) de poort op de ULN kan aansturen die dan vervolgens weer 12volt sinked voor de relais.

Mijn grote vraag:
Als ik vanuit de gewone digital outputs van de arduino (mega) de 5 volt wil laten komen op de darlington poort, moet er dan nog een weerstand tussen de arduino output en de darlington input?
Als ik op internet rondzoek dan zie ik verschillende resultaten.
Sommige doen er niets tussen, sommige hangen er b.v. 330ohm tussen, hoewel die wellicht al te zwaar is?

Bij de specs van de ULN2083 staat als maximum rating:
Output Voltage VO 50 V
Input Voltage (Except ULN2801) VI 30 V
Collector Current – Continuous IC 500 mA
Base Current – Continuous IB 25 mA

Maar die maximum base current van 25mA, moet ik dan b.v. een 330ohm weerstandje er tussen hangen zodat ik op 15mA uitkom of zit er iets in wat dat uit zichzelf regelt?

mookie


Acties:
  • 0 Henk 'm!

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 29-07 13:17

SA007

Moderator Tweaking
Voor deze relaiskaart hoeft er niks tussen de Arduino en de relaiskaart geplaatst te worden.

Die draadjes mag je 1 op 1 doorverbinden.

Acties:
  • 0 Henk 'm!

  • mookie
  • Registratie: Juni 2002
  • Laatst online: 15-06 08:37

mookie

Heerlijk Helder

Topicstarter
En op het moment dat ik een ander kaartje heb wat door middel van die ULN2803 op ttl nivo aangestuurd kan worden?

Hoef ik per definitie nooit een weerstand tussen de output van de arduino en de input van die ULN2803 te plaatsen, of hoeft dat alleen niet in dit specifieke geval met deze relais kaart?

mookie


Acties:
  • 0 Henk 'm!

  • SA007
  • Registratie: Oktober 2002
  • Laatst online: 29-07 13:17

SA007

Moderator Tweaking
De input van een ULN2803 of vergelijkbare chip hoef je inderdaad niet te voorzien van een weerstandje als je deze met een microcontroller verbind.

Acties:
  • 0 Henk 'm!

  • christoforius
  • Registratie: Juli 2008
  • Laatst online: 07-11-2021
Een ULN2803 heeft al weerstanden ingebouwd zitten dus daar hoef je niks aan te doen tenzijn de aangelegde spanning (inputs) niet hoger is dan 5V.

Acties:
  • 0 Henk 'm!

  • mookie
  • Registratie: Juni 2002
  • Laatst online: 15-06 08:37

mookie

Heerlijk Helder

Topicstarter
Ik heb nog 1 vraagje over deze uln2803a

In de datasheet staat:
Base Current – Continuous: 25 mA

Als ik vanuit de arduino 5volt op een input zet, loopt er dan ook daadwerkelijk 25mA doorheen?
De arduino kan max 40mA per poort hebben, maar tegelijkertijd ook maar 200mA door alle poorten gezamenlijk hebben.

Ik heb een arduino mega.
Stel dat ik 40 digitale poorten hoog zet om zodoende 40 poorten op de uln2803 te activeren, gaat er dan teveel stroom lopen (40x25mA=1A)?

Ik hoop dat die 25 iets anders betekent en dat ik er gewoon heel veel kan aansturen, maar als dat niet zo is, wat zou ik dan kunnen gebruiken?

mookie


Acties:
  • 0 Henk 'm!

  • Sprite_tm
  • Registratie: September 2002
  • Laatst online: 17-07 07:27

Sprite_tm

Semi-Chinees

In de datasheet staat op pagina 2 het equivalent-schema van zo'n poort. Je kan daar zien dat er een weerstand van 2.7K voor de basis hangt. (Dat staat trouwens ook wel eerder in de tekst.) Als je ervanuitgaat dat over de basis-emittor-overgang van het geheel zo'n 1.4V staat (0.7V voor elke tor) zou je door die 2.7K weerstand bij een 5V ingangsspanning (5V-1.4V)/2700ohm=1.3mA trekken.

Ik kan zo niet vinden waar je die 25mA vandaangetrokken heb, maar ik denk dat dat een absolute maximum is: weet je (door de ingangsspanning heel veel te verhogen) meer dan 25mA door het geheel te drukken, gaat 'ie kapot.

TL;DR: 40 poorten zouden dus maar zo'n 53mA trekken wat prima moet lukken.

Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog


Acties:
  • 0 Henk 'm!

  • mookie
  • Registratie: Juni 2002
  • Laatst online: 15-06 08:37

mookie

Heerlijk Helder

Topicstarter
De 25mA kwam uit deze sheet:
http://www.datasheetcatalog.org/datasheets/90/366828_DS.pdf

Heb inderdaad er overheen gelezen (heb de sheet al zo vaak zitten bekijken).
Boven die getallen staat max ratings, mijn fout.

Heb die 2k7 overigens wel gezien, maar ik zie ook een 7k2 en 3k en ben geen electro wonder dus ik wist niet hoe je e.e.a. moest berekenen.

Bedankt!

mookie


Acties:
  • 0 Henk 'm!

  • mookie
  • Registratie: Juni 2002
  • Laatst online: 15-06 08:37

mookie

Heerlijk Helder

Topicstarter
Ik wilde in eerste instantie deze uln2803 gebruiken om hogere voltages te kunnen schakelen dan de arduino kan leveren.
Echter heb ik net een toepassing waarbij ik telkens van de acht relais slechts 1 relais hoef te bekrachtigen.
Nou kwam ik wat tegen over BCD to decimal IC's en dat leek me wel interessant voor mijn specifieke geval.

Niet alleen kan ik dan veel meer dingen aansturen omdat er pinnen op de arduino vrij blijven, maar ik heb ook aanzienlijk minder kabels nodig.
Daarmee zou ik met drie daden acht relais kunnen sturen.
Slechts 1 tegelijkertijd, maar dat is geen probleem.
Of met vier draden ook 10 maar ik heb er toevallig precies 8 nodig.
Beetje standaard multiplexer idee.

Bijvoorbeeld de 4028:
http://www.miplaza.com/gr..._files/HEF4028B_CNV_3.pdf
Het mooiste nog eraan is dat ik b.v. de vierde input (A3) high kan maken waardoor alle uitgangen (o0-o7) low gaan.
Dan kan ik mooi voordat ik een ander relais wil inschakelen even A3 hoog maken, A0-A2 in de juiste stand zetten, even wachten en daarna A3 weer laag maken zodat ik niet in een tussenstand kan geraken.

Maar kan ik zo'n ding op de arduino aansluiten?

Ik heb al wel vele andere aansluitschema's gevonden maar dat was telkens voor een bcd to 7 segment.

Ook vond ik nog de 74LS145 BCD to Dec:
http://www.datasheetcatalog.org/datasheets/105/375397_DS.pdf
Wellicht is die makkelijker, er staat in de datasheet in ieder geval vermeld "fully compatible with all TTL families" wat mij het gevoel geeft dat ik hem zo aan die arduino pinnen kan hangen, net als de ULN2803.

Kan iemand mij vertellen hoe ik de 4028 of die 74LS145 (of een andere als er een nog betere/makkelijkere is) aan de arduino kan aansluiten?

Wat is overigens het maximale voltage/amperage dat die dingen kunnen schakelen?

Het lijkt een beetje of ik de enige ben die dit probeerd, ik kan er helemaal niets over vinden.
Als iemand een link weet naar een nuttig artikel of me gewoon uit kan leggen hoe het wel of niet kan dan graag. Ik ben niet heel bekend met elektronica en heb nogal wat moeite om die datasheets te begrijpen.

mookie


Acties:
  • 0 Henk 'm!

  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09

mad_max234

AMD Athlon II M320

Gewoon een 8bit shift register, de hc74595 is veel over te vinden icm met arduino. Gebruik ze zelf ook om de digitale pinnen uit te breiden.

Met 1 byte kan je alles aansturen. Wat ik meestal gebruik is B00000000 bijvoorbeeld dat is alle pinnen laag, en kan je met bitwise OR of AND de bytes samenvoegen. En zo nieuwe status verzenden.

Heb even snel een voorbeeldje gemaakt, de zendbyte is dan de variable die je moet verzenden naar de shiftregister met shiftout

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//shift reg. out
int latchPin = 10;
int clockPin = 9;
int dataPin = 11;
byte data = 0; 

byte relais1 = B00000000; 
byte relais2 = B00000000;
byte zendbyte = B0000000;

void setup()
{
  pinMode(latchPin, OUTPUT);
}

void loop() {
if (var == 1) // schakeld relais 1 in
relais1 = B00001000; // port y6 van de shift register

if (var == 2) // schakeld relais 2 in
relais2 = B00000100;  //port y7 van de shift register

if (var == 3) // schakeld relais 1 uit
relais1 = B00000000; // port y6 van de shift register

if (var == 4) // schakeld relais 2 uit
relais2 = B00000000;  //port y7 van de shift register

zendbyte = B00000000; // reset de vorige zendbyte 
zendbyte = relais1 || relais2;  // samenvoegen van de twee bytes

  digitalWrite(latchPin, 0); 
  shiftOut(dataPin, clockPin, zendbyte); //verzend de byte
  digitalWrite(latchPin, 1);

}

Code heb ik niet getest, gewoon even snel in elkaar gezet, en deel knip en plak werk, zoals de variabele van latchpin. Een beetje van Magie arduino en een beetje van mijzelf. :P

http://www.arduino.cc/playground/Code/BitMath
http://www.arduino.cc/en/Tutorial/ShiftOut

En gebruik 4051 om analoog pinnen uit et breiden, je kan dan A0 t/m A2 gebruiken om pin selectie en A3 gebruik je om analoog doro de lussen, zo kan je van 4 analoog pinnen 8 analoog maken. Je preek de analoog aan als digitaal pin via pin 14 t/m 19. :)

Edit/

Even vergeten te vermelden mijn relais blok heeft een eigen voeding en is optisch gescheiden van low voltage circuit en na die optocoupler word het versterkt door kleine transistor, waar een base weerstand de stroom regelt.

[ Voor 10% gewijzigd door mad_max234 op 24-11-2010 00:09 ]

-Andere hobby- -


Acties:
  • 0 Henk 'm!

  • mookie
  • Registratie: Juni 2002
  • Laatst online: 15-06 08:37

mookie

Heerlijk Helder

Topicstarter
Kijk, dit is helemaal geweldig.
Heb ook zo'n beetje op alles gezocht behalve "arduino multiplexer", anders had ik dat kant en klare voorbeeld met die 4051 zo gevonden.... weer verkeerd gezocht.

Maar dat shiftout register is nog veel beter... had ik nog nooit van gehoord.

bedankt!

mookie


  • mad_max234
  • Registratie: September 2003
  • Laatst online: 07-02 11:09

mad_max234

AMD Athlon II M320

zit trouwens een foutje in de code, zie ik nu.

zendbyte = relais1 || relais2; moet zijn zendbyte = relais1 | relais2;

En als je iets na de shift register wilt hangen dat te veel stroom trekt pak je een transistor(bijvoorbeeld: 2n3904) en versterk je de boel.

Edit/
En dit stukje is overbodig: byte data = 0; heb ik per ongeluk mee gekopieerd. :P

[ Voor 15% gewijzigd door mad_max234 op 25-11-2010 02:05 ]

-Andere hobby- -

Pagina: 1