Inhoudsopgave:

Inzicht in het IR-protocol van de afstandsbedieningen van de airconditioner - Ajarnpa
Inzicht in het IR-protocol van de afstandsbedieningen van de airconditioner - Ajarnpa

Video: Inzicht in het IR-protocol van de afstandsbedieningen van de airconditioner - Ajarnpa

Video: Inzicht in het IR-protocol van de afstandsbedieningen van de airconditioner - Ajarnpa
Video: wifi-afstandsbediening voor IR- en RF-codes Broadlink RM4C Pro, werk in Home Assistant 2024, November
Anonim
Het IR-protocol van de afstandsbedieningen van de airconditioning begrijpen
Het IR-protocol van de afstandsbedieningen van de airconditioning begrijpen

Ik ben al geruime tijd aan het leren over IR-protocollen. Hoe IR-signalen te verzenden en ontvangen. Op dit moment is het enige dat overblijft het IR-protocol van AC-afstandsbedieningen.

In tegenstelling tot traditionele afstandsbedieningen van bijna alle elektronische apparaten (bijvoorbeeld een tv) waar de informatie van slechts één knop tegelijk wordt verzonden, worden bij AC-afstandsbedieningen alle parameters gecodeerd en tegelijk verzonden. Daarom kan het een beetje lastig zijn om het signaal van een microcontroller te decoderen.

In deze instructable leg ik uit hoe we gemakkelijk IR-protocollen van elke AC-afstandsbediening kunnen decoderen. Ik zal mijn HID IR-TOETSENBORD gebruiken om de IR-signalen te lezen en te decoderen door een nieuw programma te schrijven. maar je kunt bijna elke microcontroller gebruiken die je kent, zolang deze externe interrupts ondersteunt in combinatie met een TSOP IR-demodulator.

Stap 1: Benodigd gereedschap

Soldeerstation. (bijv. DIT)

Hoewel u goedkopere strijkijzers kunt gebruiken, wordt een soldeerstation van goede kwaliteit aanbevolen als u van elektronica houdt.

Pickit 2.(bijv. DIT)

Je kunt ook een PICKIT 3 gebruiken, maar dan moet je een aparte USB-naar-UART-converter gebruiken om de output van de microcontroller uit te lezen.

Een oscilloscoop

Nou, ik heb het niet. maar als je er een hebt, zal het je leven een stuk gemakkelijker maken. Koop er zeker een, als je er een kunt betalen.

Een computer

Nou.. Duh

Stap 2: Benodigde componenten

  • PIC18F25J50 (bijv. HIER)
  • TSOP IR-ontvanger. (bijv. HIER)
  • LM1117 3.3v regelaar. (bijv. HIER)
  • 2x220nf condensatoren.
  • 470 ohm weerstand.
  • 10k ohm weerstand.

Dit zijn de componenten die nodig zijn om mijn HID IR-toetsenbordproject te maken. Als je een ander foto-ontwikkelbord of een arduino hebt, heb je alleen de TSOP IR-decodermodule nodig.

Een AC-afstandsbediening

De afstandsbediening die moet worden gedecodeerd. Ik gebruik de afstandsbediening van mijn Videocon AC. Deze heeft geen display maar werkt vergelijkbaar met andere afstandsbedieningen met displays.

Stap 3: Hoe het werkt (IR-protocol)

Hoe het werkt (IR-protocol)
Hoe het werkt (IR-protocol)

Voordat we verder gaan, laten we enkele basisprincipes begrijpen.

IR-afstandsbedieningen gebruiken een IR-led om het signaal van de afstandsbediening naar de ontvanger te verzenden door de led snel aan en uit te schakelen. Maar veel andere lichtbronnen produceren ook IR-licht. Dus om ons signaal speciaal te maken, wordt een PWM-signaal gebruikt op een bepaalde frequentie.

Frequenties die in bijna alle IR-afstandsbedieningen worden gebruikt, zijn 30 kHz, 33 kHz, 36 kHz, 38 kHz, 40 kHz en 56 kHz.

De meest voorkomende zijn echter 38khz en 40khz.

De TSOP-module demoduleert het draaggolfsignaal (bijv. 38khz) naar een meer geschikte TTL-logica van GND en VCC.

De duur van HIGH of LOW logica geeft bit '1' of '0' aan. De duur varieert per protocol op afstand (bijv. NEC)

Om het IR-protocol in detail te begrijpen, kunt u dit document raadplegen.

Stap 4: De afstandsbediening

De afstandsbediening
De afstandsbediening

De afstandsbediening die ik gebruik, is van een nogal oude airconditioner die in mijn kamer is gemonteerd. Het heeft dus geen fancy display, maar het functioneert vrijwel hetzelfde als elke AC-afstandsbediening met een display.

We kunnen de volgende instellingen wijzigen met de afstandsbediening.

  • Inschakelen / uitschakelen
  • Slaapmodus aan/uit
  • Turbomodus aan/uit
  • Schommel aan/uit
  • Ventilatorsnelheid (Laag, Gemiddeld, Hoog)
  • Modus selecteren (Koelen, Drogen, Ventilator)
  • Temperatuur (van 16 tot 30 graden celsius)

Stap 5: RAW-samples vastleggen

RAW-voorbeelden vastleggen
RAW-voorbeelden vastleggen
RAW-voorbeelden vastleggen
RAW-voorbeelden vastleggen

In de afbeelding zie je de RAW-samples die door de TSOP ir-ontvanger zijn uitgespuugd. de cijfers geven de duur van de burst aan en het +/- teken geeft de MARK en SPACE van het signaal aan.

hier staat 1 eenheid voor 12us (microseconden.)

Dus een burst van 80 staat voor 960us enzovoort.

het volgende stukje code legt de gegevens vast en voert deze uit naar de seriële monitor van de pickit2. (De IDE is MikroC PRO voor PIC)

Om de een of andere reden knoeit de Instructable-editor met de codetag. Dus ik heb zojuist de schermafbeelding van de code bijgevoegd, raadpleeg de tweede afbeelding van deze stap.

Ik zou de hele projectmap hebben bijgevoegd, maar het is nu een puinhoop en is nog niet helemaal klaar voor wat ik probeer te bereiken.

Stap 6: De RAW-voorbeelden observeren en converteren naar een door mensen leesbaar formaat

De RAW-voorbeelden observeren en converteren naar een door mensen leesbaar formaat
De RAW-voorbeelden observeren en converteren naar een door mensen leesbaar formaat
De RAW-voorbeelden observeren en converteren naar een door mensen leesbaar formaat
De RAW-voorbeelden observeren en converteren naar een door mensen leesbaar formaat
De RAW-voorbeelden observeren en converteren naar een door mensen leesbaar formaat
De RAW-voorbeelden observeren en converteren naar een door mensen leesbaar formaat

Als we goed naar de RAW-samples kijken, kunnen we gemakkelijk zien dat er vier reeksen van burst-duur zijn.

~80

~45

~170

~250

De laatste drie waarden zijn altijd +250 -250 +250. Daarom kunnen we veilig aannemen dat dit het STOP-bit is van de burst-gegevens. Met behulp van het volgende codefragment kunnen we deze vier burst-duren verdelen in '-', '.' en 1'.

Raadpleeg de 3e afbeelding van deze stap voor het codefragment.

Het is je misschien opgevallen dat ik het nummer ~ 80 burst in de code negeerde. dat komt omdat elke vreemde plaatsing van de code onbeduidend is. Door de _rawprocess-array af te drukken naar de seriële monitor (zoals u kunt zien in de tweede afbeelding van deze stap). We hebben een veel duidelijk beeld van de ontvangen gegevens. Door nu op verschillende knoppen op de afstandsbediening te drukken, kunnen we de patroonveranderingen in de gegevens observeren, zoals uitgelegd in de volgende stap.

Stap 7: Patronen observeren door meerdere onbewerkte monsters te vergelijken

Patronen observeren door meerdere onbewerkte monsters te vergelijken
Patronen observeren door meerdere onbewerkte monsters te vergelijken
Patronen observeren door meerdere onbewerkte monsters te vergelijken
Patronen observeren door meerdere onbewerkte monsters te vergelijken
Patronen observeren door meerdere onbewerkte monsters te vergelijken
Patronen observeren door meerdere onbewerkte monsters te vergelijken

Door alleen de gedecodeerde gegevens af te drukken, kunnen we een veel duidelijk beeld krijgen van welke bits worden gebruikt om welke gegevens te verzenden.

De instelling POWER SLEEP en TURBO gebruikt slechts één bit. d.w.z. ofwel '.' of een '1'.

De SWING gebruikt drie bits naast elkaar. die gaat als '…' of '111'.

De ventilator- en modusselectie gebruikt ook elk 3 bits '1..' '.1.' en 1'

De temperatuur gebruikt vier bits die waarde verzenden met behulp van binair gecodeerde bits met een offset van 16, wat '…' betekent. verzendt de waarde van 16 graden Celsius terwijl '111.' stuurt 30 graden celsius.

Stap 8: UITVOER de gedecodeerde gegevens naar de seriële monitor

UITVOER de gedecodeerde gegevens naar de seriële monitor
UITVOER de gedecodeerde gegevens naar de seriële monitor

Zoals je in de afbeelding kunt zien, heb ik met succes alle bits gedecodeerd die door de AC-afstandsbediening zijn verzonden.

Vanaf hier weten degenen die ervaring hebben met het omgaan met ir-protocollen al hoe het signaal opnieuw te coderen en naar de AC te sturen. Als je wilt zien hoe dat kan, wacht dan op mijn volgende instructable die ik over een week of zo zal posten.

Stap 9: Voltooien

Bedankt voor uw tijd.

laat een reactie achter als je het project leuk vond. of als u een fout heeft opgemerkt.

Prettige dag.

Aanbevolen: