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
IRemote probleme mit abfrage
04.02.2016, 22:10
Beitrag #1
IRemote probleme mit abfrage
Hallo,
ich bin am verzweifen und habe gegooglet und gegooglt


ich möchte mit der IRemot eine led eischalten
und wenn ich einen ander taster drücke die led ausgeht
was stimmt im code nicht sie geht an aber nicht weiter bei anderer Taste?



#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode( 13 , OUTPUT);
}

void loop() {
if (irrecv.decode(&results))

if(results.value==0xff629d)
{
Serial.println("UP");
digitalWrite(13, HIGH);
delayMicroseconds(500);
digitalWrite(13, LOW);
delayMicroseconds(500);
}
else


if(results.value=0xffa857)
{
digitalWrite(13, LOW);
Serial.println("DOWN");
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.02.2016, 22:26 (Dieser Beitrag wurde zuletzt bearbeitet: 04.02.2016 22:45 von hotsystems.)
Beitrag #2
RE: IRemote probleme mit abfrage
Bitte setze den Sketch in Code-Tags, dann ist dieser besser zu lesen (Schaltfläche #). Das kannst du auch nachträglich machen.

Du schaltest die Led ja im ersten Schaltbefehl wieder aus, und es fehlt am Ender der "if-Abfrage" folgende Zeile:

Code:
irrecv.resume();

Und eine Klammer fehlt auch noch, das sollte dann so aussehen:
Code:
void loop() {
  if (irrecv.decode(&results))
  {
    if (results.value == 0xff629d)
    {
      Serial.println("UP");
      digitalWrite(13, HIGH);
      delayMicroseconds(500);
      digitalWrite(13, LOW);    // Led gleich wieder aus!
      delayMicroseconds(500);
    }
    else if (results.value = 0xffa857)
      {
        digitalWrite(13, LOW);
        Serial.println("DOWN");
      }
    irrecv.resume();
  }
}

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.02.2016, 22:58
Beitrag #3
RE: IRemote probleme mit abfrage
(04.02.2016 22:26)hotsystems schrieb:  Bitte setze den Sketch in Code-Tags, dann ist dieser besser zu lesen (Schaltfläche #). Das kannst du auch nachträglich machen.

Du schaltest die Led ja im ersten Schaltbefehl wieder aus, und es fehlt am Ender der "if-Abfrage" folgende Zeile:

Code:
irrecv.resume();

Und eine Klammer fehlt auch noch, das sollte dann so aussehen:
Code:
void loop() {
  if (irrecv.decode(&results))
  {
    if (results.value == 0xff629d)
    {
      Serial.println("UP");
      digitalWrite(13, HIGH);
      delayMicroseconds(500);
      digitalWrite(13, LOW);    // Led gleich wieder aus!
      delayMicroseconds(500);
    }
    else if (results.value = 0xffa857)
      {
        digitalWrite(13, LOW);
        Serial.println("DOWN");
      }
    irrecv.resume();
  }
}

danke für die schnelle Antwort
ich habe es gerade so getestet wie du es beschreiben hast
jetzt geht die led kurz an und gleich wieder aus Sad


#include <IRremote.h>

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode( 13 , OUTPUT);
}

void loop() {
if (irrecv.decode(&results))
{
if (results.value == 0xff629d)
{
Serial.println("UP");
digitalWrite(13, LOW);
delayMicroseconds(500);
digitalWrite(13, HIGH); // Led gleich wieder aus!
delayMicroseconds(500);
}
else if (results.value = 0xffa857)
{
digitalWrite(13, LOW);
Serial.println("DOWN");
}
irrecv.resume();
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.02.2016, 23:01 (Dieser Beitrag wurde zuletzt bearbeitet: 05.02.2016 08:28 von hotsystems.)
Beitrag #4
RE: IRemote probleme mit abfrage
Nochmals, Bitte setze den Sketch in Code-Tags, wie schon beschrieben!

Und hier "else if (results.value = 0xffa857)" ist noch ein Fehler.
Muss heißen: "else if (results.value == 0xffa857)"

Und das die Led wieder aus geht, habe ich auch beschrieben.
Da musst du den Befehl rausnehmen. Ich weiß nicht warum du den da reingesetzt hast.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.02.2016, 23:38
Beitrag #5
RE: IRemote probleme mit blinken
Hallo,
so jetzt bin ein Stück weiter
aber hänge jetzt schon seit Stunden am Code rum
und komme nicht darauf warum meine Led nicht blinkt wenn ich "3" drücke
alles funktioniert bis auf das die Led bei "3" nur an geht und beim nächsten drücken wieder aus - aber nicht blinkt??

PHP-Code:
#include <elapsedMillis.h>

unsigned long _ABVAR_1_t 0UL ;
unsigned long _ABVAR_2_z 0UL ;
unsigned long _ABVAR_3_lt 0UL ;

elapsedMillis timeElapsed//declare global if you don't want it reset every time loop runs

// Pin 13 has an LED connected on most Arduino boards.
int led 13;

// delay in milliseconds between blinks of the LED
unsigned int interval 100;

// state of the LED = LOW is off, HIGH is on
boolean ledState LOW;

void setup()
{
  
pinModeled OUTPUT);
  
Serial.begin(9600);
  
pinMode(ledOUTPUT);
}

void loop()
{
  
elapsedMillis timeElapsed;
  
_ABVAR_1_t Serial.parseInt() ;
 
// _ABVAR_2_z = millis() ;
  //_ABVAR_3_lt = millis() ;
  
if (( ( _ABVAR_1_t ) == ( 1UL ) ))
  {
    
digitalWriteled HIGH );
  }
  if (( ( 
_ABVAR_1_t ) == ( 2UL ) ))
  {
    
digitalWriteled LOW );
  }
  
  if (( ( 
_ABVAR_1_t ) == ( 3UL ) ))
      
      {             
          if (
timeElapsed interval)       
      {
        
ledState = !ledState;    // toggle the state from HIGH to LOW to HIGH to LOW ... 
             
digitalWrite(ledledState);
             
Serial.println(timeElapsed);
            
timeElapsed 0
      
           
      } 
  }

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.02.2016, 11:33
Beitrag #6
RE: IRemote probleme mit blinken
(08.02.2016 23:38)schnutzkurt schrieb:  so jetzt bin ein Stück weiter
aber hänge jetzt schon seit Stunden am Code rum
und komme nicht darauf warum meine Led nicht blinkt wenn ich "3" drücke
alles funktioniert bis auf das die Led bei "3" nur an geht und beim nächsten drücken wieder aus - aber nicht blinkt??

Ich vermisse hier IRremote, das hat nichts mit dem Thread zu tun.

Das blinkt nicht, weil im Code keine Funktion "blinken" vorhanden ist.
Da ist nur "toggeln" (Ein/Aus) vorhanden. Sieh dir "BlinkWithoutDelay" an und setze das in den Code rein, dann blinkt es auch.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.02.2016, 18:29
Beitrag #7
RE: IRemote probleme mit blinken
(09.02.2016 11:33)hotsystems schrieb:  
(08.02.2016 23:38)schnutzkurt schrieb:  so jetzt bin ein Stück weiter
aber hänge jetzt schon seit Stunden am Code rum
und komme nicht darauf warum meine Led nicht blinkt wenn ich "3" drücke
alles funktioniert bis auf das die Led bei "3" nur an geht und beim nächsten drücken wieder aus - aber nicht blinkt??

Ich vermisse hier IRremote, das hat nichts mit dem Thread zu tun.

Das blinkt nicht, weil im Code keine Funktion "blinken" vorhanden ist.
Da ist nur "toggeln" (Ein/Aus) vorhanden. Sieh dir "BlinkWithoutDelay" an und setze das in den Code rein, dann blinkt es auch.


danke für die Hilfe

ich glaube es ist besser zu erklären was ich möchte
Also:
eine iRemote auslesen = habe ich geschaft
je nach Wert Befehle so lange ausführen z.B. einen Schrittmotor mit Endstufe
HIGH/ LOW delay 40 micros 9000 mal (aber dazwischen immer nachschauen ob neue IRemote code gekommen sind) wenn ja dann den neuen code ausführen
Z.B Schrittmotor das ganze rückwärts usw.

habe zum testen eine led an pin 13 (anstelle des Motors)
es funktioniert so weit bis das die led nur einmal blinkt statt zu blinken bis ein
neuer IR code kommt.
habe schon allerlei versucht /gelesen / muß ich den IR code im eeprom speichern bis ein neuer code kommt und wenn ja wie?
oder wie sonst ??

wäre super wenn ich ein paar zeile code von euch bekommen könnte um es nachzu vollziehen und besser zu verstehen.

der überarbeitete code

PHP-Code:
#include <elapsedMillis.h>
#include <IRremote.h>

int RECV_PIN 11;
int led 13;
unsigned long current;

elapsedMicros timeElapsed;

unsigned int interval 400;
boolean ledState LOW;

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  
Serial.begin(9600);
   
pinModeled OUTPUT);
  
irrecv.enableIRIn(); // Start the receiver
}

void loop() 
{
  if (
irrecv.decode(&results)) 
  {
   if(
results.value==0xff629d)
    {
     
Serial.println("UP");}
     
     if (
timeElapsed interval)
     { 
      
ledState = !ledState;        
      
digitalWrite(ledledState);
      }
  
   if(
results.value==0xffa857){
     
Serial.println("DOWN");
     
digitalWrite(ledLOW);
   }
   if(
results.value==0xff22dd){
     
Serial.println("LEFT");
      
digitalWrite(ledHIGH);
   }
   if(
results.value==0xffc23d){
     
Serial.println("RIGHT");
   }
   if(
results.value==0xff02fd){
     
Serial.println("OK");
   }
   
timeElapsed 0
      
irrecv.resume(); // Receive the next value
  
}

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.02.2016, 18:43
Beitrag #8
RE: IRemote probleme mit blinken
(09.02.2016 18:29)schnutzkurt schrieb:  es funktioniert so weit bis das die led nur einmal blinkt statt zu blinken bis ein
neuer IR code kommt.
habe schon allerlei versucht /gelesen / muß ich den IR code im eeprom speichern bis ein neuer code kommt und wenn ja wie?
oder wie sonst ??
Wenn du mit delay arbeitest, geht das mit dem Speichern im EEProm nicht. Da während des delay der Contoller nichts macht, außer warten. Er wird auch keinen IR-Code empfangen.

Ich habe dir doch schon das Beispiel "BlinkWithoutDelay" genannt, da steht alles drin. Das gibt es in Deutsch und in Englisch.

Zitat:wäre super wenn ich ein paar zeile code von euch bekommen könnte um es nachzu vollziehen und besser zu verstehen.
Siehe oben.

Und noch etwas hier aus dem Forum:

http://www.arduinoforum.de/arduino-Threa...kl%C3%A4rt

Das eingebaut und es wird blinken.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Probleme beim Hochladen eines Sketches Thandor 8 441 08.06.2018 13:19
Letzter Beitrag: Thandor
  Arduin Radio Head Library driver Probleme gandalf7588 3 478 08.04.2018 13:05
Letzter Beitrag: gandalf7588
  Probleme mit multiplexing Thor Wallhall 55 3.867 18.03.2018 18:06
Letzter Beitrag: Tommy56
  Treppenbeleuchtung Probleme mit LED Anzahl Cellman 1 310 18.03.2018 10:13
Letzter Beitrag: hotsystems
  Probleme mit Scheduler Arduino DUE juergen001 5 507 15.03.2018 11:44
Letzter Beitrag: juergen001
  Probleme mit DS3231 Geeros#18 6 573 26.02.2018 14:09
Letzter Beitrag: Tommy56
  Problem mit Wire.available() abfrage avoid 1 414 11.01.2018 13:40
Letzter Beitrag: Tommy56
  Probleme mit der Software Thor Wallhall 8 935 31.12.2017 11:34
Letzter Beitrag: Tommy56
  While Schleife in einer If abfrage Thorsten_S 4 573 30.12.2017 16:37
Letzter Beitrag: Thorsten_S
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 17 4.782 30.12.2017 00:40
Letzter Beitrag: koma1965

Gehe zu:


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