Paso 5: Un más elaborada LUA ejemplo: luz intermitente de GPIO0 con la señal reset GPIO2
Vamos a escribir algo de código que establece GPIO0 y GPIO2, crea un servidor TCP y GPIO0 se enciende y off ' n ' número de veces según el valor envía a través de TCP, al término de la secuencia resulta GPIO2 y por lo que se puede utilizar como una señal de reset. Aquí va:
--Abrir el archivo para escritura
File.Open("init.lua","w")
--Abrir el archivo para escritura
File.WriteLine ([[imprimir ("GPIO0 intermitente y reset GPIO2)]])
-Abrir GPIO0 y 2 para salida
File.WriteLine ([[gpio.mode (8, gpio. SALIDA)]])
File.WriteLine ([[gpio.mode (9, gpio. SALIDA)]])
-Esperar un poco para garantizar
File.WriteLine([[TMR.Delay(10)]])
--Ciclo GPIO2 por lo que puede ser uso como señal de reset
Ile.WriteLine ([[gpio.write (8, gpio. ALTO)]])
File.WriteLine([[TMR.Delay(10)]])
File.WriteLine ([[gpio.write (8, gpio. BAJO)]])
--Crear servidor TCP
File.WriteLine ([[sv=net.createServer (net. TCP, 30)]])
--Escuchar en el puerto 9999 y la función de devolución de llamada 'c'
File.WriteLine([[SV:Listen(9999,function(c)]])
--Espere hasta carga 'pl' se recibe
File.WriteLine ([[c: a ("recibir", función (c, pl)]])
--Cheque válido número recibido (debe ser entre 1 y 16 para este ejemplo)
File.WriteLine ([[if tonumber(pl) ~ = nil entonces]])
File.WriteLine ([[if tonumber(pl) > = 1 y tonumber(pl) < = 16 entonces]])
File.WriteLine([[Print(tonumber(PL))]])
File.WriteLine([[TMR.Delay(10)]])
--Enviar otro evento de restablecimiento en GPIO2
File.WriteLine ([[gpio.write (8, gpio. ALTO)]])
File.WriteLine ([[gpio.write (8, gpio. BAJO)]])
--Lazo según el número recibido
File.WriteLine ([[para cuenta =1,tonumber(pl) do]])
File.WriteLine ([[print(count)]])
File.WriteLine([[TMR.Delay(10)]])
-Blink GPIO0 file.writeline ([[gpio.write (9, gpio. BAJO)]])
File.WriteLine([[TMR.Delay(10)]])
File.WriteLine ([[gpio.write (9, gpio. ALTO)]])
File.WriteLine ([[c:send("Sequence finished")]])
File.WriteLine([[end]])
Ile.WriteLine([[end]])
File.WriteLine([[end]])
File.WriteLine ([[c:send("Action completed")]])
File.WriteLine([[end)]])
File.WriteLine([[end)]])
File.Close()
Permite enviar el archivo en el módulo. Debería ver la salida que se muestra en la imagen.