



연결은 사진과 코드로 대채하려고 한다.
import RPi.GPIO as GPIO
import time
import spidev
# 모터 드라이버와 라즈베리 파이에 연결 (GPIO 핀 기준)
IN1 = 5 # GPIO 5
IN2 = 6 # GPIO 6
ENA = 13 # GPIO 13
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(IN1, GPIO.OUT)
GPIO.output(IN1, GPIO.LOW)
GPIO.setup(IN2, GPIO.OUT)
GPIO.output(IN2, GPIO.LOW)
GPIO.setup(ENA, GPIO.OUT)
GPIO.output(ENA, GPIO.LOW)
while True:
GPIO.output(IN1, GPIO.LOW)
GPIO.output(IN2, GPIO.HIGH)
GPIO.output(ENA, GPIO.HIGH)
time.sleep(1)
참고한 코드는 있지만 IN1, IN2, ENA가 어떤 역할이고 어떤 원리로 모터가 작동하는지 몰라 경우의 수를 세보았다.
222 이니까 8가지의 경우이다.
| Port Num | Bool | Result |
|---|---|---|
| IN 1 | LOW | X |
| IN 2 | LOW | |
| ENA | LOW |
| Port Num | Bool | Result |
|---|---|---|
| IN 1 | LOW | X |
| IN 2 | LOW | |
| ENA | HIGH |
| Port Num | Bool | Result |
|---|---|---|
| IN 1 | LOW | O |
| IN 2 | HIGH | |
| ENA | HIGH |
| Port Num | Bool | Result |
|---|---|---|
| IN 1 | HIGH | O |
| IN 2 | LOW | |
| ENA | HIGH |
| Port Num | Bool | Result |
|---|---|---|
| IN 1 | LOW | X |
| IN 2 | HIGH | |
| ENA | LOW |
| Port Num | Bool | Result |
|---|---|---|
| IN 1 | HIGH | X |
| IN 2 | LOW | |
| ENA | LOW |
| Port Num | Bool | Result |
|---|---|---|
| IN 1 | HIGH | X |
| IN 2 | HIGH | |
| ENA | LOW |
| Port Num | Bool | Result |
|---|---|---|
| IN 1 | HIGH | X |
| IN 2 | HIGH | |
| ENA | HIGH |
초록색 테이블만 작동하는데 조심스럽게 예측해보자면 모터가 돌아가는 두 가지 경우의 차이점이 모터의 회전방향이 아닐까 생각된다.