code-lua-iot/buzz.lua
2024-10-23 20:08:41 +02:00

27 lines
1.3 KiB
Lua

-- écrit le 23/10/2024 par Lukian Leizour
-- ce programme doit tourner sur un ESP32 sous LUARTOS
-- fonction permettant d'allumer un buzzer pendant un temps donné
function buzz(pin, delay) -- pin : la patte sur laquelle le buzzer est connecté; delay : le temps pendant lequel le buzzer reste allumé
pinon(pin) -- on allume le buzzer
tmr.delayms(delay) -- on attend pendand le temps désiré
pinoff(pin) -- on étteint le buzzer une fois la durée atteinte
end
-- fonction permettant de faire "clignoter" un buzzer sur un pin donné pour une durée donnée et un nombre d'itérations donné
function blink_buzz(pin, n, delay) -- pin : la patte du buzzer; n : le nombre d'itérations; delay : le délai en ms
for i=1,n do
buzz(pin, delay) -- on allume le buzzer pendant la durée désirée
tmr.delayms(delay) -- on attend avant de passer à la suite
end
end
-- fonction qui envoie un signal SOS sonore sur un buzzer branché sur la patte D18 de l'ESP32
function sos_buzz(n) -- n : nombre de fois qu'on fait le signal SOS
for i=1,n do
pinblink_buzz(pio.GPIO18, 3, 400) -- on clignotte 3 fois longuement
pinblink_buzz(pio.GPIO18, 3, 200) -- on clignotte 3 fois courtement
pinblink_buzz(pio.GPIO18, 3, 400) -- on clignotte 3 fois longuement
tmr.delayms(400) -- on fait une longue pause de 400ms
end
end