LED soll blinken, bleibt aber nur an?

ch hoffe es ist gut erkennbar - (Hardware, Programm, Elektrik)

4 Antworten

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

loewesk 
Fragesteller
 16.07.2016, 09:05

und wie ändere ich die hohe frequenz?

0
fuitak  16.07.2016, 09:27
@loewesk

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

1

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?

loewesk 
Fragesteller
 16.07.2016, 09:29

ich habe sie an port 13 und an 5v angeschlossen

0
fuitak  16.07.2016, 09:39
@loewesk

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 

0
loewesk 
Fragesteller
 16.07.2016, 10:06
@fuitak

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

0
fuitak  16.07.2016, 10:10
@loewesk

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

0
loewesk 
Fragesteller
 16.07.2016, 12:26

Funkt immer noch nicht ich Brauche hilfe😲😲😧

0
fuitak  16.07.2016, 13:15
@loewesk

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

0
loewesk 
Fragesteller
 16.07.2016, 13:28

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

0

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

loewesk 
Fragesteller
 17.07.2016, 08:25

In eigener Zeile und als befehl

0
kuku27  17.07.2016, 09:07
@loewesk

So funktioniert es, da sind alle Kommentare weg:

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

0
kuku27  19.07.2016, 16:08
@kuku27

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

0