www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kein Strom am ATmega 16


Autor: Martin K. (spyro07)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also,
ich habe mir so ne kleine MC-Schaltung gebaut.
Am PortB habe ich eine LED, die soll leuchten. Sie leuchtet auch, aber 
nur ganz schwach. da die spannung ja aber groß genug ist musses ja 
eigentlich an der stromstärke liegen. was kann ich da machen, damit ich 
die led richtig zum leuchten bringe, oder woran könnte das jetzt noch 
liegen???

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was hast du für einen vorwiderstand an der LED? oder wird die LED 
getaktet? was ist das für eine LED, welche farbe?

Autor: Martin K. (spyro07)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab ne grüne led, am netzteil liegen 3,1V an, am mc auch.
die led ist eigentlich nicht getaktet, die soll nur die ganze zeit 
leuchten.
widerstand hab ich keinen genommen, ich weiß macht man nicht aber müsste 
gehen.
hier noch mein programm:

;********************************************************
.include "m16def.inc"

;********************************************************


     ldi r16, 0xFF       ;0xFF ins Arbeitsregister r16 laden
         out DDRD, r16       ;Inhalt von r16 ins IO-Register DDRB 
ausgeben

         ldi r16, 0b11111111 ;0b11111100 in r16 laden
         out PORTB, r16      ;r16 ins IO-Register PORTB ausgeben

ende:    rjmp ende           ;Sprung zur Marke "ende" -> Endlosschleife

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. LEDs NIE ohne Vorwiderstand betreiben.
2. Wenn du im Kommentar schon DDRB schreibst, dann solltest du deinen 
Wert auch wirklich da reinladen. Das hat im Übrigen wohl auch deine LED 
und evtl. den MC gerettet, da sie so nur über den Pull-Up mit Strom 
versorgt wurde.

Autor: Martin K. (spyro07)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philipp Burch wrote:
> 2. Wenn du im Kommentar schon DDRB schreibst, dann solltest du deinen
> Wert auch wirklich da reinladen. Das hat im Übrigen wohl auch deine LED
> und evtl. den MC gerettet, da sie so nur über den Pull-Up mit Strom
> versorgt wurde.

Das hab ich jetzt nich so richtig verstanden.
was ist denn nun richtig ddrb oder ddrd, weil als ich (es geht um vorne, 
nicht um den kommentar) ddrb hatte, hatte mir hier jemand im forum 
gesagt da muss ich ddrd reinschreiben

Achso:

wieso hat das auch meinen mc gerettet?

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LED ohne vorwiderstand geht nicht, naja in ganz wenigen fällen kann man 
tricksen.
wenn zuviel strom durch die led fliest, wird sie dunkler. das ist aber 
nicht dein problem.

versuch mal (3,1-2)/0,02 ohm. vorwiderstand.

das prgramm hab ich gestern schonmal gesehn oder? du lädst das 
datenrichtungsregister von portd, aber schreibst in portb, wo 
warscheinlich die led hängt.

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
philip meinte wenn du die led direkt anschliest und die ports richtig 
angesteuert hättest, wäre der mC port wegebrant, also kaputt.

Autor: Martin K. (spyro07)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
seit wann wird die led dunkler, wenn zu viel strom durchfließt?
bei mir gehen die dann eher kaputt. ich hattes schon mal geschafft, dass 
eine led richtig geknallt hatte.

also muss ich ddrb schreiben, ok.

Diese include-datei muss ich aber nicht mit in den mc laden, stimmts?

Autor: Martin K. (spyro07)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso brennt der Port da weg???

Und hab es jetzt gemacht, is aber immernoch wie vorher.

P.S.: hab nen widerstand genommen

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin K. wrote:
> Wieso brennt der Port da weg???

Sieh dir mal die Kennlinien von Dioden an, dann wirst verstehen, warum 
das nicht geht.

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeig nochmal das aktuelle Programm und sag', was jetzt genau noch nicht 
geht.
Was hast du denn jetzt für einen Vorwiderstand drin?

Autor: Andreas W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du sehr vorsichtig bei einer led den strom hochdrehst, wird die led 
wärmer, dadurch verchiebt sich die kennlinie. das führt bei einfachen 
leds das die lichtausbeute sinkt. das kannst du mit einen labornetzteil 
selber ausprobieren. man kann sogar eine farbverschiebung beobachten.

so zurück zu dein problem.
du hast ein atmega 16?
an welchen pin ist die led?
hast du mal ins tutorial geschaut, zu ports?

Autor: Martin K. (spyro07)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann das sein, das sobald ich eine LED ohne widerstand an den mc 
ranhalte (der gibt dort halt ein bitmuster aus, so dass die led leuchten 
müsste) dieser Port sich dan sofort verabschiedet?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin K. wrote:
> Kann das sein, das sobald ich eine LED ohne widerstand an den mc
> ranhalte (der gibt dort halt ein bitmuster aus, so dass die led leuchten
> müsste) dieser Port sich dan sofort verabschiedet?

Auf Dauer ist das sicher nicht gut für den Port.
Aber im Regelfall ist es nicht so, dass innerhalb der
ersten Zehntel Sekunde nach Einschalten alles vorbei ist.

Wenn der Port noch lebt (und davon gehe ich mal aus),
dann muss dein Programm so aussehen
(LEDs an Port B)
;********************************************************
.include "m16def.inc"

;********************************************************


     ldi r16,   0xFF       ;0xFF ins Arbeitsregister r16 laden
     out DDRB,  r16        ;Inhalt von r16 ins IO-Register DDRB
ausgeben

     ldi r16, 0b10101010
     out PORTB, r16        ;r16 ins IO-Register PORTB ausgeben

ende:    rjmp ende           ;Sprung zur Marke "ende" -> Endlosschleife

DDRB deshalb, weil du ja die Datenrichtung für den Port B einstellen
willst.

Die LED schliesst du mit 330 Ohm an.

                   +-----+         | /|
     µC Pin o------|     |---------|  |---------o +5V
                   +-----+         | \|

Wenn du an einen Portpin dann eine 0 ausgibst, dann leuchtet
die LED.

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.