INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Schalter als Taster perfekte Lösung?
27.07.2015, 22:20 (Dieser Beitrag wurde zuletzt bearbeitet: 27.07.2015 23:13 von julius858.)
Beitrag #1
Schalter als Taster perfekte Lösung?
Hallo zusammen,

ich habe einen Schalter, dieser ist entweder immer HIGH oder LOW.

Ich möchte jetzt gerne, dass der Schalter einen If-Schleife ausführt, wenn dieser von HIGH auf LOW oder von LOW auf HIGH wechselt.

Die If-Schleife soll also ausgeführt werden, wenn sich der Zustand des Schalters ändert, egal ob von HIGH auf LOW oder von LOW auf HIGH.

Im Internet habe ich nur dies hier gefunden:

Code:
oldbutton = 0;
buttonState = 0;

void setup()
{
...
}
void loop()
{
  buttonState = digitalRead(button);

if (buttonState != oldbutton)
{
mach etwas
}

oldbutton = buttonState;
}

Nur sobald der Code etwas komplizierter wird, klappt das nicht mehr so gut.
Gibt es da vielleicht noch bessere Lösungen?

Ich hoffe, mir kann jemand helfen..

Wünsch euch allen eine schöne Woche!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.07.2015, 23:09
Beitrag #2
RE: Schalter als Taster perfekte Lösung?
(27.07.2015 22:20)julius858 schrieb:  
Code:
void loop()
{
  buttonState = digitalRead(button);

if (button != oldbutton)
{
mach etwas
}

oldbutton = button;
}

Ich vermute mal der Fehler liegt an diesen beiden Zeilen:

if (button != oldbutton)
und
oldbutton = button;

da müsste es heißen:

if (buttonState != oldbutton)
und
oldbutton = buttonState;

anders wird der Wert der Variablen nicht genutzt.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.07.2015, 23:15 (Dieser Beitrag wurde zuletzt bearbeitet: 27.07.2015 23:16 von julius858.)
Beitrag #3
RE: Schalter als Taster perfekte Lösung?
Upps, stimmt. Ich korrigiere das mal gerade schnell. Danke!

Ich habe mich da nur vertan.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.07.2015, 07:47
Beitrag #4
RE: Schalter als Taster perfekte Lösung?
(27.07.2015 22:20)julius858 schrieb:  Nur sobald der Code etwas komplizierter wird, klappt das nicht mehr so gut.
Gibt es da vielleicht noch bessere Lösungen?
So sollte es dann funktionieren.
Dann liegt es vermutlich an dem Code der in "mach etwas" ausgeführt wird. Der kann natürlich das gesamte Verhalten negativ beeinflussen.
Evtl. vorhandene Delays() aus dem Code entfernen!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.07.2015, 11:44
Beitrag #5
RE: Schalter als Taster perfekte Lösung?
(27.07.2015 22:20)julius858 schrieb:  Nur sobald der Code etwas komplizierter wird, klappt das nicht mehr so gut.
Gibt es da vielleicht noch bessere Lösungen?
Hi,
wenn etwas zu kompliziert wird, dann macht man sich eine Funktion.
Code:
# define SWITCH 3  // nehmen wir man an, Pin 3

boolean switchChanged() {
   static int oldState = LOW;  // oder auch HIGH, je nachdem

   int currentState = digitalRead(SWITCH);
   if(currentState == oldState)
      return false;
   oldState = currentState;
   return true;
}

void setup()
{
...
}

void loop()
{
   if (switchChanged()) {
       mach etwas
   }
}

Später kann man dann in der Funktion auch noch entprellen.

Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Richtungsblinker und Warnblinker über jeweils einen Schalter Crazydiver 25 902 04.10.2017 12:47
Letzter Beitrag: hotsystems
  Taster: Wechselschaltung Nordlicht 33 1.739 18.09.2017 09:35
Letzter Beitrag: MicroBahner
Lightbulb mehrere Funktionen mit Schalter mechastef 7 724 21.08.2017 22:34
Letzter Beitrag: SkobyMobil
  Taster an Interrupt - Prellen geschickter vermeiden als millis() zu prüfen? Flap 19 1.987 04.08.2017 08:10
Letzter Beitrag: Binary1
  Servo mit einem Taster und 433mhz steuern Thor Wallhall 63 2.886 29.07.2017 11:02
Letzter Beitrag: Thor Wallhall
  Taster als Schalter -> Blinker bino29 8 767 22.06.2017 07:21
Letzter Beitrag: hotsystems
Question Relais und Knopf/Schalter le16on 8 494 20.03.2017 22:33
Letzter Beitrag: Tommy56
Smile Motorsteuerung mit Taster Eggi123 11 887 26.02.2017 15:48
Letzter Beitrag: MicroBahner
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 742 18.02.2017 08:33
Letzter Beitrag: renid55
  Hilfe bei Taster huber5093 11 737 14.02.2017 19:26
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste