Go Down

Topic: Taster richtig abfragen (Read 49197 times) previous topic - next topic

Muecke

Jun 06, 2013, 06:52 pm Last Edit: Sep 19, 2017, 09:03 pm by Muecke
Hallo miteinander,

ich verwende ein arduino mega 2560 und habe dort einen Taster angebaut.
jetzt möchte ich den Taster abfrage sobald er gedrückt wurde und wider Los gelassen wird soll eine Aktion durchgeführt werden.
ich schaffe es den Taster abzufragen wann er gedrückt wurde aber nicht ob er wider los gelassen wurde :-(
kann mir da jemand weiterhelfen?

Gruß

Erster versuch:
Code: [Select]

// Variablen vergabe
int LED      = 13;
int Taster   =  4;
int Pause   = 1000; //sind 1000 mili Sekunden

// PIN Eigenschaft Ausgang / Eingang
void setup()
 {                
  pinMode(LED,   OUTPUT);       // LED PIN = Ausgang
  pinMode(Taster,   INPUT);     // Taster PIN = Eingang
 }

// Programm in Loop
void loop()
{

 if (digitalRead(Taster)== HIGH)
 {
    digitalWrite(LED, HIGH);      // LED Einschalten  
    delay(Pause);                 // Wie lange soll Pause gemacht werden
    digitalWrite(LED, LOW);       // LED Ausschalten
 }
}


Zweiter versuch:
Code: [Select]

// Variablen vergabe
int LED      = 13;
int Taster   =  4;
int Pause   = 1000; //sind 1000 mili Sekunden

// PIN Eigenschaft Ausgang / Eingang
void setup()
 {                
  pinMode(LED,   OUTPUT);       // LED PIN = Ausgang
  pinMode(Taster,   INPUT);     // Taster PIN = Eingang
 }

// Programm in Loop
void loop()
{

 if (digitalRead(Taster)== HIGH)
 {
 if (digitalRead(Taster)== LOW)
 {
   digitalWrite(LED, HIGH);      // LED Einschalten  
   delay(Pause);                 // Wie lange soll Pause gemacht werden
   digitalWrite(LED, LOW);       // LED Ausschalten
 }
 }
}



Taster.png


EDIT: habe das Bild sichtbar im Beitrag verlinkt.
- Anfänger in allen Hinsicht - Bilder sichtbar einstellen
1  Bild Hochladen (Attachements); 2 Beitrag Save; 3 Anhang rechter Mausklick; "Adresse des Links kopieren"; 4 Beitrag „Modify"; 5 img-Tags mit dem kopierten Link einfügen; 6 Beitrag Save
DANKE

uwefed

#1
Jun 06, 2013, 07:17 pm Last Edit: Jun 06, 2013, 07:20 pm by uwefed Reason: 1
schau mal: http://www.arduino.cc/en/Tutorial/Switch

Code: [Select]
if (digitalRead(Taster)== HIGH)
{
if (digitalRead(Taster)== LOW)
{

Da muß der Taster zuerst High sein und sofort danach LOW. Etwas unwahrscheinlich den Taster gerade in dem Moment loszulassen.

Grüße Uwe

Muecke


Da muß der Taster zuerst High sein und sofort danach LOW. Etwas unwahrscheinlich den Taster gerade in dem Moment loszulassen.


das ist richtig :-) daher bin ich auf der such e nach Hilfe wie man so was denn macht, wolte schon einen neuen Loop hinein sätzen die Frage ist dann nur wie man aus dem Loop wider heraus kommt :-)
- Anfänger in allen Hinsicht - Bilder sichtbar einstellen
1  Bild Hochladen (Attachements); 2 Beitrag Save; 3 Anhang rechter Mausklick; "Adresse des Links kopieren"; 4 Beitrag „Modify"; 5 img-Tags mit dem kopierten Link einfügen; 6 Beitrag Save
DANKE

ubetz

Hallo Muecke,

"while" könnte dir helfen:

Code: [Select]
if (digitalRead(Taster)== HIGH){
  while(digitalRead(Taster)== HIGH){
    // was er macht, solage der Taster gedrückt ist... oder auch einfach nix :-)
  }
  // was er danach machen soll
}

uwefed



Da muß der Taster zuerst High sein und sofort danach LOW. Etwas unwahrscheinlich den Taster gerade in dem Moment loszulassen.


das ist richtig :-) daher bin ich auf der such e nach Hilfe wie man so was denn macht, wolte schon einen neuen Loop hinein sätzen die Frage ist dann nur wie man aus dem Loop wider heraus kommt :-)

Ich hatte Dir auch eine Lösung gegeben:

http://www.arduino.cc/en/Tutorial/Switch


Grüße Uwe

Muecke


Ich hatte Dir auch eine Lösung gegeben:
http://www.arduino.cc/en/Tutorial/Switch

Grüße Uwe


die hatte ich auch nicht ausgeschlossen, sie ist nur auf Englisch und das dauert bei mir etwas länger da ich mir das erst übersäten muss.
- Anfänger in allen Hinsicht - Bilder sichtbar einstellen
1  Bild Hochladen (Attachements); 2 Beitrag Save; 3 Anhang rechter Mausklick; "Adresse des Links kopieren"; 4 Beitrag „Modify"; 5 img-Tags mit dem kopierten Link einfügen; 6 Beitrag Save
DANKE

uwefed

http://www.mathias-wilhelm.de/arduino/beispiele/taste-schaltet-led
modifizierter Kode aus dem Beispiel:
Code: [Select]

int inPin = 8;              // Input pin für Taster
int reading;               // Wert des Eingangs
int previous = LOW;    // Vorheiger Wert des Eingangs

// folgende Variablen müssen vom Typo unsigned long sein da millis() disen Variablentyp liefert.

unsigned long time = 0;         // letzter Zeitwert bei dem der Ausgangzustand wechselte.
unsigned long debounce = 200;   // Entprellzeit

void setup()
{
  pinMode(inPin, INPUT);
  pinMode(outPin, OUTPUT);
}

void loop()
{
  reading = digitalRead(inPin);

                    // Beim Wechsel des Eingangs von LOW zu HIGH und nach der Entprellzeit:
  if (reading == HIGH && previous == LOW && millis() - time > debounce) {
    time = millis();   
    Tue irgendwas
    }

                    // Beim Wechsel des Eingangs von HIGH zu LOW und nach der Entprellzeit:
  if (reading == LOW && previous == HIGH && millis() - time > debounce) {
    time = millis();   
    Tue irgendwas anderes
    }
  previous = reading;
}


Grüße Uwe

Muecke

wenn ich es richtig verstanden habe tut es das richtige :-) so wie ich mir das vorstelle,
doch verstanden habe ich das noch nicht, ich glaube da brauche ich noch etwas mehr
zeit für um das zu verstehen. Danke noch mal für die Tipps
- Anfänger in allen Hinsicht - Bilder sichtbar einstellen
1  Bild Hochladen (Attachements); 2 Beitrag Save; 3 Anhang rechter Mausklick; "Adresse des Links kopieren"; 4 Beitrag „Modify"; 5 img-Tags mit dem kopierten Link einfügen; 6 Beitrag Save
DANKE

Go Up