www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik zu blöd um eine LED einzuschalten


Autor: Josef Kaeufl (josefk)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo da draußen,

habe eine sehr blöde Frage. Ich habe eine kleine Platine 
zusammengebastelt (siehe Anhang) aber leider schaffe ich es nicht einmal 
die Leds einzuschalten.
Ich habe 1k als Drossel eingebaut und nutze den µC als Massen bei "ein". 
Leider leuchtet garnichts. Die Pins sind als Eingang geschalten und wenn 
ich die internen PullUps aktivere bzw. deaktiviere passiert nichts.

Woran kann das liegen?

Autor: Steve Bennet (stevensen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
probiers als ausgang

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst die Pins auf Ausgang schalten (DDR) und eine 0 reinschreiben

Otto

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die Pins sind als Eingang geschalten und wenn
>ich die internen PullUps aktivere bzw. deaktiviere passiert nichts.

Wie wäre es, wenn du dein Programm postest?!

Scheint so, als hättest du die Funktion eines Portpins nicht ganz 
verstanden.
Auch, wenn "Strom in den AVR" hineinfließt, muß der Pin als Ausgang 
geschaltet werden.

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach, sorry. Mein ich ja und hab ich auch.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bildformate! Da kriegt man ja Augenkrebs!

Und ohne Kenntnis Deiner Pinkonfiguration kann man da nicht viel zu 
sagen.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 1k als Drossel eingebaut

lass blos die 1000 Vögel frei sontst ...?

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zum Testen:
#include <avr/io.h>
#include <stdint.h>

#define __AVR_AT90CAN128__ 1
#define F_CPU    16000000
#define LED_GN(on)        (on) ? (PORTE&=~0x08) : (PORTE|=0x08)
#define LED_GE(on)        (on) ? (PORTE&=~0x10) : (PORTE|=0x10)
#define LED_RT(on)        (on) ? (PORTE&=~0x04) : (PORTE|=0x04)

int main(void)
{
     DDRE=0x00;
     LED_GN(1);
     LED_GE(0);
     LED_RT(1);
     while(1)
     {
     }
     return 0;
}

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Johannes M
Ok das Bildforamt ist nicht super, aber die LEDs kann man sehen, oder?!

Die Pnikonfiguration für die LEDs sollte mit dem Prog. auch klar sein. 
Der Rest ist ja irrelevant. Der RAM wird noch nicht genutz und der Rest 
nicht initialisiert.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> DDRE=0x00

nach

  DDRE=0xff  ;-> Ausgänge!!

Autor: michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie wäre es mit ausgang

DDRE=0xFF;

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DDRE muss für Deine LED auf 1 gesetzt werden

4
8
16

DDRE -> 0001 1100

LED gelb ist 16 und nicht 10

Otto

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry,

nichts zerstören

 DDRE = 0b0001110

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Otto hat recht DDRE = 0b0011100 sorry

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, danke für die Tipps, aber habs mit 0x1C schon probiert. Ändert 
nichts, komischerweise.
Kann es sein, dass der µC den Hitzetot beim Löten gestorben ist? Welche 
Symptome würde er dann Zeigen? Kann man einzelne Pins überhaupt grillen?
Kann ich mit 0x00 die Pins zerstört haben?

Autor: AC/DC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ne, wenn du nicht nen riesen Lötkolben dafür genommen hast.
Was sind denn das für LEDS? Stromaufnahme?
Der µC kann nämlich nicht unendlich viel Strom liefern bzw.
steuern. Haste das Beispiel Blinky schon probiert?
Gibt der Quarz einen Takt ab?
Und wie erzeugste einen Reset nach dem Einschalten?
Der Schaltplan hat aber noch einige zeichnerische Mängel, vor
allem an den Bussen.

Autor: ahnungslos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Programm funktioniert noch nicht, aber der µC ist schon verlötet? 
Schon'mal was von Sockeln gehört?

Autor: Sumynona (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Schon'mal was von Sockeln gehört?
Möööp, Mega128

> DDRE = 0b0001110

eleganter:
DDRE |= 0x0E;

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sumynona wrote:
>> Schon'mal was von Sockeln gehört?
> Möööp, Mega128
Es gibt Sockel dafür. Die kosten nur ungefähr 10 Mal so viel wie der µC 
selber...

Autor: Sumynona (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Es gibt Sockel dafür. Die kosten nur ungefähr 10 Mal
> so viel wie der µC
selber...
Weiß ich. Lohnt sich also privat / im hobbybereich nicht. Solche Sockel 
taugen imho nur was für Evalboards (oder um mit einer Schaltung viele 
Controller zu flashen ohne sie verlöten zu müssen... Fraglich ist dann 
aber, wie lang der Sockel das mitmacht)

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also zum Thema Hardware: Die Hardware an sich hat sich schon mal bei nem 
anderen Projekt bewährt. Leider habe da nicht ich, sonder eine Firma 
(die FH zahlts) die ICs aufgelötet bzw. gebacken. Die Bauteile waren 
größtenteils gleich bzw. und ich habe versucht auch hier die gleichen 
Bauteile zu verbauen.
Die Leds sind 0815 Dinger vom Reichelt (Art.Nr.: LED 3MM GN). Das 
Datenblatt ( 
http://www.reichelt.de/?;ACTION=6;LA=3;ARTICLE=102...) 
sagt 20mA. Ich dachte das schafft der µC, oder nicht?

PS: Das mit dem Reset ist so ne Sache. Die Platine ist meine erste 
selbst gelayoutete und im Eifer des Gefächtes habe ich die ISP 
Schnittstelle mitsamt dem dem Widerstand gegen Reset etc. vergessen. 
Naja. Jetzt habe ich eine teure Platine ohne Programmierschnittstelle 
(Bootloader über USB ist meine Notlösung). Man lernt nie aus, und sowas 
sollte mir wohl nicht mehr passieren :)

PPS: Was ist mit dem Bus? Hab keine Zeichenrichtlinien gefunden, daher 
hab ichs mal frei Schnautze gezeichnet. Wie macht man das richtig?

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast auch die Abblockkondensatoren beim ATMega vergessen.

Autor: Walter Tarpan (nicolas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> sagt 20mA. Ich dachte das schafft der µC, oder nicht?

Mit 1k Vorwiderstand werden das aber keine 20mA, eher 2mA

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LEDs richtig rum drin ?
Miss mal die Spannung am Port-Pin.

Autor: J. K. (rooot)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du mal das Potential auf beiden Seiten der Led gemessen?

Liegen überhaupt 5V an?
Zieht der µC Pin auf Masse? (ist ein bisschen schwierig bei SMD, 
Vorsicht !)

Probier mal den ganzen DDRE auf FF zu schalten, wenn nichts anderes 
dranhängt.

@Hardware:
bei 1k Vorwiderstand müsste LED sicher leuchten. Ist normal gar nicht so 
viel unterschied zwischen 2mA und 20mA (Auge logarithmiert)

MfG
J.K.

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also das mit den 1k Ohm dachte ich mir auch schon, daher habe ich mal 
330 Ohm für die grüne LED vorgeschaltet. Keine Verbesserung. Die Led ist 
richtig herum drinnen und sie funktioniert auch (zumindest mit 
Netzgerät).
An der Kathode (abgeflachte Seite) liegt der µC und an der Anode 5V. Das 
sollte stimmen. Die 5V sind auch real existent und bei DDRE=0xFF ist 
sind an der Kathode bei Rot für LED_RT(1); 3,6V und bei LED_RT(0); 5V.
Bisschen hoch für Masse, oder?

Autor: AC/DC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>bei 1k Vorwiderstand müsste LED sicher leuchten. Ist normal gar nicht so
>viel unterschied zwischen 2mA und 20mA (Auge logarithmiert)

Bei ner 5mA-Type vielleicht, wenn man im Dunkeln sitzt.
Bei einer 20mA-Type muß der Vorwiderstand auf 150 Ohm runter
sonst wird das nichts und das schafft der µC dann wohl auch nicht
ohne warm zu werden. Also entweder ne 5mA-Type nehmen oder einen
Transistor als Verstärker.

Rechnerisch gilt(Ub-Vf)/IF  ~ 5V-2,1V/ 0,005  = 580 Ohm (f.5mA-Typ)

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"sind an der Kathode bei Rot für LED_RT(1); 3,6V und bei LED_RT(0); 5V.
Bisschen hoch für Masse, oder?"

Das ist ja auch nicht Masse, was Du an der Kathode der LED mißt, das ist 
5V-LED-Flußspannung. Flußspannung also so bei 1,4V.
Weiterhin hat der alte Ohm rausgefunden, daß bei 3,6V über 1k Widerstan 
so ungefähr 3,6mA fließen.
Die (schlechte) LED sollte also etwas leuchten.

Für diese Späße nehme ich gerne low-current-LEDs, da quält man die uCs 
und die Umwelt nicht so sehr. Bei 3mA haben die schon die volle 
Helligkeit.

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verdammt. Das klingt alles logisch. Da hab ich wohl Mist gebaut. Ich 
muss gestehen, ich hab die Dinger immer aus nem kleinen Sortiment 
rausgezogen und hab wohl immer ne lowcurrent erwischt bzw. der schlaue 
Mann der die Dinger gekauft hat, hat in weiser Vorraussicht nur 
LowCurrent gekauft.
Dann bin ich ja mal gespannt was da sonst noch im argen liegt bei meiner 
Platine ;)
Danke für die Hilfe.

Autor: Josef Kaeufl (josefk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Pete K.
Die sind dran. Man sieht sie nur in diesem Ausschnitt der Zeichnung 
nicht.

Autor: cguru (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include <avr/io.h>
#include <stdint.h>

int main(void)
{
     DDRE = (1<<PE2);

     while(1)
     {
         PORTE = 0;
     }
     return 0;
}

das ohne optimierungen compilieren und flashen, auch bei 1k sollte die 
rote doch leuchten...denke ich :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.