forked from TillRepo/IrSender
94 lines
1.3 KiB
Python
94 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import pigpio
|
|
import time
|
|
|
|
GPIO = 18
|
|
FREQ = 38000
|
|
DUTY = 500000 # 50%
|
|
|
|
raw = [
|
|
9003, -4483,
|
|
583, -568,
|
|
592, -535,
|
|
557, -570,
|
|
563, -564,
|
|
558, -569,
|
|
588, -540,
|
|
557, -545,
|
|
583, -569,
|
|
559, -1694,
|
|
565, -1692,
|
|
560, -1693,
|
|
561, -1693,
|
|
565, -1690,
|
|
564, -1691,
|
|
585, -1670,
|
|
562, -1695,
|
|
558, -570,
|
|
581, -546,
|
|
584, -544,
|
|
554, -572,
|
|
588, -1666,
|
|
560, -567,
|
|
557, -570,
|
|
586, -516,
|
|
607, -1671,
|
|
555, -1698,
|
|
586, -1669,
|
|
558, -1694,
|
|
559, -546,
|
|
581, -1696,
|
|
557, -1697,
|
|
588, -1667,
|
|
556
|
|
]
|
|
|
|
pi = pigpio.pi()
|
|
|
|
if not pi.connected:
|
|
raise RuntimeError("pigpio daemon läuft nicht")
|
|
|
|
waves = []
|
|
|
|
for t in raw:
|
|
|
|
if t > 0:
|
|
pi.wave_add_new()
|
|
|
|
pi.wave_add_generic([
|
|
pigpio.pulse(1 << GPIO, 0, t)
|
|
])
|
|
|
|
wid = pi.wave_create()
|
|
waves.append(wid)
|
|
|
|
else:
|
|
pi.wave_add_new()
|
|
|
|
pi.wave_add_generic([
|
|
pigpio.pulse(0, 1 << GPIO, abs(t))
|
|
])
|
|
|
|
wid = pi.wave_create()
|
|
waves.append(wid)
|
|
|
|
pi.hardware_PWM(GPIO, FREQ, DUTY)
|
|
|
|
chain = []
|
|
|
|
for wid in waves:
|
|
chain.append(wid)
|
|
|
|
pi.wave_chain(chain)
|
|
|
|
while pi.wave_tx_busy():
|
|
time.sleep(0.01)
|
|
|
|
for wid in waves:
|
|
pi.wave_delete(wid)
|
|
|
|
pi.hardware_PWM(GPIO, 0, 0)
|
|
|
|
pi.stop()
|