728x90
안녕하세요.
이번에는 라즈베리파이3와 L298N 모터드라이버로 DC모터의 회전 방향과 속도를 제어하는 예제를 진행하겠습니다.
준비물은 다음과 같습니다.
1. 라즈베리파이3
2. L298N
3. DC모터 2개
L298N은 모터의 회전방향, 회전속도를 제어할 수 있게 해주는 모터 드라이버입니다.
그림과 표를 보면서 사용법을 설명하겠습니다.
사진을 보면 Input1, Input2, Input3, Input4 가 있습니다.
연결된 라즈베리파이3에서 표와 같이 디지털 값을 Input1, Input2에 보내서 A 모터를 제어할 수 있고, Input3, Input4에 보내서 B 모터를 제어할 수 있습니다.
GpioZero 라이브러리를 사용하여 모터를 제어하겠습니다. GpioZero의 핀배열은 다음과 같습니다
예제에서는
IN1 -> GPIO 22
IN2 -> GPIO 23
IN3 -> GPIO 24
IN4 - > GPIO 25
로 연결해서 사용합니다.
연결된 구조는 다음 그림과 같습니다.
파이썬 코드는 다음과 같습니다.
from gpiozero import Motor
from time import sleep
# 모터 핀 세팅.
motorR = Motor(forward=23,backward=22) # 오른쪽 모터 객체 생성. (그림에서 A 방향)
motorL = Motor(forward=24,backward=25) # 왼쪽 모터 객체 생성. (그림에서 B 방향)
# speed 변수에 0~1 사이의 값을 넣어서 속도를 조절할 수 있다. 수가 클수록 빠르다.
# 3초 동안 전진
motorR.forward(speed=0.7)
motorL.forward(speed=0.7)
sleep(3)
# 3초 동안 후진
motorR.backward(speed=0.7)
motorL.backward(speed=0.7)
sleep(3)
# 3초 동안 좌회전
motorR.forward(speed=0.7)
motorL.backward(speed=0.7)
sleep(3)
# 3초 동안 우회전
motorR.backward(speed=0.7)
motorL.forward(speed=0.7)
sleep(3)
# 양쪽 모터 정지.
motorR.stop()
motorL.stop()
'Python' 카테고리의 다른 글
[python] 자연어 처리를 위한 텍스트 전처리(불용어 제거) (0) | 2023.07.28 |
---|---|
[Python] 크롤링으로 공공데이터 포털의 파일들 다운받기 (0) | 2023.07.22 |
[Python]pandas 를 이용하여 csv 파일 다루기 (0) | 2023.07.13 |
[Python]Python에서 데이터 프레임을 이용하여 파이그래프 그리기 (0) | 2023.07.05 |
[Python] openpyxl 라이브러리로 xlsx 파일 쓰거나 읽기 (0) | 2023.06.30 |