Go Down

Topic: Code in einer loop -Schleife wiederholen??? (Read 692 times) previous topic - next topic

invisible09

Jan 31, 2013, 06:16 pm Last Edit: Jan 31, 2013, 07:32 pm by uwefed Reason: 1
Hallo, Ich habe diesen code geschrieben:

Code: [Select]
#include <IRremote.h>

int RECV_PIN = 6;
int led1 = 13;
int led2 = 31;
int led3 = 30;
long randOn = 0;                  
long randOff = 0;
int x;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
 Serial.begin(9600);
 irrecv.enableIRIn();
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
 
}

void loop() {
 if (irrecv.decode(&results)) {
   Serial.println(results.value, DEC);
   irrecv.resume();
 }
 switch(results.value){


 case 0x1CE3807F:                   //Der Code meiner ir-Fernbedienung
 [b]digitalWrite (led1, LOW);[/b]         //Möchte gerne dass sich dieser Teil immer wiederholt bis ich den Knopf erneut drücke!!
 [b]digitalWrite (led2, LOW);
 digitalWrite (led3, LOW);
 delay(600);
 digitalWrite (led1, HIGH);
 digitalWrite (led2, HIGH);
 digitalWrite (led3, HIGH);
 delay(600);[/b]
 
 }  
}


Nun hätte ich gerne wie oben schon gesagt dass sich der Teil immer wieder wiederholt
bis ich diese Taste erneut drücke!!

Ist das möglich?? Wenn antwortet bitte mit Vorschlägen  :)

vieledinge

Ist doch simpel.

Du nimmst ne zwete Variable, die Du beim Eingehen des IR-Signals toggelst: Ist sie false, dann setzt Du sie auf true. Ist sie true, dann setzt Du sie auf false. Das Ganze dann noch entprellen bzw. nach dem Umschalten eine gewisse Zeit die IR-Auswertung aussetzen, damit nicht gleich wieder umgeschaltet wird.

Und dann noch im Loop die Variable auswerten und nur bei true die gewünschte Ausführung vornehmen.

Doc_Arduino

Hallo,

laut meinem Verständnis würde ich das mit einer zusätzlichen Variablen machen und diese mittels if Schleife auswerten, wenn 1 wird die Schleife mit Deinem Programm durchlaufen, wenn die 0 ist, dann eben nicht. Mittels ExklusiveOder ( XOR )kann man eine 1 zur 0 machen und wieder zurück zur 1, je nach Tastendruck. Toggeln genannt.

http://www.arduino.cc/en/Reference/Bitwise

Jetzt änderst Du Dein Programm so, dann XOR nur ausgeführt wird wenn eine Taste gedrückt und und wertest es anschließend aus ...



Tschau
Doc Arduino

Go Up