Banner Ausblenden
Kleines Logo

Willkommen auf PSI-Online

Sie befinden sich in: Unterrichtsangebote Fächer Fachbereich III Informatik INFO HE Info HE WU9 WU2013 Fernbedienung für den Arduino

Fernbedienung für den Arduino

Was man benötigen:

ein Breadboard

einen Infrarotempfänger, vorzugsweise PNA 4602

einen 100-Ohm-Widerstand

eine 7-Segment-Anzeige

einige Kabel

eine Fernbedienung

ein Arduino-Board wie das Uno

ein USB-Kabel, um Arduino mit Ihrem Computer zu verbinden

 

 

canon ixus 300 hs

 

Die Grundlagen von Infrarot-Fernbedienungen:

Um ein Gerät wie einen Fernseher drahtlos zu steuern, werden ein Sender und ein Empfänger benötigt. Der Empfänger ist gewöhnlich in das zu steuernde Gerät eingebaut, während der Sender zur Fernbedienung gehört. Infrarotempfänger (siehe Abbildung 9–3) sind sehr kompliziert aufgebaut, aber einfach zu verwenden. Sie beobachten automatisch einen Frequenzbereich für infrarotes Licht (gewöhnlich zwischen 26 und 40 kHz) und melden ihre Wahrnehmungen über einen einzelnen Pin. In der Abbildung unten kann man sehen, wie man einen Empfänger an den Arduino anschließt. Er ist einfach, leicht zu verwenden und läuft auf der Frequenz 38 kHz, so dass er Signale von einer breiten Palette an Geräten auffangen kann. Verbindet man seinen Masseanschluss mit einem der GND-Pins von Arduino, den Stromanschluss mit dem 5-V-Pin von Arduino und den Signal-Pin mit dem Digital- Pin 11.

 

Programm:

#include <IRremote.h>v

byte lookup[10][8] = {
  {1,1,1,1,1,1,0},   // 0
  {0,1,1,0,0,0,0},   // 1
  {1,1,0,1,1,0,1},   // 2
  {1,1,1,1,0,0,1},   // 3
  {0,1,1,0,0,1,1},   // 4
  {1,0,1,1,0,1,1},   // 5
  {1,0,1,1,1,1,1},   // 6
  {1,1,1,0,0,0,0},   // 7
  {1,1,1,1,1,1,1},   // 8
  {1,1,1,0,0,1,1},   // 9
};
 
// Fernbedienungscodes 0 - 10
long int remote[10] = { 0xFF6897,0xFF30CF,0xFF18E7,0xFF7A85,0xFF10EF,
                        0xFF38C7,0xFF5AA5,0xFF42BD,0xFF4AB5,0xFF52AD };
 
// IR-Auge empfängt über Pin 10
IRrecv irrecv(10);
int Led = 2
int Led2 = 3
int Led3 = 4
int Led4 = 5
int Led5 = 6
int Led6 = 7
int Led7 = 8
int Led8 = 9
 
 
 
void setup()
{
  Serial.begin(9600);
   for (int i = 2; i < 10; i++)
     pinMode(Led,OUTPUT);     // Pin 2 bis 9 als Output definieren
     pinMode(Led2,OUTPUT);
     pinMode(Led3,OUTPUT);
     pinMode(Led4,OUTPUT);
     pinMode(Led5,OUTPUT);
     pinMode(Led6,OUTPUT);
     pinMode(Led7,OUTPUT);
     pinMode(Led8,OUTPUT);
 
  irrecv.enableIRIn(); // IR-Empfänger starten
  updateSeg(0); // 0 auf Display
 
}
 
void loop() {
  decode_results results;
 
  // IR empfangen?
  if (irrecv.decode(&results)) {
 
    // Debug Value (ideal zum einbinden von unbekannten Fernbedienungen)
    Serial.println(results.value, HEX);
 
    // Display Updaten
    for (int i = 0; i < 10; i++) {
      if (results.value == remote[i]) {
        updateSeg(i);
        i=10;      
      }
    }
    irrecv.resume(); // Empfänger bereit für den nächsten Empfang
  } 
}
 
/*
 * 7Seg-Display Updaten
 */
void updateSeg(byte digit) {
  for (byte i = 0; i < 8; i++) {
    digitalWrite(i+2, lookup[digit][i]);  // i+2 weil Pin 2 unser Start-Pin ist!
  }
}
 
In diesem Programm wird gezeigt wie man mit einer Fernbedienung die Zahl die man auf der Fernbedienung drückt auf einer 7-Segment-Anzeige anzeigen lassen kann.

Quelle: www.dpunkt.de

            www.play-zone.ch 

 

 

 

 

 

 

 

 

Erstellt: Timo Fidelio Wettmann (15.01.2014) Letzte Änderung: Timo Fidelio Wettmann (22.01.2014)