Was hast du denn da für eine LED dran?
Ein 1k Widerstand erscheint mir ein bisschen viel.
Selbst für hochleistungsleds braucht man für den Betrieb an 12V grade mal 400-500 Ohm.
Hallo,
also ich möchte mich zuerst einmal vorstellen.
Mein Name ist Patrick, bin vor kurzem erst 18 geworden. Ich komme aus Österreich und bin noch Schüler an einer HTL für Elektrotechnik.
![]()
Ich bin eigentlich ziemlicher Anfänger, habe aber doch schon mehrere Programme auf einem Attiny2313 und Atmega8 zum laufen gebracht.
Naja nun zu meinem Problem:
Ich habe nach längerer Zeit wieder einmal programmiert. Ich habe mir so ein Tasterprogramm auf einen Atmega 8 geflasht. Also Taster gedrückt -> LED ein, Taster nicht gedrückt LED aus.
Wird der Taster dann aber gedrückt leuchtet die LED nur halb so stark wie normalerweise. Am Portpin wo die LED dranhängt habe ich nur 2,5 V gemessen! wie kommt das?Code:#include <avr/io.h> int main() { while(1) { DDRD &= ~(1 << PD2); // PortD2 als INPUT PORTD |= (1<<PD2); // interne Pullups einschalten if ( !(PIND & (1<<PIND2)) ) // wenn Taste gedrückt { PORTD |= (1<<PORTD5); // LED an } else // sonst { PORTD &= ~(1<<PORTD5); // LED aus } } }
Die LED ist von Portpin über einen 1k Widerstand nach GND geschaltet.
Ist der Pin jedoch unbelastet also keine LED dann messe ich 5 V.
Ich bitte euch um Hilfe [-o< !
Danke
Was hast du denn da für eine LED dran?
Ein 1k Widerstand erscheint mir ein bisschen viel.
Selbst für hochleistungsleds braucht man für den Betrieb an 12V grade mal 400-500 Ohm.
Hallo
Da die Ports defaultmäßig auf Input eingestellt sind fehlt wohl noch ein fluffiges
DDRD |= (1<<PD5);
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Cool, ziemlich schnelle Antwort!
Ich hab da eine low current LED drauf:
Ich habe mir das programmieren mehr oder weniger selbst durch tutorials beigebracht und dort steht meistens 1k Vorwiderstand bei einer LED.
Das merkwürdige ist ja das es schon mal funktioniert hat mit den 5V. Also das die LED hell geleuchtet hat. Funktioniert zeitenweise auch jetzt bei verschiedenen PINs aber nicht bei allen.
Ooooh,
der Mann spricht aus Erfahrung!
DDRD |= (1<<PD5);
das ist es wirklich gewesen. Danke mic!
Ich dachte wenn ich nichts schreibe, dass der Pin dann automatisch als Ausgang definiert ist. Dem ist aber seh ich gerade nicht so. Also wenn ich nichts schreibe ist der Pin dan einfach hochohmig ist das richtig????
Ich bedanke mich für eure schnellen Antworten
gruß![]()
Hallo
Ich hab' noch PORTD5 nach PD5 geändert. Wenn der Port auf Input eingestellt ist schaltet PORTD |= (1<<PORTD5); den PullUp ein. Dieser ist dann in Reihe zum 1k und der LED und hat wohl ca. 50K. Da sollte die LED eigentlich immer dunkel sein. Manche Pins haben aber Sonderfunktionen, möglicherweise erklärt das die hell leuchtende LED.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Richtig! Und wenn du nochmal drüber nachdenkst, wirst du auch feststellen, warum das so ist: wenn der Pin hochohmig ist, kann erst mal nichts kaputtgehen, was an dem Pin angeschlossen ist. Falls der Pin später mal Eingang sein soll und schon ein Signal anliegt, könnte es sonst Probleme geben.Zitat von Grenade
Klingt eigentlich logisch!
Ich bin froh das mein Problem gelöst wurde.
Lesezeichen