Innehållsförteckning:

USB NEC infraröd sändare och mottagare: 4 steg (med bilder)
USB NEC infraröd sändare och mottagare: 4 steg (med bilder)

Video: USB NEC infraröd sändare och mottagare: 4 steg (med bilder)

Video: USB NEC infraröd sändare och mottagare: 4 steg (med bilder)
Video: How to Connect Bluetooth Wireless Headphones to any TV 📍 How To With Kristin 2024, September
Anonim
USB NEC infraröd sändare och mottagare
USB NEC infraröd sändare och mottagare

Detta projekt är en avknoppning av ett annat projekt som jag arbetar med och eftersom det finns en fjärrkontroll 2017-tävling om Instructables trodde jag att jag skulle lägga upp det här projektet. Så om du gillar det här projektet, vänligen rösta på det. Tack.

Som ni kanske vet är jag ett stort fan av Microchip 8-bitars PIC-styrenheter, se:

Jag använder programmeringsspråket JAL eftersom det ser ut som Pascal (vilket jag också gillar). JAL -kompilatorn och biblioteken kan laddas ner från: https://www.justanotherlanguage.org/downloads (rulla ner för den senaste versionen).

Normalt skriver jag själv all kod för att helt förstå vad jag gör men för detta projekt behövde jag ansluta PIC till USB -porten på datorn och så behövde jag en JAL USB -seriell drivrutin för denna PIC -styrenhet. Jag använde USB -seriell drivrutin i JAL -nedladdningspaketet som verkar fungera bra. Eftersom denna USB -seriedrivrutin skrevs för en specifik PIC använde jag den PIC som är PIC18F14K50. Denna styrenhet har mycket mer funktionalitet än jag behöver för det här projektet, så jag håller just nu på att få den här USB -drivrutinen att fungera på en enklare PIC -version, PIC16F1455, som också är billigare.

Så vad handlar det här projektet om? Med den enhet som nämns i denna instruktion kan du skicka och ta emot kommandon från Infra Red Remote Control från och till din dator via USB-porten med det populära NEC Infra-Red-protokollet. På så sätt kan du övervaka Infra-Red-kommandon och du kan styra alla enheter som använder NEC Infra-Red Remote Control-protokollet. Projektet avkodar och översätter infraröda meddelanden till en adressbyte och en kommandobyte eller till ett upprepningsmeddelande. Adressen används - naturligtvis - för att adressera en viss enhet som en TV eller en radio där kommandobyte indikerar funktionen som behöver utföras som volym upp, volym ned. Bredvid avkodningen av dessa meddelanden kan de också överföras via infraröd med denna enhet.

Steg 1: Lite information om NECs infraröda protokoll

Lite information om NECs infraröda protokoll
Lite information om NECs infraröda protokoll

En kort introduktion till detta protokoll. NEC Infra Red Remote Control -protokollet används i många enheter och fjärrkontroller som du kan köpa. Den modulerar en infraröd signal på en bärare på 38 kHz och använder pulsavståndskodning för kodning av ett logiskt '1' och ett logiskt '0'. Protokollet använder en enkel kontroll för att se om meddelandet är OK genom att skicka både adressen och kommandobyten och en inverterad version av både i ett och samma meddelande och kontrollera om de är desamma efter mottagning. När du trycker på en knapp på fjärrkontrollen skickas ett komplett Infra Red -meddelande med adress och kommando en gång. Om du håller knappen intryckt kommer ett kortare upprepningsmeddelande att skickas utan adress- och kommandoinformation. Upprepningstiden för de överförda meddelandena medan knappen hålls intryckt är fast.

Mer information om NEC Infra Red-protokollet finns till exempel på:

Steg 2: Obligatoriska komponenter

Obligatoriska komponenter
Obligatoriska komponenter
Obligatoriska komponenter
Obligatoriska komponenter

Du måste ha följande komponenter för detta projekt:

  • PIC-mikrokontroller PIC18F14K50, se:
  • Kristall 12 MHz
  • Keramisk kondensator: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Elektrolytkondensator 47 uF/16V
  • Infra Red Receiver TSOP4838, se:
  • Motstånd: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • Lysdioder: 2 * infraröd, 1 gul, 1 grön, 1 röd
  • Transistor BC640, se:
  • Bygel (tillval)
  • USB -kontakt

Se schematisk diagram för hur du ansluter komponenterna. Jag använde en brödbräda för det här projektet som du kan se på bilden och i videon. Kretsen får sin ström från datorns USB -port.

Steg 3: Programvaran och driften av enheten

Som redan nämnts är programvaran skriven för en PIC18F14K50. Det skrevs i JAL. Intel Hex -filen för programmering av din PIC är bifogad. Programvaran utför följande funktioner:

  • Avkodning av NEC-infraröda meddelanden och skicka det till datorn via USB. Meddelandet avkodas från bitströmmen som genereras av den infraröda mottagaren och översätts till ett adress + kommandomeddelande eller ett upprepat meddelande.
  • Skickar NEC Infra Red -meddelanden som tas emot från datorn via USB. Observera att programvaran också skapar en 38 kHz bärfrekvens som direkt driver de infraröda lysdioderna. Parallellt med den infraröda lysdioden är en gul lysdiod ansluten för att göra överföringen av ett meddelande synlig.

Som standard kommer denna krets att stänga av den infraröda mottagaren under överföring av ett infrarött meddelande. Om en bygel är placerad på”Unmute” -läget, kommer den att stänga av denna avstängningsfunktion. I så fall kommer det överförda infraröda meddelandet också att avkodas parallellt med överföringen och efter fullständig mottagning skickas det som ett mottaget infrarött meddelande till datorn. Om ett giltigt NEC-infrarött meddelande tas emot tänds den röda”IR OK” -lampan.

För att kunna använda den här enheten måste du ha ett Terminal Emulator -program på din dator. Jag använde 'Termite' för detta ändamål. När enheten är ansluten till datorn kommer den automatiskt att identifieras som en extra COM-port av Windows 10 eftersom det verkar finnas en mikrochipdrivrutin för den här enheten i Windows 10 förinstallerad. Inställningen för denna COM-port bör vara: 19200 baud 8 bitar, 1 stoppbit, ingen paritet och användning av RTS/CTS flödeskontroll. Överföringshastigheten kan ställas in på valfritt annat värde om det behövs så en baudhastighet på 115200 fungerar också. När enheten har konfigurerats via USB -porten genom att ansluta till den via Terminal Emulator -programmet tänds den gröna 'Konfigurerade' lysdioden.

Ta emot infraröda meddelanden

När ett infrarött meddelande tas emot kommer följande att visas i Terminal Emulator-programmet:

  • 'A: xx C: xx' vid ett fullständigt meddelande, där xx är hexadecimalt tal för adressen (A) och kommandot (C). Värden för båda kan sträcka sig från 0x00 (0) till 0xFF (255).
  • "Upprepa" vid ett upprepat meddelande.

Skickar infraröda meddelanden

För detta behövde jag definiera ett protokoll som berättar för enheten vad de ska göra. Eftersom vi använder en terminalemulator använde jag ASCII -tecken för att definiera ett meddelande. Protokollet för att skicka ett kommando till enheten använder följande format: '! AACCRR#', där (alla tecken är skiftlägeskänsliga):

  • '!' Anger meddelandets början.
  • 'AA' är värdet på adressen i hexadecimal notation så '0' till '9' och 'A' till 'F',
  • 'CC' är värdet på kommandot i hexadecimal notation så '0' till '9' och 'A' till 'F'
  • "RR" är antalet upprepade meddelanden som måste överföras i hexadecimal notation så "0" till "9" och "A" till "F". Värdet ‘00’ betyder att inget upprepande meddelande skickas.

Ett exempel på ett meddelande med adressen 0x07, kommando 0x05 och 3 repetitioner ska sedan skrivas enligt följande i Terminal Emulator -programmet:! 070503#

Enheten har olika svar efter att ett kommando har skickats från datorn:

  • "Y" betyder att ett meddelande överfördes. Observera att detta svar ges efter att alla meddelanden - inklusive alla upprepningar - har överförts så det kan ta lite tid innan detta svar ges när många upprepade meddelanden behöver överföras.
  • 'N' betyder att det fanns en olaglig karaktär i meddelandet som skickades till datorn.
  • 'B' betyder att en infraröd överföring fortfarande var upptagen när kommandot gavs.
  • ?’Betyder att enheten väntade‘!’Men den fick något annat.

Steg 4:

Jag gjorde en kort video av enheten i aktion. För den här videon använde jag en kommersiell LED -lampa med fjärrkontroll för att se att både överföring och mottagning fungerar. Videon visar följande:

  • Konfigurera USB -enheten från Terminal Emulation -programmet. När enheten är konfigurerad svarar den med meddelandet "USB NEC Infraröd sändare och mottagare". På enheten tänds den gröna lysdioden som visar att enheten har konfigurerats av datorn.
  • Lampan tänds med fjärrkontrollen. För detta använder fjärrkontrollen adressen 0x00 och kommandot 0x07 som avkodas av enheten och visas på datorn.
  • Lampan släcks med fjärrkontrollen. För detta använder fjärrkontrollen adressen 0x00 och kommandot 0x06 som avkodas av enheten och visas på datorn.
  • Lampan slås på genom att skriva samma fjärrkontrollkommando på datorn med ett upprepningsvärde på 0 (ingen upprepning) så genom att skriva '! 000700#'. Lampan tänds.
  • Ändra lampans färg till blå genom att använda adressen 0x00 och kommandot 0x0A och använda 0x30 repetitioner. Den gula lysdioden, som är ansluten parallellt med infraröda lysdioder blinkar och visar överföringen av upprepningsmeddelandet via infraröd. Det skrivna meddelandet är '! 000A30#'.

Observera att under inspelningen av den här videon var jumperanslutningen 'Unmute' aktiv så att du också kunde se det överförda meddelandet '! 000700#', som mottogs som 'A: 00 C: 07' i Terminal Emulation -programmet. I demonstrationen av lampan som färgar blått kan du också se att den röda lysdioden lyser så länge giltiga - upprepade - meddelanden överförs eftersom de tas emot och avkodas parallellt med överföringen av upprepade meddelanden.

Ha kul att bygga ditt eget projekt och ser fram emot dina reaktioner. Glöm inte att rösta på det här projektet i fjärrkontrollen 2017 -tävlingen om du gillar det. Tack igen.

Rekommenderad: