Voilà, le module mesure bien la distance entre 15cm et 2m. Reste encore à l'envoyer sur InfluxDB

This commit is contained in:
Christian Zufferey
2020-06-24 20:14:07 +02:00
parent 657af220be
commit 4cacf06970

View File

@@ -1,7 +1,11 @@
-- Mesure la distance avec le module ultra-son
print("\n 0_ultra_son.lua zf200624.1910 \n")
-- Mesure la distance avec le module ultra-son de 15cm à 2m
-- Attention le module à ultra-son doit être alimenté en 5V !
--Paramètres pour le module ultra son
print("\n 0_ultra_son.lua zf200624.2011 \n")
speed_air=382
--Paramètres pour le module ultra son
local ztrig=5
gpio.mode(ztrig, gpio.OUTPUT)
local fast_write = gpio.write
@@ -9,46 +13,36 @@ fast_write(ztrig, 0)
local zecho=6
gpio.mode(zecho, gpio.INT, gpio.PULLUP)
detectortimer1=tmr.create()
detectortimer2=tmr.create()
local fast_read = gpio.read
local ultra_son_start=0
local ultra_son_stop=0
local ultra_son_start, ultra_son_stop = 0,0
--Function pour envoyer la pulse
function zmesure_pulse()
--t1=tmr.now()
-- fast_write(ztrig, 1)
-- fast_write(ztrig, 0)
--gpio.serout(ztrig,gpio.LOW,{1,10})
gpio.serout(ztrig,gpio.HIGH,{10,1})
--t2=tmr.now()
--print("durée: "..t2-t1-314)
end
--Fonction pour mesurer la pulse
function zmesure()
--print("pin: "..gpio.read(zecho))
if fast_read(zecho)==1 then
ultra_son_start=tmr.now()
else
ultra_son_stop=tmr.now()
print("Delta: "..ultra_son_stop-ultra_son_start)
-- zlength=math.floor(480*(ultra_son_stop-ultra_son_start)/2/10000)/100
zlength=480*(ultra_son_stop-ultra_son_start)/2/10000
-- if zlength>6 then zlength=0 end
-- print("Delta: "..ultra_son_stop-ultra_son_start)
zlength=math.floor(speed_air*(ultra_son_stop-ultra_son_start)/2/10000)/100
--zlength=speed_air*(ultra_son_stop-ultra_son_start)/2/10000
if zlength>2 then zlength=2 end
if zlength<0.15 then zlength=0.15 end
disp_mesure()
end
end
gpio.trig(zecho,"both",zmesure)
-- à commenter après les tests de perf
function disp_mesure() print("La distance est de "..zlength.."cm") end
-- à commenter après les tests de calibration
function disp_mesure() print("La distance est de "..zlength.."m") end
tmr_mesure=tmr.create()
tmr_mesure:alarm(1*1000, tmr.ALARM_AUTO, zmesure_pulse)
tmr_mesure:alarm(1*1000, tmr.ALARM_AUTO, zmesure_pulse)