Управление двигателем постоянного тока с помощью Raspberry Pi 4
В данном уроке мы подключим двигатель постоянного тока к плате Raspberry Pi4, соберём электрическую схему и напишем скетч на Python.
Комплектующие
Для сборки схемы и управления двигателями через Raspberry Pi 4 потребуются следующие компоненты:
Raspberry Pi 4 Model B
L298N Модуль драйвера электродвигателя
Липоаккумулятор 3300mAh
Соединительные провода (провода перемычки)
5V - 2A электропитание для Raspberry Pi
5V Двигатель постоянного тока
Двигатель постоянного тока обязательно должен использоваться вместе с драйвером.
Что такое драйвер двигателя? Драйвер двигателя представляет собой специализированную схему или микросхему, обеспечивающую необходимый ток для стабильной и безопасной работы двигателя.
Внимание
Мы не должны подключать двигатель напрямую к Raspberry Pi!
Схема соединения
Все основные комплектующие соединяем в соответствии со схемой, приведённой ниже:
Драйвер L298N
Модуль моторного привода L298N позволяет управлять сразу двумя двигателями. Для простоты демонстрации я покажу схему, принцип работы и программу для управления одним двигателем постоянного тока через Raspberry Pi 4.
Краткий обзор модуля моторного привода L298N представлен ниже.
Данный двунаправленный драйвер для двух двигателей построен на базе популярной микросхемы L298 Dual H-Bridge Motor Driver Integrated Circuit.
Модуль обеспечивает простое и независимое управление двумя двигателями с током до 2A каждый в обоих направлениях. Он отлично подходит для робототехнических проектов и легко сопрягается с микроконтроллером — для управления каждым двигателем достаточно всего пары линий.
Помимо этого, он совместим с обычными механическими переключателями, логическими элементами TTL, реле и другими устройствами. Плата оснащена светодиодной индикацией питания, встроенным стабилизатором на +5В и защитными диодами.
Краткие данные:
Драйвер: L298N Dual H Bridge
Питание: DC 5 В - 35 В
Пиковый ток: 2 А
Диапазон рабочего тока: 0 ~ 36 мА
Диапазон входного напряжения:
Низкий: -0,3 В ≤ Vin ≤ 1,5 В
Высокий: 2,3 В ≤ Vin ≤ Vss.
Диапазон входного напряжения сигнала:
Низкий: -0,3 ≤ Vin ≤ 1,5 В (контрольный сигнал недействителен)
Высокий: 2,3 В ≤ Vin ≤ Vss (сигнал управления активен)
Максимальная потребляемая мощность: 20 Вт (при температуре Т = 75℃)
Температура хранения: -25 ℃ ~ +130
Встроенная регулируемая выходная мощность + 5 В (питание для платы контроллера, типа Arduino).
Размер: 3.4 см x 4.3 см x 2.7 см
Скетч
Ниже представлен скетч (программа на Python) для управления двигателем при помощи Raspberry Pi 4:
import RPi.GPIO as GPIO
from time import sleep
# Pins for Motor Driver Inputs
Motor1A = 21
Motor1B = 20
Motor1E = 16
def setup():
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM) # GPIO Numbering
GPIO.setup(Motor1A,GPIO.OUT) # All pins as Outputs
GPIO.setup(Motor1B,GPIO.OUT)
GPIO.setup(Motor1E,GPIO.OUT)
def loop():
# Going forwards
GPIO.output(Motor1A,GPIO.HIGH)
GPIO.output(Motor1B,GPIO.LOW)
GPIO.output(Motor1E,GPIO.HIGH)
print("Going forwards")
sleep(5)
# Going backwards
GPIO.output(Motor1A,GPIO.LOW)
GPIO.output(Motor1B,GPIO.HIGH)
GPIO.output(Motor1E,GPIO.HIGH)
print("Going backwards")
sleep(5)
# Stop
GPIO.output(Motor1E,GPIO.LOW)
GPIO.output(Motor1B,GPIO.LOW)
print("Stop")
def destroy():
GPIO.cleanup()
if __name__ == '__main__': # Program start from here
setup()
try:
loop()
except KeyboardInterrupt:
destroy()
На этом всё. В скором времени мы запускаем курс по основам работы с платами Raspberry Pi.