<filename>MetroX_CircuitPython/ir_sensor/code.py
# SPDX-FileCopyrightText: 2021 <NAME> for Adafruit Industries
#
# SPDX-License-Identifier: MIT

"""
'ir_sensor.py'.

=================================================
control a LED with an IR Remote
requires:
- adafruit_irremote library
"""

import adafruit_irremote
import board
import digitalio
import pulseio

led = digitalio.DigitalInOut(board.D11)
led.switch_to_output()

pulsein = pulseio.PulseIn(board.D6, maxlen=120, idle_state=True)
decoder = adafruit_irremote.GenericDecode()
# size must match what you are decoding! for NEC use 4
received_code = bytearray(4)
last_code = None

while True:
    try:
        pulses = decoder.read_pulses(pulsein)
    except MemoryError as e:
        print("Memory Error Occured: ", e)
        continue

    try:
        code = decoder.decode_bits(pulses, debug=False)
    except adafruit_irremote.IRNECRepeatException:
        print("NEC Code Repeated, doing last command")
        code = last_code
    except adafruit_irremote.IRDecodeException as e:
        print("Failed to decode: ", e)
    except MemoryError as e:
        print("Memory Error Occured: ", e)

    print(code[2])
    if code[2] == 247:
        led.value = True
    else:
        led.value = False

    last_code = code

<filename>MetroX_CircuitPython/ir_sensor/code.py
# SPDX-FileCopyrightText: 2021 <NAME> for Adafruit Industries
#
# SPDX-License-Identifier: MIT

"""
'ir_sensor.py'.

=================================================
control a LED with an IR Remote
requires:
- adafruit_irremote library
"""

import adafruit_irremote
import board
import digitalio
import pulseio

led = digitalio.DigitalInOut(board.D11)
led.switch_to_output()

pulsein = pulseio.PulseIn(board.D6, maxlen=120, idle_state=True)
decoder = adafruit_irremote.GenericDecode()
# size must match what you are decoding! for NEC use 4
received_code = bytearray(4)
last_code = None

while True:
    try:
        pulses = decoder.read_pulses(pulsein)
    except MemoryError as e:
        print("Memory Error Occured: ", e)
        continue

    try:
        code = decoder.decode_bits(pulses, debug=False)
    except adafruit_irremote.IRNECRepeatException:
        print("NEC Code Repeated, doing last command")
        code = last_code
    except adafruit_irremote.IRDecodeException as e:
        print("Failed to decode: ", e)
    except MemoryError as e:
        print("Memory Error Occured: ", e)

    print(code[2])
    if code[2] == 247:
        led.value = True
    else:
        led.value = False

    last_code = code

# SPDX-FileCopyrightText: 2021 <NAME> for Adafruit Industries # # SPDX-License-Identifier: MIT 'ir_sensor.py'.  ================================================= control a LED with an IR Remote requires: - adafruit_irremote library # size must match what you are decoding! for NEC use 4