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();
  }
}

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.

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.

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.

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 Serieller Kommunikation Adruino Nextero 11 134 Heute 16:33
Letzter Beitrag: hotsystems
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 13 2.771 08.12.2017 15:17
Letzter Beitrag: Drahreg
  Probleme mit multiplexing Thor Wallhall 50 1.931 01.11.2017 21:15
Letzter Beitrag: Thor Wallhall
  Interrupt und I2C gibt das Probleme? Badger1875 5 339 03.10.2017 23:26
Letzter Beitrag: GuaAck
  LEDs ansteuern ohne Delay mir MIDI abfrage OnkelPelle 11 1.059 20.07.2017 22:35
Letzter Beitrag: hotsystems
Big Grin Probleme mit pgm_read_word NoGi 9 1.615 23.04.2017 10:09
Letzter Beitrag: NoGi
Sad [Gelöst] Arduino bleibt in If-Abfrage hängen Hugeldugelking 2 393 11.04.2017 11:18
Letzter Beitrag: Hugeldugelking
  Probleme mit einem Sketch für einen LED Cube 5x5x5 Frank1234 5 586 13.03.2017 12:12
Letzter Beitrag: Tommy56
  Zeitabhängige LED Anzeige mit 2x4 Input Abfrage do1xxy 2 429 05.03.2017 19:25
Letzter Beitrag: do1xxy
  Probleme bei Countdown ferdi 0 399 23.01.2017 10:45
Letzter Beitrag: ferdi

Gehe zu:


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