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
  ArduinoDroid Probleme Brother Tak 1 198 10.09.2016 22:12
Letzter Beitrag: Brother Tak
  Roboter-Bau Probleme blebbens 8 374 12.07.2016 07:35
Letzter Beitrag: Binatone
  Probleme mit sprintf() und dtostrf() GMBU 11 794 22.06.2016 10:52
Letzter Beitrag: GMBU
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 6 938 06.05.2016 18:34
Letzter Beitrag: arduinopeter
  Programme vom UNO auf nano , mini Pro portieren Probleme anwo 19 1.165 17.04.2016 21:12
Letzter Beitrag: hotsystems
  Probleme beim Auslesen eines IR Empfängers linuxpaul 7 570 06.03.2016 14:44
Letzter Beitrag: hotsystems
  Problem bei Temperatur/volt Ampere Abfrage LCD Flimmern nuernie66 9 639 04.03.2016 19:25
Letzter Beitrag: hotsystems
  I²C vom NANO zum PI Probleme mit High/Low Bit Tobias1984 4 328 29.02.2016 00:00
Letzter Beitrag: hotsystems
  Probleme beim auswählen des Ports Levi 11 807 21.02.2016 18:00
Letzter Beitrag: hotsystems
  BARCODE Abfrage über Ethernet Shield Wampo 3 789 05.12.2015 12:11
Letzter Beitrag: Wampo

Gehe zu:


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