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
  Taster schalten LEDs mit Schieberegister Sonne 3 256 26.03.2018 20:08
Letzter Beitrag: hotsystems
  Arraygröße zur Laufzeit festlegen (bessere Lösung als malloc?) da_user 5 343 14.03.2018 09:53
Letzter Beitrag: da_user
  LCD Menü per taster Herberto 3 316 21.02.2018 17:56
Letzter Beitrag: Herberto
  LCD Menü per taster Luppi 5 3.415 18.02.2018 12:44
Letzter Beitrag: ardu_arne
  Temperatur mit Taster um +1 erhöhen T100 7 450 09.02.2018 04:58
Letzter Beitrag: T100
  led mit taster moankopf 11 792 25.12.2017 23:34
Letzter Beitrag: Chopp
  Taster 1 mal drücken = LED 2 mal blinken oder aufblitzen gordolino 19 2.190 03.11.2017 15:14
Letzter Beitrag: ardu_arne
  Richtungsblinker und Warnblinker über jeweils einen Schalter Crazydiver 25 1.679 04.10.2017 12:47
Letzter Beitrag: hotsystems
  Taster: Wechselschaltung Nordlicht 33 3.363 18.09.2017 09:35
Letzter Beitrag: MicroBahner
Lightbulb mehrere Funktionen mit Schalter mechastef 7 1.260 21.08.2017 22:34
Letzter Beitrag: SkobyMobil

Gehe zu:


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