Arduino: Infrarot-Receiver Module

IR-Sensor

Infrarot-Receiver Module (DFR0094)

Momentan steuere ich meinen 4WD-Platform mit einer handelsüblichen Universal-Fernbedienung. Dafür habe ich mir ein digitales Infrarot Receiver Modul (DFR0094) besorgt. Dieses Modul besitzt einen IR-Detektor, der die Signale der Fernbedienung für den Arduino empfangbar macht. So ein Infrarot Receiver Modul kostet gerade mal 3.30 Euro – da konnte ich einfach nicht widerstehen.

Mit Hilfe der Multi-Protocol Infrared Remote Library for the Arduino (Download) von Ken Shirriff war es überhaut kein Problem den Fernbedienungs-Teil der 4WD-Platform zu realisieren. Damit kann ich die Platform nun einfach hin und her steuern. Und natürlich kann ich nun auch komplexere Funktionen aus der Entfernung starten.

Der Sensor erkennt die Signale der Fernbedienung bis zu einer Entfernung von etwa 6 bis 8 Meter sicher. Wenn die IR-Diode der Fernbedienung und der Sensor genau ausgerichtet sind, dann funktioniert es natürlich noch viel weiter.

Hier ein kleiner Beispiels-Sketch für die Verwendung des Infrarot Receiver Moduls:

— schnipp —

/*
 * Receiving IR codes
 *
 * An IR detector/demodulator must be connected to the input pin 11
 * IRremote library must be in place
 * -> see http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html
 *
 * Version: 0.1 2011.01.05
 * Copyleft: 2011 Heiner Otterstedt
 * Weblinks: http://hobby-werkstatt-blog.de/
 */

#include <IRremote.h>

int pinReceifer = 11;

IRrecv irrecv(pinReceifer);

decode_results results;

// Dummy motor control functions
void goForward() { Serial.println("going forward..."); }
void goBackward() { Serial.println("going backward..."); }
void goLeft() { Serial.println("turning left..."); }
void goRight() { Serial.println("turning right"); }
void goStop() { Serial.println("full stop!"); }

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

void loop()
{ int result;

 if (irrecv.decode(&results))
 { result = results.value & 0x00ff;

    switch(result)
    { case 0x0020: goForward(); break;
      case 0x0021: goBackward(); break;
      case 0x0010: goLeft(); break;
      case 0x0011: goRight(); break;
      case 0x000d: goStop(); break;
      default:
        goStop();
        Serial.print("Unknown result: 0x");
        Serial.print(result, HEX);
        Serial.print(" (");
        Serial.print(result, DEC);
        Serial.println(")");
        break;
    }
    irrecv.resume(); // Receive the next value
  }
}

— schnapp —


1 comment to Arduino: Infrarot-Receiver Module

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>