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
  led mit taster moankopf 11 509 25.12.2017 23:34
Letzter Beitrag: Chopp
  Taster 1 mal drücken = LED 2 mal blinken oder aufblitzen gordolino 19 1.685 03.11.2017 15:14
Letzter Beitrag: ardu_arne
  Richtungsblinker und Warnblinker über jeweils einen Schalter Crazydiver 25 1.464 04.10.2017 12:47
Letzter Beitrag: hotsystems
  Taster: Wechselschaltung Nordlicht 33 2.786 18.09.2017 09:35
Letzter Beitrag: MicroBahner
Lightbulb mehrere Funktionen mit Schalter mechastef 7 1.044 21.08.2017 22:34
Letzter Beitrag: SkobyMobil
  Taster an Interrupt - Prellen geschickter vermeiden als millis() zu prüfen? Flap 19 2.780 04.08.2017 08:10
Letzter Beitrag: Binary1
  Servo mit einem Taster und 433mhz steuern Thor Wallhall 63 4.180 29.07.2017 11:02
Letzter Beitrag: Thor Wallhall
  Taster als Schalter -> Blinker bino29 8 1.145 22.06.2017 07:21
Letzter Beitrag: hotsystems
Question Relais und Knopf/Schalter le16on 8 702 20.03.2017 22:33
Letzter Beitrag: Tommy56
Smile Motorsteuerung mit Taster Eggi123 11 1.238 26.02.2017 15:48
Letzter Beitrag: MicroBahner

Gehe zu:


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