Pages: [1]   Go Down
Author Topic: Code in einer loop -Schleife wiederholen???  (Read 523 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 72
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo, Ich habe diesen code geschrieben:

Code:
#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  smiley
« Last Edit: January 31, 2013, 01:32:32 pm by uwefed » Logged

Chemnitz/Saxony/Germany
Offline Offline
Full Member
***
Karma: 0
Posts: 107
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
God Member
*****
Karma: 13
Posts: 859
ATmega 2560
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ...



Logged

Tschau
Doc Arduino

Pages: [1]   Go Up
Jump to: