Advertisement
rralston

ESP32 TV Remote Control

May 1st, 2022
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.95 KB | None | 0 0
  1. # SonyTV2 4/30/22 rr
  2. import esp32
  3. from machine import Pin
  4. from time import sleep_ms
  5.  
  6. r = esp32.RMT(0, pin=Pin(15), clock_div=8, tx_carrier=(38000, 50, 1), idle_level=0)
  7. btpressed = False    
  8.  
  9. def volume_down():  # command code 1100100 interrupt pin 32
  10.   led18.value(1)
  11.   for x in range(1,4):
  12.     r.write_pulses((24000, 6000, 12000, 6000, 12000, 6000, 6000, 6000, 6000, 6000, 12000, 6000, 6000, 6000, 6000, 6000, 12000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000), 1)
  13.     sleep_ms(64)
  14.   led18.value(0)
  15.    
  16. def mute():  # command code 0010100 interrupt pin 33
  17.   led17.value(1)
  18.   for x in range(1,4):
  19.     r.write_pulses((24000, 6000, 6000, 6000, 6000, 6000, 12000, 6000, 6000, 6000, 12000, 6000, 6000, 6000, 6000, 6000, 12000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000), 1)
  20.     sleep_ms(64)
  21.   led17.value(0)
  22.  
  23. def volume_up(): # command code 0100100 interrupt pin 34
  24.   led16.value(1)
  25.   for x in range(1,4):
  26.     r.write_pulses((24000, 6000, 6000, 6000, 12000, 6000, 6000, 6000, 6000, 6000, 12000, 6000, 6000, 6000, 6000, 6000, 12000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000), 1)
  27.     sleep_ms(64)
  28.   led16.value(0)
  29.    
  30. def handle_interrupt(pin):
  31.   global btpressed
  32.   btpressed = True
  33.   global interrupt_pin
  34.   interrupt_pin = pin
  35.  
  36. led16 = Pin(16, Pin.OUT) # sending volume up commmand
  37. led17 = Pin(17, Pin.OUT) # sending mute command
  38. led18 = Pin(18, Pin.OUT) # sending volume down command
  39. p32 =   Pin(32, Pin.IN)  # send volume down
  40. p33 =   Pin(33, Pin.IN)  # send mute
  41. p34 =   Pin(34, Pin.IN)  # send volume up
  42.  
  43. p32.irq(trigger=Pin.IRQ_RISING, handler=handle_interrupt)
  44. p33.irq(trigger=Pin.IRQ_RISING, handler=handle_interrupt)
  45. p34.irq(trigger=Pin.IRQ_RISING, handler=handle_interrupt)
  46.  
  47. while True:
  48.   if btpressed and interrupt_pin == p32:
  49.     volume_down()
  50.   if btpressed and interrupt_pin == p33:
  51.     mute()  
  52.   if btpressed and interrupt_pin == p34:
  53.     volume_up()
  54.   btpressed = False
  55.   sleep_ms(250)
  56.        
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement