from machine import PWM,Pin,ADC #importar PWM, Pin, ADC
import utime #para controlar los tiempos de espera
servo = PWM(Pin(22)) #servo esta conectado en Pin 22 tipo PWM
servo.freq(50) #frecuencia del servo 50
sensor = ADC(0) #sensor
potenciometro = ADC(2) #potenciometro esta conectado en pin tipo ADC
led_rojo = Pin(20, Pin.OUT) #pin 20 de salida esta conectado en diodo de emisor de luz rojo
led_azul = Pin(16, Pin.OUT) #diodo emisor de luz esta conectado en pin 16 de salida
rele1 = Pin(3, Pin.OUT) #relevador1 esta conectado en pin 3 de salida
rele2 = Pin(5, Pin.OUT) #relevador2 esta conectado en pin 5 de salida
rele3 = Pin(6, Pin.OUT) #relevador3 esta conectado en pin 6 de salida
rele4 = Pin(8, Pin.OUT) #relevador4 esta conectado en pin 8 de salida
utime.sleep(1) #retraso de segundo 1
rele1.value(1) #valor de relevador1:1
print('SISTEMA ha iniciado') #mostrar: sistema ha iniciado
utime.sleep(1) #retraso de segundo 1
rele1.value(0) #valor de relevador1: 0
while True: #para siempre
GAS = int(sensor.read_u16()/100) #0 a 65535
SIMULADOR = int(potenciometro.read_u16()/100) #0 a 65535
print("VALORES: Sensor gas: ", GAS, "Simulador:",SIMULADOR) #mostrar: valores: sensor gas: gas, simulador: simulador
utime.sleep(1) #retraso de segundo: 1
if (GAS or SIMULADOR)<200: #si gas o simulador<200
servo.duty_ns(500000) #ciclo de trabajo de servo: 500000
led_azul.value(1) #valor de diodo emisor de luz azul: 1
led_rojo.value(0) #valor de diodo emisor de luz rojo: 0
else: #si condicion verdadera o falsa
if GAS >= 200 and GAS <= 450: #si gas>= 450
led_rojo.value(1) #valor de diodo emisor de luz rojo: 1
led_azul.value(0) #valor de diodo emisor de liz azul: 0
print('DETECTA presencia de gas') #mostrar: detecta presencia de gas
rele2.value(1) #valor de relevador2: 1
utime.sleep(1) #retraso de segundo: 1
rele2.value(0) #valor de relevador2: 0
if GAS > 450: #si gas > 450
servo.duty_ns(1500000) #ciclo de trabajo de servo: 1500000
led_rojo.value(1) #valor de diodo enisor de luz rojo: 1
led_azul.value(0) #valor de diodo emisor de luz azul: 0
print('nivel peligroso cERRADO válvula') #mostrar: nivel peligroso cerrado valvula
rele3.value(1) #valor de relevador3: 1
utime.sleep(5) #retraso de segundos: 5
rele3.value(0) #valor de relevador: 0
if SIMULADOR > 200: #si simulador > 200
servo.duty_ns(1500000) #ciclo de trabajo de servo: 1500000
led_rojo.value(1) #valor de diodo emisor de luz rojo: 1
led_azul.value(0) #valor de diodo emisor de luz azul: 0
print('Simulador CERRADO válvula de gas') #mostrar: simulador cerrado valvula de gas
rele4.value(1) #valor de relevador4: 1
utime.sleep(1) #retraso de segundo: 1
rele4.value(0) #valor de relevador4: 0