#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
#################Configuración de pines############
pixels = NeoPixel(Pin(13), 16)
sg90 = PWM(Pin(21, mode=Pin.OUT))
sg90.freq(50)
adc=ADC(Pin(34))
#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()
while True:
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.