# Programa para mover un servomotor 180°
'''Se realiza la conexión del servomotor a la tarjeta, a una alimentación de
5 voltios cable rojo, tierra cable negro y la señal del potenciometro PWM al pin 21'''
'''La primera linea Importa la señal del pin de la
tarjeta ESP 32 y la señal del PWM
que realiza el movimiento del servo, la segunda linea
importa el tiempo en milisegundos que se mueve el servo'''
#Modulos
from machine import Pin, PWM
from utime import sleep, sleep_ms
'''Declaro el sensor, indicando que se encuentra en el
pin 18 de la tarjeta ESP32 y funciona a una frecuencia de 50Hz que equivalen
a 20ms de acuerdo con el fabricante'''
#Objeto
Servo=PWM (Pin(21), freq=50)
'''Ciclo mientras afirmativo, realiza la operación de que mientras
el servo transcurre en el ciclo 1 genere un recorrido de acuerdo con la
resolución en un rango de 1800 a 8000'''
''' El servo realiza un recorrido en el ciclo de trabajo en un tiempo de 1 ms '''
def Map(valor, in_min, in_max, out_min, out_max):
return (valor - in_min) * (out_max - out_min) // (in_max - in_min) + out_min
def servo(ang):
nAng = Map(ang,0,180 , 1800,8000)
Servo.duty_u16(nAng)
servo(0)
sleep(1)
print("Ang: 0")
servo(45)
sleep(1)
print("Ang: 45")
servo(90)
sleep(1)
print("Ang: 90")
servo(135)
sleep(1)
print("Ang: 135")
servo(180)
sleep(1)
print("Ang: 180")
'''
while True:
for i in range(1800, 8000):
servo.duty_u16(i)
sleep_ms(1)
'''
'''Cierre de la programación'''