Raspberry Pico IR Decoder - Home of Manuel Magninch

Direkt zum Seiteninhalt

Hauptmenü:

Raspberry Pico IR Decoder

Controller
IR Decoder - IR Empfang, NEC Protokoll, mit Raspberry PICO

Für die Bedienung eines Mikrocontroller sind meistens Tasten notwendig. Da ist eine IR Fernbedienung genau das Richtige. Im Controller Gehäuse (Z.B. Raspberry PICO) wird nur die Öffnung für den IR (Infra Rotes Licht) benötigt, und schon läuft die Bedienung mit diversen Tasten. Für Steuerungen oder einen Dimmer ist die Fernbedienung geradezu ideal.
Es gibt verschiedene IR Protokolle (die Art wie die Daten per Licht übertragen werden). Für TVs wird meistens das RC5 Protokoll verwendet und für Haushaltgeräte das NEC Protokoll.
Der Decoder hier ist für das NEC Protokoll, da es da IR-Sender für 2-4 Franken/Euro gibt. Es sind zwei Python Scripts vorhanden ein mal nur der Decoder als Demo Programm. Und ein mal der Dimmer mit LCD Ansteuerung und Schaltausgängen.
Barometer Geräteanasicht
Multimeter Gehäuse Innenseite
Barometer Geräteanasicht
Der IR Decoder - Der Decoder empfängt das NEC IR Signal. Das IR Signal hat einen Träger mit 38kHz, das IR Empfänger IC erkennt wenn mindesten 7 IR Licht Pulse mit 38kHz eintreffen und signalisiert das als Signal dem Mikrocontroller. Ein weit verbereitetes und günstiges IC ist das TSOP 31238 das für ein paar Euros bei Shop.CitySun.ch zu bekommen ist.
Das NEC Protokoll besteht aus folgenden Bit-Sequenzen: 
[Start] - [Adr-Low] - [Adr-High] - [Wert] - [/Wert], Adr & Wert sind jweils 8-Bit, damit werden gesamthaft 32 Daten Bits
übertragen. Wobei der Tasten-Wert zwei mal übertragen wird, das zweite mal invers, dies dient der Fehlererkennung.

Technische Daten:
IR-Farbe:   950nm
IR-Protokoll: NEC
IR-Decooder: TSOP 31238 (od. ähnliche)
Kontroller: Raspberry PICO

Teile Liste:
Controller RaspBerry PICO S80929
IR-Sensor TSOP 31238 S81278
Python Script Decoder main.py V0.00
Python Script Switch-Dimmer main.py V0.00
LCD Display 2x16 S81258
Gehäuse 10x7x5.5cm 3D LCD-Case-2x16.stl
8x Schraube M3x5 Rundkopf

Multimeter Verdrahtung
Wenn auf dem Display nichts erscheint, so
den Kontrast, mit dem Potentiometer auf
der Rückseite des Displays, einstellen.

Rückfragen & Support: Support@Clinch.ch
Anschluss des LCD Displays je mit I2C Schnittstelle an einen Raspberry Pico:
RaspBerry PICO      <->     LCD 2x16 zeichen mit I2C
Pico-Pin1      GP0    <->     LCD-SDA                         (GP0 mit 0/3.3V Logik LCD&BMP)
Pico-Pin2      GP1    <->     LCD-SDL                          (GP1 mit 0/3.3V Logik LCD&BMP)
Pico-Pin3      GND    <->    LCD-GND                          Original Datenblatt HD44780.
Pico-Pin36    3.3V    <->    LCD+3.3V                         LCD 3.3V Stromversorgung
Pico-Pin24    GP18   <->    IR-Data                            TSOP 31238 mit 3.3V 
Pico-Pin36    3.3V    <->    IR-+3.3V                          TSOP 3.3V Stromversorgung
Pico-Pin23     GND    <->    IR-GND                            TSOP 3.3V Stromversorgung
I2C Adresse  LCD               0x27                                Im Python Script hinterlegt
# Widerstände: 4.7kR von SDA nach +3.3V, 4.7kR von SCL nach +3.3V sind beim Pico nicht zwingend

Zusammenbau: Für den Anschluss des Displays nehmen wir ein 4 Adriges Kabel mit einseitig 4 Stift Buchsen. Die offenen Kabel enden werden, gem. obigem Schema, direkt an die Pins des Raspberry PICO angelötet. Nun muss die Betriebssoftware auf den PICO geladen werden. Z.B. mit der Software Thonny (Die Beschreibung von Thonny ist in einem separaten Artikel, falls notwendig, beschrieben). Beim Bausatz ist der Kontroller bereits mit der passenden Software geladen. Das Gehäuse kann selber mit einem 3D-Drucker erstellt werden, oder Sie können ein beliebiges Gehäuse verwenden. Der 3D-Druck, mit den obigen Druckdaten, dauert mehrere Stunden da die Wandstärke mit 2.5mm relativ dick ist - dafür stabil.  Beachten: Teils LCDs werden mit 3.3V betrieben, andere benötigen 5.0V - Bitte kontrollieren 

Funktion: Auf der ersten Zeile wird links der Messwert (Spannung oder Strom) angezeigt. Angezeigt wird nur der Eingang (der drei vorhandenen Spannung 0-10V, 0-100V, 0-3.3A) der unter Spannung oder Strom steht . Auf der rechten Seite wird die Welligkeit (Ripple) des Signals angezeigt. 
Auf der zweiten Zeile links wird die Frequenz angezeigt und rechts der Pulszähler. Der Pluszähler wird wie das Display alle 2 Sekunden aktualisiert (Damit ein Ablesen möglich ist). Der Pulszähler kann nicht zurückgesetzt werden. Zum Rücksetzen des Pulszählers muss das Gerät neu gestartet werden (USB Stromzuführung unterbrechen). Der Puls-Zähler zählt von 0 bis 2^32-1 (ca. bis 4'295 Mio) und startet dann wieder mit 0

Datenausgabe: Wer die Messwerte speichern und weiter verarbeiten möchte, kann die Daten via USB Anschluss, der ein COM Gerät bereitstellt, abholen und aufzeichnen. Das Datenformat ist CSV, eine Zeile pro Messung
Beispiel Messdaten: U1= 2.345 V; r1= 0.123 V; U2= 23.45 V; r2= 0.123 V; A1= 1.23 A; a1= 0.123 A; f= 2345 Hz; p= 2345 Count;
Es wird alle 2 Sekunden eine Zeile gesendet. Jede Zeile ist maximal 112 Zeichen lang inkl. CR,LF

Störungsbehebung: Als erstes prüfen ob die LED auf dem Raspberry PICO nach dem einschalten der Stromversorgung 0.1 Sek. auf blinkt.
LED blinkt nicht:  Das Python Programm ist nicht installiert oder ist nicht als main.py benannt (für Autostart) alles klein schreiben.
LED blinkt 1x 0.5 Sek:  Das Python Programm ist installiert und startet.
LED blinkt 2x 0.2Sek & Pause 2.0 Sek.:  Der LCD I2C Kontroller wurde nicht gefunden.
LED blinkt alle 2 Sekunden & nichts auf dem Display: Der Kontrast oder die Helligkeit vom LCD ist zu gering (Potentiometer anpassen)
LCD Schrift zu schwach: Das LCD wird mit 3.3V anstatt 5.0V betrieben

 
Zurück zum Seiteninhalt | Zurück zum Hauptmenü