LED Lauflicht mit ATmega

Gast #2742467
Lesenswert?

Hallo Zusammen!

Ich würde gerne ein LED-Lauflicht bzw. eine LED-Beleuchtung bauen.

Das ganze soll über einen ATmega (32, da viele Ports?) aufgebaut werden.

Was sind dabei für LEDs zu empfehlen?
Könnte der Controller, wenn ich an alle 4 Ports(A-D) eine LED hänge, 
diese gleichzeitig treiben?

Sollte man die LEDs gegen + schalten, und durch die Ports des 
Controllers
auf Masse ziehen?

Sind SMD-LEDs vielleicht besser geeignet für das Vorhaben?

Ich bin ein Einsteiger in Elektronik, habe jedoch schon einige male mit 
einem
ATmega gearbeitet und habe passendes Entwicklungswerkzeug hierfür.

Danke für eure Hilfe!

Grüße
Alex
Gast #2742481
Lesenswert?

Alexander schrieb:
> Hallo Zusammen!
>
> Ich würde gerne ein LED-Lauflicht bzw. eine LED-Beleuchtung bauen.
>
> Das ganze soll über einen ATmega (32, da viele Ports?) aufgebaut werden.

Kann man. Ansonsten bieten sich Schieberegister oder Expander an. Kommt 
drauf an wieviel Aufwand man möchte und was man so Programmiertechnisch 
kann.

> Was sind dabei für LEDs zu empfehlen?
> Könnte der Controller, wenn ich an alle 4 Ports(A-D) eine LED hänge,
> diese gleichzeitig treiben?

Schlecht. Man kann da besser noch was zwischenschalten. Gibts 
Konstanstromquellen für, Transistor Arrays und und und ...

> Sind SMD-LEDs vielleicht besser geeignet für das Vorhaben?

Der Verbrauch ändert sich durch SMD nicht. Kommt eher drauf an was du 
genau machen willst und wie gut du Löten etc. kannst.

Beschreib mal wofür du das Lauflicht bauen willst und welche 
Randbedingungen noch da sind.
Gast #2742494
Lesenswert?

Hallo!

Danke zunächst für die Antwort.

Also, das Vorhaben ist folgendes:
Zum Geburtstag eines Freundes soll ein Schild gebastelt werden.
Hier werden LEDs eingelassen und diese sollen leuchten -
nach Möglichkeit nicht alle gleichzeitig.

Da stellt sich auch sofort die nächste Frage, wie man sowas am besten 
mit Spannung versorgt, damit das Ding eventuell eine Nacht durchblinken 
kann.

Reicht dafür ein 9V Block mit Anpassung auf 5V oder nimmt man lieber 
etwas anderes?

Für guten Rat bin ich sehr dankbar ;-)
Gast #2742602
Lesenswert?

Alex schrieb:
> Bedeutet, dass ich eine (oder 2) LEDs mit entsprechendem Vorwiderstand
> gegen 5V schalten kann und diese mit dem ATmega auf Masse durchschalte?
Ja.

> Interessant wäre nun noch das mit der Spannungsversorgung.
Spannungsversorgung? Irgendein billiges 5V Netzteil, stabilisiert sollte 
es sein. Gibt es zu auf dem Grabbeltisch für irgendwelche 
Multimediasachen oder als Ladegerät fürs Handy.
Gast #2742603
Lesenswert?

Alex schrieb:
> Bedeutet, dass ich eine (oder 2) LEDs mit entsprechendem Vorwiderstand
> gegen 5V schalten kann und diese mit dem ATmega auf Masse durchschalte?

Sollange es eine Low Current ist ja.

> Interessant wäre nun noch das mit der Spannungsversorgung.

Wenn du nur ein paar Low Current LEDs ansteuerst und nicht noch viele 
Zusatzfunktionen einbaust, dann kannst mit genug Zeit rechnen.
Gast #2742623
Lesenswert?

Hi!

Noch was anderes:
Ich musste gerade feststellen, dass es keine (nur SMD) weißen
Low-Current LEDs gibt.

Da nun aber auf jeden Fall weiße LEDs enthalten sein sollen,
muss ich wohl doch mit Transistoren arbeiten.

Welche Transistoren können hier benutzt werden?
Oder gleich die o.G. Transistorarrays?

Gruß
Gast #2742647
Lesenswert?

Alexander schrieb:
> Hi!
>
> Noch was anderes:
> Ich musste gerade feststellen, dass es keine (nur SMD) weißen
> Low-Current LEDs gibt.

Kann sein. Wo denn geschaut?

> Da nun aber auf jeden Fall weiße LEDs enthalten sein sollen,
> muss ich wohl doch mit Transistoren arbeiten.
>
> Welche Transistoren können hier benutzt werden?
> Oder gleich die o.G. Transistorarrays?

Zum ein-/ausschalten tuts eigentlich jeder. BC337 usw. so billige 
reichen da vollkommen. Als Array fällt mir spontan nur die dinger der 
ULN reihe ein, kann man nehmen, ist aber wieder das mit den Kanonen und 
Spatzen.

evtl. mal nach LED Treiber ICs googlen. Gibt paar die direkt mehrere 
LEDs ansteuern können mit nur einem Widerstand als Referenz. 
Funktionieren nach dem Prinzip der Konstantstromquelle. Vielleicht 
meldet sich hier auch mal jemand dem spontan ein passender einfällt der 
auch bei den üblichen Verdächtigen erhältlich ist.
Gast #2747259
Lesenswert?

Hallo!

Ich habe nun alles zusammen und aufgebaut.
Weiterhin benutze ich zur Programmierung (C) die eclipse 
Entwicklungsumgebung.

Ich begreife nun leider nicht, wie ich den C-Code übersetzt bekomme,
bzw. wo ich nach dem Übersetzen die Hex-Datei zum Übertragen finde.

Beim Betätigen von "Build" im Eclipse erscheint keinerlei Fehlermeldung, 
sodass ich davon ausgehe, dass das übersetzen klappt (bitte Korrigiert 
meine Aussage, falls meine Annahme falsch ist).

Was muss ich tun? Bzw. wo finde ich die Hex-Datei?

Gruß & Dank
Alex
Gast #2748338
Lesenswert?

Moin!

Habe es selbst hinbekommen, nun stehe ich jedoch vor dem nächsten 
Problem:
Auf dem Eva-Board von Atmel funktioniert das LED-Blinklicht mit LED1/2 
über JP6/7 an Port D.5 und D.6.

Nun, wenn ich die Jumper löse und eine eigene Schaltung hinanhänge, 
funktioniert das ganze nicht mehr - vermutlich liegt der Fehler also bei 
der Schaltung.

Für die Schaltung, siehe Anhang.
Die beiden Basen sind über einen 1k-Ohm Basiswiderstand an den µC 
angeschlossen (Beide Basen parallel!!).

Die LEDs sind über einen Vorwiderstand an VDD angeschlossen.
Der Emitter der Transistoren liegen auf GND.

Wo ist der Fehler in der Schaltung?
Angehängte Dateien:
#2748346
Lesenswert?

NImm deine Schaltung mal vom µC weg, und lass nur Vdd und GND 
angeschlossen. Kontrollier zur Sicherheit noch, ob du an Vdd auch 
wirklich +5V hast. Und dann verbindest du einfach mal das jetzt offene 
Ende des Basiswiderstandes mit einem Stück Draht mit Vdd. Leuchten deine 
LED? Was ist, wenn du statt an Vdd mit GND verbindest?


(Leider kann man auf deiner Graphik nicht erkennen, welche Bezeichnung 
deine Transistoren tragen. Und 2 Transistoren an einem Basiswiderstand 
finde ich jetzt auch nicht so prickelnd. Wenn das ein Wald und Wiesen 
Transistor ist, dann kann leicht 1 Transistor alle beide LED treiben. 
D.h. den 2.ten brauchst du gar nicht)
Gast #2748353
Lesenswert?

Alexander schrieb:
> Moin!
>
> Habe es selbst hinbekommen, nun stehe ich jedoch vor dem nächsten
> Problem:
> Auf dem Eva-Board von Atmel funktioniert das LED-Blinklicht mit LED1/2
> über JP6/7 an Port D.5 und D.6.

Keine Ahnung welches du meinst, aber wenn es klappt super.

> Nun, wenn ich die Jumper löse und eine eigene Schaltung hinanhänge,
> funktioniert das ganze nicht mehr - vermutlich liegt der Fehler also bei
> der Schaltung.

Wahrscheinlich.

> Für die Schaltung, siehe Anhang.
> Die beiden Basen sind über einen 1k-Ohm Basiswiderstand an den µC
> angeschlossen (Beide Basen parallel!!).

Nicht so toll. Beiden einen eigenen Basiswiderstand verpassen.

> Die LEDs sind über einen Vorwiderstand an VDD angeschlossen.
> Der Emitter der Transistoren liegen auf GND.

Hört sich richtig an.

> Wo ist der Fehler in der Schaltung?

Wenn du das so gebastelt hast wie gezeichnet, dann ist der einzige 
Fehler an der Stelle mit den Basiswiderständen. Ansonsten sollte das 
Funktionieren.

Wobei ich mich Frage:
Du hast oben zwei LEDs mit jeweils einen Port Pin angeteuert. Warum 
steuerst du hier zwei LEDs mit einem an?

Weil so wie du das jetzt da gezeichnet hast, reicht auch nur ein 
Transistor für beide LEDs.
Wenn du aber beide LEDs seperat ansteuern willst, dann solltst du jedem 
Transistor einen eigenen Basiswiderstand spendieren und jeweils an den 
richtigen Port Pin hängen.
Gast #2748736
Lesenswert?

Hi!

Danke zunächst für die Masse an Antworten.
Die Transistoren sind BC548A's.

Ich habe die LEDs gesehen, jedoch sind diese deutlich zu düster für das 
Vorhaben.
Habe nun die LED 5-3000 WS von Reichelt hier liegen.
Diese passen von der Helligkeit sehr gut.

Leider haben Sie aber lt. Daten(blatt) eine Spannung von 3,6-4V bei 20mA
und ich benötige evtl. > 30 Stück (steht erst morgen genau fest) von den 
Teilen.

Daher wollte ich zwei LEDs mit einem Port treiben, da sowieso jeweils 
zwei gleichzeitig geschaltet werden sollen.

Zu der Drahtprobe: Verbinde ich den Basisvorwiderstand mit VDD, leuchten 
die beiden LEDs.
Ist der 1k Widerstand und der damit verbundene Strom von rund 45mA nicht 
richtig dimensioniert?
Meine Überlegung war nach der Stromteilerregler, dass sich die Ströme 
eigentlich nahezu gleich aufteilen müssten an beide Basen - und 25mA 
sollten zum Durchschalten des BC548A reichen, oder?
Weiterhin dürften die LEDs dann ja eigentlich auch nicht leuchten, wenn 
ich den Basiswiderstand mit Vdd verbinde.

LG & Danke im Vorraus.
Gast #2748818
Lesenswert?

Hallo,

Alexander schrieb:
> Ist der 1k Widerstand und der damit verbundene Strom von rund 45mA nicht
> richtig dimensioniert?

1. Wie kommst du auf die 45mA bei 1kOhm?
2. http://www.mikrocontroller.net/articles/Basiswiderstand
Du willst ein unter Umständen etwas batteriebetriebenes bauen, aber 
verschwendest unnötig am Transistor Strom?
Dein Transistor hat ein HFE von mindestens 110. Sprich bei 20mA an der 
LED brauchst du weniger als 182µA um den Transistor ausreichend 
durchzuschalten.

Alexander schrieb:
> Könnte ich diese auch am Controller treiben?
> Glaube nicht, dass ein einzelnder Port 8 von den Dingern treiben kann
> oder?

http://www.atmel.com/Images/doc2503.pdf Seite 287:
DC Current per I/O Pin ................................................ 
40.0mA
DC Current VCC and GND Pins.......................... 200.0mA and
400.0mA TQFP/MLF

Jetzt kannste abschätzen, wie viele LEDs du anschließen kannst, wenn du 
sie maximal/verringert bestromst.

Gruß
Michael
Gast #2748915
Lesenswert?

Alexander schrieb:
> Meine Überlegung war nach der Stromteilerregler, dass sich die Ströme
> eigentlich nahezu gleich aufteilen müssten an beide Basen

Die Stromteilerregel besagt bei Dioden, also auch bei BE-Strecken von 
Transistoren, dass der Strom wegen der Temperaturabhängikeit der 
Eingangskennlinie hauptsächlich durch den wärmeren Transistor fließt, 
m.a.W. ein gemeinsamer Basiswiderstand bei Parallelansteuerung mehrerer 
Transistoren in Emitterschaltung ist Mist.
Gast #2749222
Lesenswert?

Michael schrieb:
> 1. Wie kommst du auf die 45mA bei 1kOhm?
> 2. http://www.mikrocontroller.net/articles/Basiswiderstand
> Du willst ein unter Umständen etwas batteriebetriebenes bauen, aber
> verschwendest unnötig am Transistor Strom?
> Dein Transistor hat ein HFE von mindestens 110. Sprich bei 20mA an der
> LED brauchst du weniger als 182µA um den Transistor ausreichend
> durchzuschalten.

Die Rechnung war meinerseits 5V - 0,7V = 4,3V / 1k =~ 45mA  (um eine 
Zehnerpotenz versehen ;-))
Aber trotzdem müsste der Transistor doch schalten, oder?

Wenn ich die Schaltung anschließe, dann schalten sich die LEDs an, wenn 
ich den "Basisdraht" an PD5 herausziehe, gehen diese aus.

Werner schrieb:
> Die Stromteilerregel besagt bei Dioden, also auch bei BE-Strecken von
> Transistoren, dass der Strom wegen der Temperaturabhängikeit der
> Eingangskennlinie hauptsächlich durch den wärmeren Transistor fließt,
> m.a.W. ein gemeinsamer Basiswiderstand bei Parallelansteuerung mehrerer
> Transistoren in Emitterschaltung ist Mist.

Habe nun versucht, das ganze nur mit einem 1kOhm an einem Transistor zu 
machen. Der Effekt ist der Selbe wie bei beiden Transistoren zusammen:
Die Dioden leuchten dauerhaft.

Das zugehörige µC Programm ist folgendes:
1
int main( void )
2
{
3
    DDRD = ( 1 << PD5 );        
4

5
    while( 1 )                  
6
    {
7
        PORTD ^= ( 1 << PD5 );  
8
        _delay_ms(1000);       
9
    }
10

11
    return 0;
12
}
#2749255
Lesenswert?

Alexander schrieb:

>
1
> int main( void )
2
> {
3
>     DDRD = ( 1 << PD5 );
4
> 
5
>     while( 1 )
6
>     {
7
>         PORTD ^= ( 1 << PD5 );
8
>         _delay_ms(1000);
9
>     }
10
> 
11
>     return 0;
12
> }
13
>

Das kann nicht alles sein.
Da fehlen noch die #include und es fehlt die Angabe von F_CPU für den 
_delay_ms. Und wenn die falsch ist, dann blinkt deine LED nicht alle 1 
Sekunden sondern zb alle 16 Sekunden. Und wenn du vorzeitig die Geduld 
verlierst (weil du nicht 16 Sekunden wartest), dann sieht es für dich so 
aus, als ob sie gar nicht blinkt.
Gast #2749285
Lesenswert?

Habe den Fehler gefunden:
Es lag an zwei unterschiedlichen Massen (eine vom USB-Anschluss des 
Rechners, einmal von dem Netzteil zur Versorgung der Platine).

Da hättet ihr noch lange suchen können, wenn ich soetwas nicht dazu 
schreibe.

Tut mir leid, und vielen Dank für die Tipps!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren