Frage von loewesk, 102

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

Antwort
von Michahilft, 73

Vielleicht blinkt die ja und du kannst es aufgrund der hohen Frequenz nicht sehen?

Kommentar von loewesk ,

und wie ändere ich die hohe frequenz?

Kommentar von fuitak ,

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 :)

Antwort
von fuitak, 51

Bist du sicher, dass du Port 13 angeschlossen hast und nicht irgendeinen anderen Port, der immer Strom gibt, also immer auf HIGH steht?

Kommentar von loewesk ,

ich habe sie an port 13 und an 5v angeschlossen

Kommentar von fuitak ,

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 

Kommentar von loewesk ,

Jetzt funktionierts gar nichts außer dass es ganz am anfang ganz kurz licht ausstrahlt und gleich wieder ausgeht

Kommentar von fuitak ,

Kopiere mal die vier Befehle (digitalWrite, delay, digitalWrite, delay) ein paar mal untereinander, aber innerhalb der loop funktion. Geht es dann? Wenn ja, dann wird loop nicht korrekt immer wieder aufgerufen

Kommentar von loewesk ,

Funkt immer noch nicht ich Brauche hilfe😲😲😧

Kommentar von fuitak ,

Du musst schon sagen, was genau du jetzt probiert hast und was genau dann passiert ist, sonst kann dir aus der Ferne keiner helfen ;)

Kommentar von loewesk ,

Ja es ist nix passiert gar nichts. Nix hat geleistet auch nicht am anfang

Antwort
von Gluglu, 17

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

Antwort
von kuku27, 9

Ist delay(1000); in einer eigenen Zeile? Oder als Kommentar in der gleichen Zeile hinter // Port........?

Kommentar von loewesk ,

In eigener Zeile und als befehl

Kommentar von kuku27 ,

So funktioniert es, da sind alle Kommentare weg:

void loop() {
digitalWrite(13, HIGH);
delay(1000); // wait for a second
digitalWrite(13, LOW);
delay(1000); 
}

Kommentar von kuku27 ,

Wie sicher bist dass die Übertragung deines Programms auf das Board funktioniert?

Keine passende Antwort gefunden?

Fragen Sie die Community