SG90 ESP32 Micropython
ESP32 > SG90
GND > Коричневый
VN > Красный
D15 > Оранжевый
Простой пример изменение угла по 10 градусов.
main.py
from machine import Pin, PWM
from time import sleep
# Пин для управления серво
servo = PWM(Pin(15), freq=50) # 50 Гц = стандартная частота для SG90
def set_angle(angle):
# Преобразуем угол (0–180) в duty для ESP32 (0–1023)
# Период 20 мс → импульс 0.5–2.5 мс
min_duty = 26 # примерно 0.5 мс
max_duty = 128 # примерно 2.5 мс
duty = int(min_duty + (max_duty - min_duty) * angle / 180)
servo.duty(duty)
# Тест
while True:
for ang in range(0, 181, 10):
set_angle(ang)
sleep(0.3)
for ang in range(180, -1, -10):
set_angle(ang)
sleep(0.3)
0/90/180 градусов.
main.py
from machine import Pin, PWM
from time import sleep
servo = PWM(Pin(15))
servo.freq(50)
def set_angle(angle):
# 16-битное значение
min_u16 = 1638 # примерно 0.5 мс
max_u16 = 8192 # примерно 2.5 мс
duty = int(min_u16 + (max_u16 - min_u16) * angle / 180)
servo.duty_u16(duty)
while True:
set_angle(0)
sleep(2)
set_angle(90)
sleep(2)
set_angle(180)
sleep(2)


Комментарии
Отправить комментарий