Forum: Mikrocontroller und Digitale Elektronik mehrer LEDs parallel an einen Arduino Mega


von Marie (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Forum,

mein Name ist Marie aus Vechta. Ich bin hier "NEU" und habe nicht 
wirklich viel Ahnung, was Elektrik angeht. Ich möchte aber folgende 
Schaltung irgendwie realisieren, vllt. kann mir ein wenig unter die Arme 
gegriffen werden.

Mein Porjekt ist eigentlich schnell erklärt, ich möchte mehrere LEDs 
(ca. 30 Stück, alle in ROT) einzeln über einen Arduino Mega steuern. Sie 
sollten alle unterschiedlich blinken (werrden also unterschiedlich über 
den Mega angesteuert). Aber wie muss ich die Schaltung richtig aufbauen, 
um so viele LEDs über den Arduino steuern zu können.

Ich habe mir schon etwas ausgedacht (als NICHTFACHMANN) und es 
funktioniert auch so weit, aber ein Problem habe ich noch. Wenn einige 
LEDs blinken, werden die anderen LEDs mal HELL und mal weniger HELL. So 
zusagen eine Spannungsschwankung evtl.? Wie bekomme ich es so hin, dass 
ich nicht die Schwankungen sehe?

Als Spannungseingang wird ein normales Steckernetzteil mit 12v/1A 
benutz, was dann über einen Schaltregler DC/DC 5V/0,5A  weitere 2 
Transistoren BC327-40 ansteuert und über einen gemeinsamen + an die LEDs 
geht. Die Transistoren sind für "DIMMEN" und "EIN/AUS". Wie gesagt, es 
ist mein erster Versuch in Sachen Elektronik, also seid LIEB zu mir :)

LED Daten:
MCD typ.:  1000 mcd
mA test.:  20 mA
mA typ.:  20 mA
V typ.:  1,8 V
V max.:  2,4 V
Watt:  0,04 W


Meine Schaltung anbei als Foto:


Lieben Gruß Marie

von Flip B. (frickelfreak)


Lesenswert?

die beiden pnp durch einen p-ch-fet ersetzen, der mit dem veroderten 
signal der beiden steuerleitungen angesteuert wird

von Dieter S. (Gast)


Lesenswert?

Und 3 Led parallel an einem Ausgang des Arduino ist zu viel.
Da kannst du schnell den Controller killen.
Ich würde bei einer Led pro Pin bleiben.

von H.Joachim S. (crazyhorse)


Lesenswert?

Dieter S. schrieb:
> Und 3 Led parallel an einem Ausgang des Arduino ist zu viel.
> Da kannst du schnell den Controller killen.
Naja - das kommt schon erstmla auf den Strom an.
Und selbst bei mal versehentlich vorgekommenen Dauerkurschluss ist 
nichts passiert. Sind also schon recht robust.

> Ich würde bei einer Led pro Pin bleiben.
3 rote kann man bei 5V gerade noch in Reihe schalten :-)

von Marie G. (marie61)


Lesenswert?

Ups, das ging aber schnell mit den Antworten... ;)

@frickelfreak

Danke, das werde ich mal probieren... werde mir mal ein Mosfet bestellen 
und dann berichten. Wollte den IRF9620 bestellen, der müsste ja auch 
funktionieren. Wie ich den dann anschließen soll, muss ich mal 
googeln... ECB wie beim Transistor gibt es dann ja nicht mehr :)

@Dieter S.

Verstehe ich da jetzt etwas falsch? Dann wären ja auch 30 LEDs zu viel 
für den Arduino, oder? Ich dachte, deswegen habe ich die 
Verstärkerstrecke gebaut mit den Transistoren...

von Dieter S. (Gast)


Lesenswert?

Marie G. schrieb:
> @Dieter S.
>
> Verstehe ich da jetzt etwas falsch? Dann wären ja auch 30 LEDs zu viel
> für den Arduino, oder? Ich dachte, deswegen habe ich die
> Verstärkerstrecke gebaut mit den Transistoren...

Die Transistoren verstärken hier nicht, sondern schalten nur.
Der Strom der Leds fließt auch durch die Ausgänge des Controllers.

Allerdings wurde schon richtig von " H.Joachim Seifert" angemerkt, dass 
es auf den Strom durch die Leds selbst ankommt.

Ich bin da lieber etwas vorsichtiger. Daher mein Hinweis.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Marie schrieb:
> wirklich viel Ahnung, was Elektrik angeht. Ich möchte aber folgende
> Schaltung irgendwie realisieren, vllt. kann mir ein wenig unter die Arme
> gegriffen werden.

 Nach meiner Rechnung sind es:
 5V - 0.6V - 0.6V - 1.7V = 2.1V
 2.1V / 330 = 6.4mA
 27 * 6.4mA = 172mA
 MEGA selbst braucht bis zu 12mA, sind 184mA.

Marie G. schrieb:
> Verstehe ich da jetzt etwas falsch? Dann wären ja auch 30 LEDs zu viel
> für den Arduino, oder? Ich dachte, deswegen habe ich die
> Verstärkerstrecke gebaut mit den Transistoren...

 Ja, da werden LEDs mit VCC versorgt und GND ?
 Geht naturlich uber Arduino.

von Marie G. (marie61)


Lesenswert?

Huhu Dieter,

dann werde ich wohl noch einen ULN2803 vor den Ausgängen schalten, ist 
ja eigentlich sinnvoll... ;) Vielleicht kann ich bald kein ROT mehr 
sehen und nehme WEIß :)

Also: PC-H-FET und ULN gehen mal auf die Bestellung... ich berichte dann 
weiter, ob es geklappt hat. Erst einmal vielen lieben Danke an euch 
allen!

Gruß Marie

von Wolfgang (Gast)


Lesenswert?

Marie G. schrieb:
> Dann wären ja auch 30 LEDs zu viel
> für den Arduino, oder? Ich dachte, deswegen habe ich die
> Verstärkerstrecke gebaut mit den Transistoren...

Das ist am "oberen" Ende der LEDs. Aber der Strom aus der Kathode fließt 
in den µC und muss über dessen Gnd-Anschluss auch wieder raus. Und da 
fließt die Summe aller LED-Ströme.

von Dieter S. (Gast)


Lesenswert?

Marie G. schrieb:
> Huhu Dieter,
>
> dann werde ich wohl noch einen ULN2803 vor den Ausgängen schalten, ist
> ja eigentlich sinnvoll... ;) Vielleicht kann ich bald kein ROT mehr
> sehen und nehme WEIß :)
>
> Also: PC-H-FET und ULN gehen mal auf die Bestellung... ich berichte dann
> weiter, ob es geklappt hat. Erst einmal vielen lieben Danke an euch
> allen!
>
> Gruß Marie

Das ist eine gute Lösung, damit entlastest du alle Ausgänge.

Wir sind gespannt.

von Marie G. (marie61)


Lesenswert?

Flip B. schrieb:
> der mit dem veroderten
> signal der beiden steuerleitungen angesteuert wird

da muss ich noch etwas grübeln, noch nie gehört ;) mein Freund Google 
sucht immer "vermodertes Signal", aber so lange kann ich nicht warten ;)

Nun ist es schon spät geworden, ich gehe ins Bett, bin MÜDE^^

Naaaaaaaaaaaaaaaaaaachtiiiiiiiiiii

: Bearbeitet durch User
von Dieter S. (Gast)


Lesenswert?

Marie G. schrieb:
> Flip B. schrieb:
>> der mit dem veroderten
>> signal der beiden steuerleitungen angesteuert wird
>
> da muss ich noch etwas grübeln, noch nie gehört ;) mein Freund Google
> sucht immer "vermodertes Signal", aber so lange kann ich nicht warten ;)
>
> Nun ist es schon spät geworden, ich gehen ins Bett, bin MÜDE^^
>
> Naaaaaaaaaaaaaaaaaaachtiiiiiiiiiii

Auf Deutsch "Oder-verknüpft".

Gute Nacht....

von chris_ (Gast)


Lesenswert?

Kann es sein, dass ein Atmega1280 wirklich 200mA insgesammt verträgt?

http://electronics.stackexchange.com/questions/67092/how-much-current-can-i-draw-from-the-arduinos-pins

Der Gesamtstrom für alle LEDs kommt mir etwas hoch vor. Ich könnte mir 
vorstellen, dass die Spannung am MC leicht einbricht, wenn viele LEDs 
schalten und man es dann an den nicht geschalteten LEDs sehen kann.

Experiment: Einfach mal die Transistoren überbrücken, damit man sieht, 
das der Spannungseinbruch nicht vom den Transistoren kommt.

von Marie G. (marie61)


Lesenswert?

chris_ schrieb:
> Experiment: Einfach mal die Transistoren überbrücken, damit man sieht,
> das der Spannungseinbruch nicht vom den Transistoren kommt.

Guten Morgen chris_, guten Morgen Forum,

genau das hatte ich schon einmal gemacht, die Transistoren überbrückt 
und siehe da, KEIN Flackern mehr... außerdem habe ich jetzt div. ULN2803 
vor die Ausgänge des Arduinos geschaltet. Nun muss ich nur noch auf den 
FET warten, damit ich die Schaltung vervollständigen kann. Hoffe es 
klappt, wie ich es umgesetzt habe... die Schaltung reiche ich mal nach 
der Arbeit rein!

Euch einen schönen Tag

Marie

von Hubert G. (hubertg)


Lesenswert?

Der Dimmertransistor macht ja Sinn auch wenn ich das ganze umdrehen 
würde um mit dem Transistor GND zu schalten, aber einen 
Ein/Aus-Transistor der über den Arduino gesteuert wird? Es würde doch 
mehr Sinn machen die Ledausgänge direkt über die Software abzuschalten.

von Marie G. (marie61)


Angehängte Dateien:

Lesenswert?

Huhu und guten Abend,

nun habe ich mal versucht, die Vorschläge umzusetzen. In meiner 
Schaltung habe ich jetzt einen P-CH-FET mit Pulldownwiderstand 
eingebaut. Ich möchte gern, das die LEDs leuchten, wenn das 
Steckernetzteil eingeschaltet wird. Weiterhin habe ich versucht ein 
"verodertes Signal" der beiden Steuerleitungen EIN/AUS und DIMMEN in die 
Schaltung zu bekommen. Ich als Neuling was Elektronik angeht, musste 
dafür viel googeln :)

Um den Arduino zu entlasten, habe ich auch zusätzlich noch Darlington 
Arrays ULN2803 verbaut.

Könnt ihr bitte mal drüberschauen, ob es so OK ist, oder ob ich einen 
Denkfehler gemacht habe? Wäre Superlieb... Die Schaltzeichen sind 
bestimmt auch nicht OK, habt Nachsicht mit mir^^

Gruß Marie

: Bearbeitet durch User
von Marie G. (marie61)


Lesenswert?

Hubert G. schrieb:
> aber einen
> Ein/Aus-Transistor der über den Arduino gesteuert wird? Es würde doch
> mehr Sinn machen die Ledausgänge direkt über die Software abzuschalten

Hallo Hubert G.,

ich will erst einmal KLEIN anfangen :) Außerdem würde ich dafür einen 
zusätzlichen I/O Port benötigen, oder? Die sind bei mir immer rar :) Die 
EIN/AUS Schaltung und die Dimmerschaltung werden hier mit einem ATTiny 
realisiert, da ich alle I/O Pins des Mega benötige! Ich muss mal sehen, 
wie ich es irgendwann mal optimiere. Mir geht es jetzt eigentlich nur um 
die Elektronik...

Gruß Marie

von Lurchi (Gast)


Lesenswert?

Das ein / ausschalten der LEDs kann der µC auch über die einzelnen Ports 
für die LEDs erledigen. Dafür braucht man auch keine extra PINs - man 
spart sogar noch 1 oder 2. Zumindest kann man die Helligkeitssteuerung 
und ein / aus zusammenfassen - also nur eine Leitung von µC und ohne die 
ODER/UND Verschaltung. Für Aus wird dann halt die Helligkeit auf 0 
gesetzt.

Statt den P-MOSFETs würde es auch ein PNP Transistor tun - der BC327 
passt da auch schon, wenn man nicht so sehr viel Strom für die LEDs 
nimmt. Mit effizienten LEDs und weniger Strom ginge es auch ohne die 
ULN....

Software PWM von Arduino ist recht langsam. Da sollte man ggf. Hardware 
PWM nutzen, dann sollte es auch nicht so flimmern.

von Marie G. (marie61)


Lesenswert?

Lurchi schrieb:
> Statt den P-MOSFETs würde es auch ein PNP Transistor tun - der BC327
> passt da auch schon, wenn man nicht so sehr viel Strom für die LEDs
> nimmt. Mit effizienten LEDs und weniger Strom ginge es auch ohne die
> ULN....

Hallo Lurchi,

danke für dein Feedback... das mit dem Transistor hatte ich ja ganz 
zuerst, nur dann ist es so, wie ich es schon einmal geschrieben habe... 
es fängt bei den anderen LEDs an zu flackern. Wenn ich dann den 
Transistor kurzzeitig überbrücke, ist das flackern weg. Deswegen hatten 
wir jetzt die Lösung mit dem P-CH FET. Für mich ist es eigentlich jetzt 
nur wichtig, ob die Schaltung so OK ist.

Die ULN2803 habe ich gewählt, um einfach nur sicher zu sein, das der 
Arduino kein Schaden nimmt. Es sollen ja mindesten 30 LEDs verbaut 
werden. Wenn cih jetzt nicht nur ROTE LEDs nehme, auch evtl. irgendwann 
mal WEIßE oder GRÜNE könnte es bestimmt eng werden.

Vielleicht knn mal einer etwas zum FET sagen, ist der richtig eingebaut 
und wie sieht es mit dem Transistor-Gate aus?

Gruß Marie

von Dieter S. (Gast)


Angehängte Dateien:

Lesenswert?

Der Mosfet ist falsch rum.
Und ich würde als Treiben einen NPN nehmen.

Schaltung als Beispiel:

Ich kann allerdings nicht sagen, ob es so mit dem Dimmen funktioniert, 
habe ich noch nicht probiert. Einfach mal testen.

von Dieter S. (Gast)


Angehängte Dateien:

Lesenswert?

Ups, sorry falsches Bild.

Dies sollte es sein.

Und der Fet kann natürlich ein Leistungsstärkerer sein.

von Marie G. (marie61)


Angehängte Dateien:

Lesenswert?

Dieter S. schrieb:
> Der Mosfet ist falsch rum.

Hallo und guten Abend Dieter,

ich habe es mir schon fast gedacht, SHIT! :) Okidoki, ich hänge mal ein 
neues Bild an, habe es geändert... vllt. kannst du kurz mal 
rüberschauen. Das mit dem DIMMEN und EIN/AUS werde ich testen, sonst 
muss ich eben wieder 2 Transistoren als UND-Verknüpfung machen.

Die bestellten Sachen müssen ja bald kommen, dann kann ich mehr 
berichten... dann werde ich zum TESTER *hihi

Lieben Gruß Marie

von Dieter S. (Gast)


Lesenswert?

Ja, das ist ok.

Und wichtig, der Mosfet schaltet durch, wenn HIGH auf der Basis des NPN 
liegt. Und es sollte auch mit PWM so funktionieren.

Allerdings brauchst du keine 2 NPN, du kannst doch beide Funktionen an 
einem Ausgang vom Controller steuern. PWM zum Dimmen und dauernd HIGH 
ist Hell und LOW ist alles aus.

von Dieter S. (Gast)


Lesenswert?

Ok, viel Erfolg beim Testen.
Ich bin jetzt weg, gute Nacht.

LG
Dieter

von Marie G. (marie61)


Lesenswert?

Dieter S. schrieb:
> Allerdings brauchst du keine 2 NPN, du kannst doch beide Funktionen an
> einem Ausgang vom Controller steuern. PWM zum Dimmen und dauernd HIGH
> ist Hell und LOW ist alles aus.

Huhu Dieter,

ja stimmt... muss ich den Code etwas umschreiben :) Dir eine gute Nacht 
und ich berichte die Tage nach dem Testen^^

Nachtiiiiiiiiiiii

von Willi (Gast)


Lesenswert?

Morgen,

die Transistoren am Eingang braucht man nicht. Dimmen und schalten der 
LEDs kann der Atmega auch direkt an den Ausgängen mit erledigen. Erst 
recht, wenn die eh alle auf die gleiche Helligkeit gedimmt werden. ULN 
braucht es auch nur, wenn die Summe der LED Ströme größer wird als die 
UB/GND Pins vom Atmega ab können. Da nirgends steht was genau für ein 
Mega verwendet wird ist das also offen (kenne mich mit Ardunio nicht 
aus,  was da ein Mega Ardunio ist - mega328?).

PWM Ansteuerung mit vielen Kanälen findet man hier im Artikelbereich.

LG Willi

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Willi schrieb:
> (kenne mich mit Ardunio nicht
> aus,  was da ein Mega Ardunio ist - mega328?)

Nö, der hat keine 30 Ausgänge. Der Mega Arduino hat einen Mega2560:
https://www.arduino.cc/en/Main/ArduinoBoardMega2560

von Marie G. (marie61)


Lesenswert?

Huhu, da bin ich wieder :)

Nun habe ich es mal so aufgebaut, wie ich es in der letzten Zeichnung 
hochgeladen habe. Allerdings nur noch mit einem Transistor... alles 
klappt so wie es soll, kein FLATTERN der LEDs, und nichts wird heiß 
*freu

Allerdings ist es jetzt so, dass der Mosfet genau andersherum schaltet 
:( Geht auf dem Arduino die Testled PIN13 an, geht die Mosfetstrecke 
aus.

Wie mache ich es, dass er genau so schaltet, wie die Testled am 
Arduino... vorher mit den Transistoren klappte es auch.


Dieter S. schrieb:
> Und wichtig, der Mosfet schaltet durch, wenn HIGH auf der Basis des NPN
> liegt. Und es sollte auch mit PWM so funktionieren.

Kann ich es auch so schalten, das der Mosfet schaltet, wenn ein LOW 
Signal anliegt?

Gruß Marie

von Dieter S. (Gast)


Lesenswert?

Was für einen Mosfet hast du genommen? Mit oder ohne NPN?

von Marie G. (marie61)


Lesenswert?

Huhu Dieter, schön dich zu lesen... habe wie auf der Zeichnung 
(img008.jpg) einen IRF5305 genommen, soll ein P-CH sein.

Gruß Marie

von Marie G. (marie61)


Lesenswert?

UPS... alles OK, war mein Fehler!!! SHIT *grins

Hatte den ULN2803 falsch beschaltet... nun funktioniert alles so wie ich 
es wollte. Danke für eure nette Unterstützung!

Lieben Gruß Marie

: Bearbeitet durch User
von Dieter S. (Gast)


Lesenswert?

Na prima. Wunderbar, dass es jetzt funktioniert.

von Norbert H. (lapster)


Lesenswert?

Wiso steuerst du die LEDs nicht über einen seriellen Portexpander an wie 
der PC 8574.
Dieser hat einen 8 Bit breiten Bus und somit sind pro IC dann 8 LEDs, 
ansprechbar.
Alternativ könntest du auch Multiplexen, da wäre es denkbar das du bei 
einer Parallelen Verbindung bleibst, allerdings solltest die Pulsströme 
eventuell nicht unbeachtet lassen ?

von Marie G. (marie61)


Lesenswert?

Norbert H. schrieb:
> Wiso steuerst du die LEDs nicht über einen seriellen Portexpander an wie
> der PC 8574.

HAllo Norbert,

dafür bin ich zu ein großer Noob, stecke gerade erst in den Anfängen der 
Elektronik. In meinem Alter sind Multiplexer, Shift-Register und 
Portexpander noch böhmische Wälder. Mein Ziel habe ich auch für diese 
Schaltung so erreicht... :)

Dir einen schönen Abend

Marie

von Marie G. (marie61)


Angehängte Dateien:

Lesenswert?

Huhu und Hallo , da bin ich wieder... :)

Nach erfolgreichem TESTEN der Schaltung, wollte ich diese Schaltung 
etwas optimieren. Habe da eine Idee im Kopf, nur bekomme ich sie nicht 
ganz umgesetzt.

Die Schaltung, wie in Bild 1 zu sehen, funktioniert eigentlich so ganz 
gut. Sicherlich könnte man auf die Transistoren verzichten, wenn man den 
ATTiny85 umcoden würde, aber dafür bin ich eben zu doof :( Daher sollte 
die Schaltung in allererster Linie so bleiben.

Allerdings möchte ich von dem Taster und dem Potentiometer wegkommen, 
die sind mir einfach zu groß und sehen doof aus. Ich dachte mir, dass 
ich evtl. dafür Hallsensoren einbauen könnte, damit ich EIN/AUS und 
DIMMEN über einen Magneten erledigen kann.

Nun habe ich den Taster in der Schaltung durch einen Hallsensor SS461A, 
der über einen Pullup-Widerstand von 10KOhm angesteuert wird geändert. 
Siehe Bild 2

Es funktioniert auch ganz gut, abwohl allerdings manchmal der Magnet 
mehrmals an den Hallsensor geführt werden muss, ist wohl zu schwach :)

Nun kommt es aber: Ich bekomme es einfach nicht hin, dass ich mit dem 
anderen Hallsensor, das DIMMEN erledigen könnte. Das ich da evtl. einen 
anderen Hallsensor benötige ist mir schon fast klar, aber welchen? Oder 
geht es überhaupt mit einem Hallsensor?  Das Poti verändert ja nun den 
Widerstand, aber der Hallsensor? Wie müsste ich da rangehen, um meine 
Vorstellung zu realisieren? Am liebsten wäre mir, ich wechsel einfach 
das Poti durch einen HALL aus, aber ich denke, so einfach geht es wohl 
nicht ;)

Lieben Gruß

Marie

P.S. Bild 3 zeigt die Schaltung mal auf einem Testboard mit einem HALL 
für EIN/AUS

von Dieter S. (Gast)


Lesenswert?

Hallo Marie,

da der verwendete Hallsensor ein digitaler ist, wird es nicht so einfach 
funktionieren. Da musst du noch etwas Code opfern. Einen Zähler einbauen 
und die Zeit messen.

Mit einem analogen Hallsensor könnte es funktionieren, habe da aber 
selbst keine Erfahrung mit.

von Marie G. (marie61)


Lesenswert?

Dieter S. schrieb:
> Mit einem analogen Hallsensor könnte es funktionieren, habe da aber
> selbst keine Erfahrung mit.

Moin Dieter,

danke für deine schnelle Antwort. Das es mit dem digitalen Sensor nicht 
ohne Probleme funktioniert, habe ich mir schon fast gedacht und habe 
natürlich gleich noch einen analogen Hallsensort SS495A mitbestellt. 
Aber wenn ich den anstelle des Potis setze, passiert nicht wirklich viel 
:(

Also doch den Code umbasteln, aber das ist nichts für mich, dafür bin 
ich zu alt und verstehe zu wenig davon.

Der Code sieht jetzt folgendermaßen aus, vielleicht kann ja mal einer 
reinschauen? Dann könnte man vielleicht auch gleich den Code so 
abändern, dass ich evtl. gar keine Transistoren benötige und alles auf 
einem Ausgang lege und damit direkt den FET ansteuere? Das wäre 
natürlich optimal... wenn sich also einer etwas dazu verdienen möchte, 
darf mich gern anschreiben ;)

// ATTiny85
// Dimmen und Tasten

const int switchPin = 3;
const int ledPin = 1;

int state;
int lastState;
int ledState;
int pwmPin = 0;
int analogInPin = 2;
void setup()
{
  pinMode(ledPin, OUTPUT);
  pinMode(switchPin, INPUT);
  pinMode(pwmPin, OUTPUT);
  pinMode(analogInPin, INPUT);
 // Serial.begin(9600);
}

void loop()
{
int analogIn = analogRead(analogInPin);

analogWrite(pwmPin, analogIn / 4);

  state = digitalRead(switchPin);

  if (state != lastState)
  {
    if (state == HIGH)
    {
      if (ledState == HIGH)
      {
       ledState = LOW;
     //   Serial.println("LED AUS");
      }
      else
      {
       ledState = HIGH;
       // Serial.println("LED EIN");
     }
   }
  lastState = state;
  }

  digitalWrite(ledPin, ledState);
  delay(20);
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.