Zum Hauptinhalt springen Zur Suche springen Zur Hauptnavigation springen

IR-Empfänger TSOP 31238, 38kHz

Produktinformationen "IR-Empfänger TSOP 31238, 38kHz "

Dies ist ein miniaturisierter Empfänger für Infrarot-Fernsteuerungssysteme. Die PIN-Diode und der Vorverstärker sind auf einem Leadframe montiert, das Epoxidgehäuse fungiert als IR-Filter. Das demodulierte Ausgangssignal kann direkt von einem Mikroprozessor dekodiert werden. Der TSOP312... ist mit allen gängigen IR-Fernbedienungsdatenformaten kompatibel. Der TSOP314... ist optimiert, um fast alle Störimpulse von energiesparenden Leuchtstofflampen zu unterdrücken.

Leistungsdaten: 
Modell: IR-Empfänger Modul
Hersteller: VISHAY
Typ: Elektronik
Einsatz: IR Signalempfang
Enfallwinkel: 90 Grad
Chip: TSOP31238
Betriebsspannung: 2.5-5.5V DC
Frequenz: 38kHz
Distanz: bis 45m
Schnittstelen: Digital 0/5V
Logik: 1=NoSignal, 0=Signal
Wellenlänge: 950nm (IR) 
Stromaufnahme: 0.15mA
Ausgangsstrom: max 3mA
Ausgangssignal: Digital
Demodulator: 10-70 Zyklen pro Burst
Kompatibilität: NEC, RC5, RC6, Sony, Thomson, Mitsubishi, Sharp
Abmessungen: 12.5mm hoch, 5.8x10mm

Info: Nur der TSOP312XX kann alle IR-Codes, der TSOP314 kann kein Sony, Mitsubishi Protokolle
Beispiel Empfänger für IR NEC Protokoll (Raspberry PICO in Python):
#####################################################################
# I R - D E C O D E R - N E C
# Sensor: IR-Empfänger TSOP 31238, 38kHz
# Anschluss: IR Sensor auf GP18 (Raspberry PICO Pin24)
# Decoder: IR NEC Protokoll # Betriebssp: RaspBerry PICO: +5.0V USB, IR Sensor +3.3V
# Version: V0.00 26.11.2022 /MM
# Change: 26.11.2022 Erstellung Grundprogramm
#
# Funktion: Es wird das NEC IR Signal decodiert
# Der TSOP Sensor ist ein Demodulator, ab 10 Pulse mit 38kHz
# ale ein 1 Signal decodiert (Der Aushang ist invers) Open Collector)
# Der Empfang ist ohne Repeat, d.h. wenn eine Taste lang
# gedrückt wird, wird der Code nur ein mal ausgegeben
# NEC Protokoll: [Start] - [Adr-Low] - [Adr-High] - [Wert] - [/Wert]
# Adr & Wert sind 8-Bit,
#
#
#
from machine import Pin          # importing classes
from time import sleep               # Import sleep
from time class import time     # importing classes
import utime

IRPin=18                                          
 # GP18 (Raspberry PICO Pin24)
TiBitStart = time.ticks_ms()     # Timer Sichern
TiBitStop = time.ticks_ms()      # Timer Sichern
irtelegram = ""                               # 4x8Bit
irtelegramok = ""                         
 # 4x8Bit
OnBoardLED = machine.Pin(25, machine.Pin.OUT)
OnBoardLED.toggle()                 # LED OnBord Toggle - Init Blink
sleep(0.1)                                         # Delay Init Blink
OnBoardLED.toggle()                 # LED OnBord Toggle - Init Blink
sleep(0.1)
irin = Pin(IRPin, Pin.IN, Pin.PULL_DOWN)   # IR Eingang (1) im Ruhezustand

#defining interrupt on IR Signal Fall
def IR_INT_Fall(Pin):                                              # Interrupt bei jeder sinkenden Flanke
    global TiBitStart
    global TiBitStop
    global irtelegramok                                            # Vollständiges Telegramm sichern
    global irtelegram
    TiBitStop = time.ticks_us()-TiBitStart         # Zeit sichern
    TiBitStart = time.ticks_us()                              # Timer Sichern
     if TiBitStop>20000 and TiBitStop<50000 or len(irtelegram)>42: # STOP/START 41mS
        #str(TiBitStop)
        irtelegram = irtelegram + "Z"
        if len(irtelegram>24:
            irtelegramok = irtelegram                        # Telegramm vollständig und sichern
            irtelegram = ""                                              # Neues Telegramm Start
    if TiBitStop>11000 and TiBitStop<15000: # START 9+4.5=13.5mS 11'000-14'000
        #irtelegram = irtelegram + "X"
        if len(irtelegram)>3:
            irtelegramok = irtelegram                       # Telegramm vollständig und sichern
            irtelegram = " "                                            # Neues Telegramm Start
        if TiBitStop>8000 and TiBitStop<10000: # 9.0mS 8'000-10'000
            # NIE OK
            irtelegram = irtelegram + "Y"
            if len(irtelegram)>3:
                irtelegramok = irtelegram                  # Telegramm vollständig und sichern
                irtelegram = ""                                         # Neues Telegramm Start
        if TiBitStop>100 and TiBitStop<2000:    # "0" = 1.125mS
            irtelegram = irtelegram + "0"
        if TiBitStop>2000 and TiBitStop<3000: # "1" = 2.25mS
            irtelegram = irtelegram + "1"

 IR_IN_Fall=Pin(18,Pin.IN)                                   # setting GP17 as IR-Signal input

 #Attach external interrupt to GP18 fall edge as an external event source
IR_IN_Fall.irq(trigger=Pin.IRQ_FALLING, handler=IR_INT_Fall)

def bin2dec(lsbmsb):                                             # Binär zu Dezimal beginnend mit lsb
    bitnr=0
    wert=0
    while bitnr<len(lsbmsb):
        if lsbmsb[bitnr:bitnr+1]=="1":                    # nur 1en nach Wertigkeit aufsummieren
            wert=wert + 2**bitnr                                  # Wertigkeiten 2**n bitnr=bitnr+1 # Bitposition
    return(wert)

while True:                                                                  # Endlos schleife - Ausgabe
    if len(irtelegramok)>12:
        print("*"+irtelegramok[0:32]+"* ",end="") # Telegramm Rohdaten
        print("ADR L:"+str(bin2dec(irtelegramok[0:8]))+" H:"+str(bin2dec(irtelegramok[8:16]))+", ",end="")
        print("Taste:"+str(bin2dec(irtelegramok[16:24]))+" ",end="")
        if bin2dec(irtelegramok[16:24])+bin2dec(irtelegramok[24:32])==255 and len(irtelegramok)&gt;=32 and len(irtelegramok)&lt;=33: # Fehler Kontrolle
            print("OK")
        else:
            if len(irtelegramok)==44:
                print("NoNEC")
            else:
                print("NOK")
                irtelegramok = ""                            # Telegramm löschen wenn es angezeigt wurde
    OnBoardLED.high()                                    # LED OnBord ON - IR-Recive Blink
    sleep(0.1)
    OnBoardLED.low()                                     # LED OnBord OFF - IR-Revive Blink
    sleep(0.1)                                                       # Zeit bis zur nächsten Ausgabe von vorhandenen Telegrammen
#EndWhile

0 von 0 Bewertungen

Durchschnittliche Bewertung von 0 von 5 Sternen

Bewerten Sie dieses Produkt!

Teilen Sie Ihre Erfahrungen mit anderen Kunden.