LED soll blinken, bleibt aber nur an?
Hallo, ich bin noch ein Arduino Anfänger und ich habe mir von den beispielen die blink vorlage rausgenommen und ausgeführt. aber die led bleibt nur an, dh es blinkt nicht. code:
void setup() { // Port 13 wird als Ausgang festgelegt pinMode(13, OUTPUT); }
void loop() { digitalWrite(13, HIGH); // Port 13 wird high geschaltet delay(1000); // eine Sekunde warten digitalWrite(13, LOW); // Port 13 wird low geschaltet delay(1000); // eine Sekunde warten }
und schaltung gibt es da als bild
mfg loewesk
4 Antworten
Vielleicht blinkt die ja und du kannst es aufgrund der hohen Frequenz nicht sehen?
Nein, es liegt nicht an der hohen Frequenz. Ich habe auch mal ein bisschen gegooglet und den Quellcode den du benutzt auf den offiziellen Arduinoseiten gefunden, also der stimmt soweit. Eine zu hohe Frequenz hättest du, wenn du delay(1) schreiben würdest, dann wäre die Frequenz 1000 mal pro Sekunde, aber da du delay(1000) benutzt, bist du bei einmal pro Sekunde, das ist ja gut so :)
Du hast den ersten delay (1000)- Befehl als Komentar drin, nicht aber als Befehl! Der zweite delay arbeitet als Befehl.
Der Loop wird gestartet, Ausgang 13 auf High gesetzt und im nächten Arbeitsschritt sofort wieder auf Low... dann wartet der Arduino eine Sekunde und das gleiche Spielchen geht von vorne los. Nachdem Du die LED an +5V angeschlossen hast und nicht auf Masse, leuchtet sie "dauerhaft", weil sie über das Low am Ausgang ihre Masse bekommt.
Wenn Du ein Speicher- Oszi dranhängen würdest, könntest Du die im Microsekundenbruchteil liegende High- Zeit sehen... aber nicht mir dem Auge!
Schau doch noch mal nach!
Mfg
Bist du sicher, dass du Port 13 angeschlossen hast und nicht irgendeinen anderen Port, der immer Strom gibt, also immer auf HIGH steht?
Ah okay, ich kenne mich mit dem Arfuino nicht aus, aber wenn ich mir das Bild so angucke, dann hast du so verkabelt:
5v - Widerstand - langes Beinchen der LED - Port 13
Das bedeutet, durch die LED fließen immer die 5 Volt und darum leuchtet sie durchgehend. Aber interessant, dass Port 13 hier als Minuspol fungiert.
Probiere doch mal folgendes:
Port 13 wird der Pluspol und GND (Ground) der Minuspol (GND sollte grundsätzlich immer der Minuspol sein), also:
Port 13 - Widerstand - langes Beinchen der LED - GND
Ja es ist nix passiert gar nichts. Nix hat geleistet auch nicht am anfang
Ist delay(1000); in einer eigenen Zeile? Oder als Kommentar in der gleichen Zeile hinter // Port........?
und wie ändere ich die hohe frequenz?