#Este programa es diseñado para programar un sistema de
#habitación domotica
#modulos
from machine import Pin, PWM, ADC
from servo import Servo
import utime
from ultrasonido import Ultrason
from neopixel import NeoPixel
from time import sleep
import dht
from sensordHT import sensor_DHT22
#################Configuración de pines############
pixels = NeoPixel(Pin(13), 16)
sg90 = PWM(Pin(21, mode=Pin.OUT))
sg90.freq(50)
adc=ADC(Pin(34))
sensorh = dht.DHT22(Pin(15))
#0.5ms/20ms = 0.025 = 2.5% duty cycle
#2.4ms/20ms = 0.12 = 12% duty cycle
#0.025*1024=25.6
#0.12*1024=122.88
#Función que controla un servo por medio de un potenciomatro
class servoControl:
def servo():
while True :
pot=int(adc.read_u16()*180/65535)
sleep(1)
print (pot)
ton=(pot+45)*100000/9
sg90.duty_ns(int(ton))
utime.sleep_ms(200)
if (pot<=180):
pixels.fill((255, 0, 0))
pixels.write()
sleep(0.5)
if (pot>=90):
# Green
pixels.fill((0 , 255 , 0))
pixels.write()
sleep(0.5)
if (pot<60):
pixels.fill((0,255,255))
pixels.write()
sleep(0.5)
return pot
def main():
Servo_contr = servoControl.servo()
Ultra_soni = Ultrason.ultra()
#sensorht = sensor_DHT22.sensordht()
while True:
sensorht = sensor_DHT22.sensordht()
print(("El ptenciometro hara girar : {} Grados ".format(servoControl.servo())))
print(("Distancia del objeto es : {} cm ".format(Ultrason.ultra())))
main()
#Al dar vuelta al potenciometro hace girar al servo y cambia el color de las luces.