Найти тему
Всё о Raspberry Pi

Как подключить сервопривод к Raspberry Pi

В этой статье я расскажу как подключить сервопривод sg90 к Raspberry Pi.

Подключаем сервопривод к GPIO

У сервопривода SG90 есть провод, который содержит оранжевый, красный и коричневый цвет.

У меня используются проводки другого цвета, не судите строго, других не было.

Коричневый провод мы подключаем в 6 пин (ground), красный в 4 или 2 пин (5V), а оранжевый отвечает как раз таки за поворот сервопривода. Его мы подключаем в пин GPIO 17 или 27 (это не номер пинов, а их название)

-2

После подключения проверяем работоспособность сервопривода.

Будем проверять с помощью Python и библиотеки gpiozero. Можно было бы использовать и Rpi.GPIO, но с gpiozero это сделать в разы легче. Обычно gpiozero сразу установлен в системе.

Вот простенькая программа которая просто будет шевелить сервоприводом:

from gpiozero import Servo

from time import sleep

servo = Servo(17)

servo.min()

sleep(1)

servo.max()

sleep(1)

Эта программа просто подвигает сервоприводом. Если у вас не двигается сервопривод, то замените число в servo = Servo(17) на ваш пин.

Если же вы хотите повернуть сервопривод на определенный угол, то используем servo.value(180)

Пример:

from gpiozero import Servo

from time import sleep

servo = Servo(17)

angle = int(input("угол: "))

servo.value = angle / 180

sleep(1)

Этот код будет поворачивать наш сервопривод от -180 до 180 градусов. Да, сервопривод может поворачиваться лишь на 180 градусов, но если повернуть его с 0 до 180, то он повернётся лишь на 90 градусов, по этому для достижения всех 180 градусов нам нужно поворачивать сервопривод с -180 до 180.

Но как вы могли заметить, сервопривод поворачивается явно не на 180 градусов.

Чтобы это исправить, мы должны указать минимальную и максимальную длину сигнала на сервопривод

Делается это так:

Заменяем servo = Servo(17)

На servo = Servo(17, min_pulse_width = 0.5 / 1000, max_pulse_width = 2.5 / 1000)

Теперь сервопривод проворачивается полностью, от 0 до 180 и от 0 до -180.

Если хочется поиграться с сервоприводом, то можно добавить команду в бесконечный цикл и поворачивать сервопривод на указанный угол сколько захочется.

Спасибо за то что прочитали эту статью!