]>
vault307.fbx.one Git - micorpython_ir.git/blob - ir_rx_test.py
1 # ir_rx_test.py Test program for IR remote control decoder arem.py
2 # Supports Pyboard and ESP8266
5 # Copyright Peter Hinch 2020 Released under the MIT license
7 # Run this to characterise a remote.
9 from sys
import platform
12 from machine
import Pin
, freq
15 ESP32
= platform
== 'esp32' or platform
== 'esp32_LoBo'
17 if platform
== 'pyboard':
19 elif platform
== 'esp8266':
23 p
= Pin(23, Pin
.IN
) # was 27
26 def cb(data
, addr
, ctrl
):
27 if data
< 0: # NEC protocol sends repeat codes.
30 print('Data {:03x} Addr {:03x} Ctrl {:01x}'.format(data
, addr
, ctrl
))
32 # Optionally print debug information
34 errors
= {BADSTART
: 'Invalid start pulse', BADBLOCK
: 'Error: bad block',
35 BADREP
: 'Error: repeat', OVERRUN
: 'Error: overrun',
36 BADDATA
: 'Error: invalid data', BADADDR
: 'Error: invalid address'}
39 s
= '''Test for IR receiver. Run:
40 from ir_rx_test import test
41 test() for NEC protocol,
42 test(1) for Sony SIRC 12 bit,
43 test(2) for Sony SIRC 15 bit,
44 test(3) for Sony SIRC 20 bit,
45 test(5) for Philips RC-5 protocol,
46 test(6) for RC6 mode 0.
48 Hit ctrl-c to stop, then ctrl-d to soft reset.'''
54 ir
= NEC_IR(p
, cb
) # Extended mode
57 ir
.bits
= (12, 15, 20)[proto
- 1]
63 ir
.error_function(errf
) # Show debug information
64 # A real application would do something here...