Arduino, IR Fernbedienung dekodieren

Ähnliche Dokumente
Arduino für FunkAmateure

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:

TCS3200 Farbsensor. Schritt 1 Anschließen des Sensors. Bild 1: TCS3200 Farbsensor

Einführung Arduino - Aufbau

Arbeitsblatt Nr.19: RFID Kit

Was so passieren wird:

Einen elektronischen Würfel programmieren

Erste Gehversuche mit ARDUINO (DL6OAA)

Installation der Entwicklungsumgebung

Eine tastergesteuerte LED

Stackingsteuerung. Features. Bitte beachten

ARDUINO Übung. Inhalt:

analoge Ein- und Ausgänge

SINNsorik Wahrnehmen durch Sensoren NAME, KLASSE:

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

foexlab-materialien Arduino-Schaltungen First Steps Gottfried Wilhelm Leibniz Universität Hannover

saarland Prof. Dr. Andreas Zeller Verantw. Tutor: Florian Groß Übungsblatt 6

System-Programmierung 10: Weitere Arten von I/O. CC BY-SA, Thomas Amberg, FHNW (soweit nicht anders vermerkt)

Arduino 1/10. Das erste Programm: LED-Blinklicht. Einzelheiten der Schaltung. Programm für das Blinklicht

Einführung in Mikrokontroller Benutzung mit dem Arduino Board. Ramon Hofer ICVR

KY-022 Infrarot Receiver Modul

4duino SensorKit 40 in 1

Arduino für FunkAmateure

Was ist Arduino? Historie Der Kern Entwicklungsumgebung Hardware Software Und wozu das Ganze? Workshop Mikrorechner 2012 A.

Arduino Digispark. Ausgabe Copyright by Joy-IT 1

BAUANLEITUNG ROBO-REGENTRUDE

Einführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform

Joy-IT Ultraschall Abstandssensor

Arduino für FunkAmateure

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

Arduino µcontroller. Virtuelle COMSchnittstelle

Erste Gehversuche mit ARDUINO (Teil 3) (DL6OAA) Die 7-Segmentanzeige (1-stellig)

Arduino und Amateurfunk (1)

Programmieren für Ingenieure Übungs-Klausur

Wir hätten nie gedacht das drei Computer und Elektronik-Fans soweit kommen!! Mit diesem Video sagen wir vielen Dank!

Arduino Shield (Zusatzplatine) zur Wasserstandsanzeige.

LED Skalenbeleuchtung mit einem Arduino

Um überhaupt produktiv arbeiten zu können, sind eine Reihe grundlegender Vorbereitungen notwendig:

Einführung in die Arduino Programmierung am Beispiel eines Roboters.

Hall Magnetfeld Sensor KY-003

Arduino. Inhalt. (mit Arduino UNO)

EINE MHZ FUNKSTRECKE MIT ARDUINOS AUFBAUEN [GEBEN SIE IHRE ADRESSE EIN]

Die Sonne spielt Musik

ARDUINO KENNENLERNEN WAS IST EIN ARDUINO?

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Der Arduino im Physikunterricht Cheat-Sheet. Christopher Kommetter

Highspeedaufnahmen mit dem Arduino Uno Board

Arduino für FunkAmateure

Teile und Herrsche. Themen heute. Eigene Funktionen Parameter Fallunterscheidungen Fehlersuche. Programmieren für Ingenieure Sommer 2014

Mark VHS Augsburg Einführung in die Mikrocontroller-Programmierung.

Teile und Herrsche. Themen heute. Eigene Funktionen Parameter Fallunterscheidungen Fehlersuche. Programmieren für Ingenieure Sommer 2015

Arduino Uno Bastelecke

Informatik Enlightened - Kurzfassung Station 4 Farbthermometer inkl. Einstieg

saarland Prof. Dr. Andreas Zeller Verantw. Tutor: Florian Groß Übungsblatt 4

Jaspreet Singh Dulai Seminar S1 2015/2016. Bluetoothshield

Erste Schritte. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Projektworkshop Digitales Haustier. Digitales Haustier. Bau dir ein Digitales Haustier, das schnurrt, wenn du es streichelst. 1/8


Wunderst du dich auch manchmal, wo die ganzen Kekse hin sind? Mit diesem Projekt kommst du dem Dieb schnell auf die Schliche.

SBC ButtonMatrix Bedienungsanleitung. Verwendung mit einem Arduino Schritt 1 Anschließen der Matrix

Selbstschließende Hand (SsH)

Arduino Kurs Das LC-Display. Stephan Laage-Witt FES Lörrach

Eine Roboter-Kanone. Projekt 20

Erste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

3. Hardware CPLD XC9536 von Xilinx. CPLD / FPGA Tutorial

Arduino - Einfacher Teiler

MIDIfyME. by raffael segmüller fair use only, 2008

Android + Arduino Hardware steuern mit Android. Entwicklertag Karlsruhe, Sebastian Wastl

Struktur eines Sketches

Linear Magnetic Hall Sensor KY-024

Rotary Encoder (RE)

ERWEITERUNGSSHIELD MIT ANALOGEN EINGÄNGEN

Eine tastengesteuerte Ampelanlage

C++ mit dem Arduino (Uno und Mega2560)

Arduino und die Physical Computing Revolution Playground AV Anton Bachmayr - Netzteil

Bei jedem Arduino-Projekt muss man ein Grundgerüst "bauen". Das sieht dann so aus:

Serielle Kommunikation mit dem Arduino. Teil 1: Das Serial Peripheral Interface (SPI)

Fachprojekt for Embedded System: Design and Implement Your Own Embedded Systems (2) LS 12, TU Dortmund

Erneuerung der Peilersteuerung

Haftkünstler auf dem Prüfstand. Online Ergänzung HOLGER FLORIAN BOHN OLGA SPECK THOMAS SPECK

TRIER. Automatische Messwerterfassung mit dem Arduino (Mikrocontroller) ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht

Projekt Nr. 15: Einen elektronischen Würfel erstellen

Arduino Kurs Bits und Bytes. Stephan Laage-Witt FES Lörrach

Eine tastergesteuerte LED

IR-Schaltinterface IR-001

HelvePic32 Breadboard. Internet Data Logger

DC 5V Stepper Motor 28BYJ-48. Verwendung mit einem Arduino

Moto1. 28BYJ-48 Stepper Motor. Ausgabe Copyright by Joy-IT 1

Moto1. 28BYJ-48 Stepper Motor. Ausgabe Copyright by Joy-IT 1

Raspberry Pi meets Pocket Code. Tutorial: Ampelschaltung

Girls Day. Einführung Mikrocontroller,

Messungen mit dem Lichtsensor

Microcontroller im Amateurfunk

Befehlstabelle awapswitch

LED Skalenbeleuchtung mit einem Arduino

Arduino Mikrocontrolling

Arduino Line Follower Roboter.

Willkommen! 1. Joystick 2. Relais. 3. Großes Mikrofonmodul 4. Kleines Mikrofonmodul

IR-Schaltinterface IR-002

Transkript:

Arduino, IR Fernbedienung dekodieren 9.10.2015 Im Zuge meiner weiteren Arduino Studien bin ich auf die Frage gestoßen, wie kann man Befehle in den Arduino transportieren? Aus einem Youtube Beitrag über Robotersteuerung mit Arduino entnahm ich, daß eine IR Fernbedienung (Audio Standard) sich als Befehls-Eingabemedium gut eignet. Die Aufgabe war, die seriell mit einer IR Fernbedienung gesendeten Befehle in den Arduino einzulesen, dort zu dekodieren und sie an Digitalausgänge einzeln auszugeben. Die Fernbedienung und das aus einem Fernseher ausgeschlachtete IR Epfängermodul: Also gings an die Arbeit: 1

Die Hardware dazu: Als erstes mußten die aus dem IR Empfängermodul kommenden Signale hardwaremäßig für den Arduino aufbereitet werden, dies geschieht auf dem unteren Steckbrett. In der Mitte mein Arduino Nachbau, oben die Ausgabe auf 16 digitale Ausgänge (LEDs): 2

Das Schaltbild (hergestellt mit Abacom splan) zeigt oben die Signalaufbereitung und unten die Ausgabe auf die LED Arrays, 16 Tasten der Fernbedienung sind jetzt jeweils einem Ausgang des Arduino zugeordnet: Aus der Schaltung entstand dann die Platine hergestellt mit Abacom Sprint Layout: 3

Das ist der Bestückungsplan der Platine: Der Entwurf des Platinenaufdrucks: 4

Jetzt wird die fertige Platine ausprobiert: Das Empfangsteil und die Signalaufbereitung auf der linken Seite: 5

Die Platine in Gesamtansicht: Das ist die Arduino Platine mit dem Adapter, auf dem das IR Dekoder Shield platziert wird: 6

Zusammengesteckt sieht das so aus: Detaillansicht: 7

Jetzt gehts ans Programmieren: Die Arduino Software: 8

Die Zuordnung der Fernbedienungstasten zu den Arduino Ausgängen: Fernbedienung Ausgang Arduino Text Taste 0 LED an Pin 2 Taste 0 Taste 9 LED an Pin 3 Taste 9 Taste 8 LED an Pin 4 Taste 8 Taste 7 LED an Pin 5 Taste 7 Taste 6 LED an Pin 6 Taste 6 Taste 5 LED an Pin 7 Taste 5 Taste 4 LED an Pin 8 Taste 4 Taste 3 LED an Pin 9 Taste 3 Taste 2 LED an Pin 10 Taste 2 Taste 1 LED an Pin 11 Taste 1 Taste auf LED an Pin A0 Taste auf Taste ab LED an Pin A1 Taste ab Taste links LED an Pin A2 Taste links Taste rechts LED an Pin A3 Taste rechts Taste ein LED an Pin A4 Taste Ein Taste LS LED an Pin A5 Taste LS Der Programmcode, erste Versuche, und es funktioniert: /* Arduino IR Shield Philips Fernbedienung SRP1 101/10, programmiert auf Loewe digi code 1660. */ #include <IRremote.h> int RECV_PIN = 13; int state; IRrecv irrecv(recv_pin); decode_results results; void setup() { Serial.begin(9600); pinmode (2, OUTPUT); pinmode (3, OUTPUT); pinmode (4, OUTPUT); pinmode (5, OUTPUT); pinmode (6, OUTPUT); pinmode (7, OUTPUT); pinmode (8, OUTPUT); pinmode (9, OUTPUT); pinmode (10, OUTPUT); pinmode (11, OUTPUT); pinmode (12, INPUT); pinmode (A0, OUTPUT); pinmode (A1, OUTPUT); pinmode (A2, OUTPUT); pinmode (A3, OUTPUT); pinmode (A4, OUTPUT); pinmode (A5, OUTPUT); //einbinden Unterprogramm //Eingangspin fuer neg. Infrarot-Signal //Beginn Setup //serial Monitor einschalten //an Pin 2 wird LED2 angeschlossen. //an Pin 3 wird LED3 angeschlossen. //an Pin 4 wird LED4 angeschlossen. //an Pin 5 wird LED5 angeschlossen. //an Pin 6 wird LED6 angeschlossen. //an Pin 7 wird LED7 angeschlossen. //an Pin 8 wird LED8 angeschlossen. //an Pin 9 wird LED9 angeschlossen. //an Pin 10 wird LED10 angeschlossen. //an Pin 11 wird LED11 angeschlossen. //an Pin 12 wird LED12 angeschlossen. //an Pin A0 LED A0 angeschlossen. //an Pin A1 LED A1 angeschlossen. //an Pin A2 LED A2 angeschlossen. //an Pin A3 LED A3 angeschlossen. //an Pin A4 LED A4 angeschlossen. //an Pin A5 LED A5 angeschlossen. irrecv.enableirin(); } void loop() { if (digitalread(12)==low) //wenn Eingang 12 (Taste gedrueckt ist low dann... { digitalwrite (2, LOW); // Ausgang 2 low digitalwrite (3, LOW); // Ausgang 3 low digitalwrite (4, LOW); // Ausgang 4 low digitalwrite (5, LOW); // Ausgang 5 low digitalwrite (6, LOW); // Ausgang 6 low digitalwrite (7, LOW); // Ausgang 7 low digitalwrite (8, LOW); // Ausgang 8 low digitalwrite (9, LOW); // Ausgang 9 low digitalwrite (10, LOW); // Ausgang 10 low digitalwrite (11, LOW); // Ausgang 11 low digitalwrite (A0, LOW); // Ausgang A0 low digitalwrite (A1, LOW); // Ausgang A1 low digitalwrite (A2, LOW); // Ausgang A2 low digitalwrite (A3, LOW); // Ausgang A3 low digitalwrite (A4, LOW); // Ausgang A4 low digitalwrite (A5, LOW); // Ausgang A5 low } if (irrecv.decode(&results)) // wenn die IR Bibliothek ein decodiertes Signal liefert... { 9

Serial.println(results.value, DEC); //... dann soll dieses auf der Ser. Schnittstelle ausgegeben werden if (results.value==3772784863) Serial.println ("Taste 1"); if (results.value==3772817503) Serial.println ("Taste 2"); if (results.value==3772801183) Serial.println ("Taste 3"); if (results.value==3772780783) Serial.println ("Taste 4"); if (results.value==3772813423) Serial.println ("Taste 5"); if (results.value==3772797103) Serial.println ("Taste 6"); if (results.value==3772788943) Serial.println ("Taste 7"); if (results.value==3772821583) Serial.println ("Taste 8"); if (results.value==3772805263) Serial.println ("Taste 9"); if (results.value==3772811383) Serial.println ("Taste 0"); if (results.value==3772795063) Serial.println ("Taste auf"); if (results.value==3772778743) Serial.println ("Taste ab"); if (results.value==3772829743) Serial.println ("Taste links"); if (results.value==3772833823) Serial.println ("Taste rechts"); if (results.value==3772793023) Serial.println ("Taste ein/aus"); if (results.value==3772837903) Serial.println ("Taste LS"); //Print "Taste1" //Print "Taste2" //Print "Taste3" //Print "Taste4" //Print "Taste5" //Print "Taste6" //Print "Taste7" //Print "Taste8" //Print "Taste9" //Print "Taste0" //Print "Taste auf" //Print "Taste ab" //Print "Taste links" //Print "Taste rechts" //Print "Taste ein/aus" //Print "Taste LS" if (digitalread(12)==high) Serial.println ("Taste gedrueckt"); //Eingang 12, Print "Taste gedrueckt" if (results.value == 3772784863) {digitalwrite (11, HIGH);} //Taste 1, LED11 High if (results.value == 3772817503) {digitalwrite (10, HIGH);} //Taste 2, LED10 High if (results.value == 3772801183) {digitalwrite (9, HIGH);} //Taste 3, LED9 High if (results.value == 3772780783) {digitalwrite (8, HIGH);} //Taste 4, LED8 High if (results.value == 3772813423) {digitalwrite (7, HIGH);} //Taste 5, LED7 High if (results.value == 3772797103) {digitalwrite (6, HIGH);} //Taste 6, LED6 High if (results.value == 3772788943) {digitalwrite (5, HIGH);} //Taste 7, LED5 High if (results.value == 3772821583) {digitalwrite (4, HIGH);} //Taste 8, LED4 High if (results.value == 3772805263) {digitalwrite (3, HIGH);} //Taste 9, LED3 High if (results.value == 3772811383) {digitalwrite (2, HIGH);} //Taste 0, LED2 HIGH if (results.value == 3772795063) {digitalwrite (A0, HIGH);} //Taste auf, LED A0 HIGH if (results.value == 3772778743) {digitalwrite (A1, HIGH);} //Taste ab, LED A1 HIGH if (results.value == 3772829743) {digitalwrite (A2, HIGH);} //Taste links, LED A2 HIGH if (results.value == 3772833823) {digitalwrite (A3, HIGH);} //Taste rechts,led A3 HIGH if (results.value == 3772793023) {digitalwrite (A4, HIGH);} //Taste ein/aus,led A4 HIGH if (results.value == 3772837903) {digitalwrite (A5, HIGH);} //Taste LS, LED A5 HIGH irrecv.resume(); } } // Receive the next value /* Fernbedienung Philips SRP1 101/10, digi code 1660 Taste Code (dezimal) 0 3772811383 1 3772784863 2 3772817503 3 3772801183 4 3772780783 5 3772813423 6 3772797103 7 3772788943 8 3772821583 9 3772805263 nach oben 3772795063 nach unten 3772778743 nach links 3772829743 nach rechts 3772833823 ein/aus 3772793023 Lautspr. 3772837903 */ Die Copyrights: IRrecvDemo - demonstrates receiving IR codes with IRrecv Version 0.1 July, 2009, Copyright 2009 Ken Shirriff, http://arcfn.com, <IRremote.h>. Vielleicht hat auch diese Doku einige Anregungen zum Nachmachen. Gruß Günter Kurschatke 10