Forum: Mikrocontroller und Digitale Elektronik definierter Zustand nach Stromversorgung


von Lutz R. (Firma: selbstständig) (lutz100)


Angehängte Dateien:

Lesenswert?

Hallo, ich habe eine kleine Funkstrecke mit einem Arduino Uno einem 
nRF24 und 2 Tastern/ LED gebaut. Funktioniert soweit. Was aber das 
Problem ist, dass die LED´s am Empfänger in irgendwelche Zustände gehen, 
sobald ich den Uno mit Strom versorge. Wie könnte ich das abstellen ?

von STK500-Besitzer (Gast)


Lesenswert?

Lutz R. schrieb:
> Wie könnte ich das abstellen ?

Indem du sie auf einen definierten Zustand setzt!

von Lutz R. (Firma: selbstständig) (lutz100)


Lesenswert?

Ja. OK. Ich habe die LED´s jetzt auf LOW gesetzt und es geht. Wenn der 
RX hoch fährt bleibt alles dunkel :-) Aber was ich noch hinbekommen 
habe, ist das Problem, das die LED´s weiter leuchten auch wenn ich TX 
vom Strom nehme und die gerade an waren. Ich habe doch die PIN auf LOW 
gesetzt ?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Lutz R. schrieb:
> Angehängte Dateien
Es ist übrigens vorteilhaft, Quellcode als Text anzuhängen. Oder soll 
man da jetzt Pixel kopieren und einen neuen Quelltext malen?

Lutz R. schrieb:
> Ich habe doch die PIN auf LOW gesetzt ?
Welche Pins in welcher Schaltung? Was ist da RX und TX und wo sind da 
LEDs?

Wenn du die LEDs bei einem Verbindungsabbruch ausschalten willst, dann 
musst du den Verbindungsabbruch erkennen. Du könntest einfach dauernd 
was schicken und die LEDs ausschalten, wenn das Telegramm dann 100ms 
lang nicht kommt.

von S. D. (der_nachtfuchs)


Lesenswert?

Im loop() setzt du bei jedem Durchlauf die Variable "buttonState" auf 
den Wert, den radio.read() zurückgibt.

Wenn du deinen Transmitter abschaltest, bevor er einen "buttonState == 
1" oder "buttonState == 3" auslösen konnte, bleibt die Variable auf dem 
zuletzt zugewiesenen Wert. Die Programmschleife bleibt, solange "radio" 
nicht verfügbar ist, in der Anweisung "while (!radio.available());" 
hängen, hat also nie die Chance, der Variable einen anderen Wert 
zuzuweisen.

Du könntest folgendes versuchen:
1
  while (!radio.available()) {
2
    buttonState = 0;
3
    digitalWrite(led1, LOW);
4
    digitalWrite(led2, LOW);
5
  }

von Lutz R. (Firma: selbstständig) (lutz100)


Lesenswert?

Lothar M. schrieb:
> Es ist übrigens vorteilhaft, Quellcode als Text anzuhängen.

Ja. Sorry. Hast Recht. Ich wusste aber nicht gleich, wie ich das aus 
Arduino rüber ziehe

Lothar M. schrieb:
> Welche Pins in welcher Schaltung? Was ist da RX und TX und wo sind da
> LEDs?

ich dachte das erkennt man ja aus dem Quelltext und wollte hier nicht zu 
viel "spamen"

Ich gelobe mich zu bessern :-)

von Lutz R. (Firma: selbstständig) (lutz100)


Lesenswert?

Danke Nachtfuchs :-) So funzt es !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.