- fait de l'ordre dans les scripts ir_send*
- fait le script ir_send qui permet d'envoyer un code IR de 4 bits en zproto - fait un tableau de calculs pour le protocole zproto
This commit is contained in:
51
IR/ir_send.lua
Normal file
51
IR/ir_send.lua
Normal file
@@ -0,0 +1,51 @@
|
||||
-- Script pour la gestion de l'émetteur IR à 38kHz (LED, infrared, infrarouge)
|
||||
-- permet l'envoi d'un code avec le protocole zIR, protocole de mon invention ;-)
|
||||
-- exprès pas standard afin de ne pas être parasité par les autres sources IR !
|
||||
-- ATTENTION, on utilise ici l'astuce du gpio.serout pour faire la pulse de 26uS (38kHz),
|
||||
-- car on n'arrive pas avec le gpio.write à faire une pulse plus courte que 400uS
|
||||
|
||||
print("\n ir_send.lua zf180916.1706 \n")
|
||||
|
||||
pin_ir_send = 7
|
||||
gpio.mode(pin_ir_send,gpio.OUTPUT)
|
||||
gpio.write(pin_ir_send,gpio.HIGH)
|
||||
|
||||
Mark_Coeff = 0.5
|
||||
-- en mS/uS
|
||||
Mark_Start = 3 *Mark_Coeff *1000
|
||||
Mark_Bit1 = 1 *Mark_Coeff *1000
|
||||
Mark_Bit0 = 2 *Mark_Coeff *1000
|
||||
Mark_Space = 1 *Mark_Coeff *1000
|
||||
|
||||
-- envoi une série de pulses à 38kHz de durée zduration en uS
|
||||
function pulse_ir(zduration)
|
||||
-- print("pulse: "..zduration)
|
||||
gpio.serout(pin_ir_send,gpio.LOW,{1,25},zduration/26)
|
||||
end
|
||||
|
||||
-- attention, 4 bits seulement
|
||||
function send_code_ir(zcode)
|
||||
pulse_ir(Mark_Start)
|
||||
print("Mark_Space:"..Mark_Space)
|
||||
tmr.delay(Mark_Space)
|
||||
for i=0, 3 do
|
||||
if bit.isset(zcode,i) then
|
||||
-- print("bit: "..i..",1")
|
||||
pulse_ir(Mark_Bit1)
|
||||
else
|
||||
-- print("bit: "..i..",0")
|
||||
pulse_ir(Mark_Bit0)
|
||||
end
|
||||
-- print("Mark_Space:"..Mark_Space)
|
||||
tmr.delay(Mark_Space)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
sendir_tmr1=tmr.create()
|
||||
tmr.alarm(sendir_tmr1, 1000, tmr.ALARM_AUTO, function()
|
||||
send_code_ir(0x05)
|
||||
end)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user