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
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 :-)
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...
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.
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.
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
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.
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.
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
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....
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.
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
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.
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
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
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.
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
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.
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
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.
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
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
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
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
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 ?
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
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
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.
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);
}