라즈베리 파이 스테퍼 모터
이 튜토리얼은 L298N 드라이버를 사용하여 라즈베리 파이로 스텝 모터를 제어하는 방법을 안내합니다. 자세히는 다음을 배웁니다:
- Raspberry Pi와 L298N 드라이버를 사용하여 양극성 스테퍼 모터를 제어하는 방법
- 스테퍼 모터의 위치를 제어하기 위해 Raspberry Pi를 프로그래밍하는 방법
- 스테퍼 모터의 속도를 제어하기 위해 Raspberry Pi를 프로그래밍하는 방법
- 스테퍼 모터의 방향을 제어하기 위해 Raspberry Pi를 프로그래밍하는 방법
이 튜토리얼은 4개의 와이어가 있는 모든 유형의 바이폴라 스테퍼 모터에 적용됩니다. NEMA 17 스테퍼 모터를 예로 사용할 것입니다.
다른 유형의 스테퍼 모터를 제어하려면, 이 Raspberry Pi - 28BYJ-48 스테퍼 모터 튜토리얼을 확인하세요.
Hardware Preparation
1 | × | Raspberry Pi 4 Model B | Amazon | |
1 | × | Stepper Motor Nema 17 | Amazon | |
1 | × | L298N Motor Driver Module | 쿠팡 | Amazon | |
1 | × | 12V Power Adapter | Amazon | |
1 | × | DC Power Jack | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (추천) Screw Terminal Block Shield for Raspberry Pi | 쿠팡 | Amazon | |
1 | × | (추천) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B | Amazon | |
1 | × | (추천) Plastic Case and Cooling Fan for Raspberry Pi 4B | Amazon | |
1 | × | (추천) HDMI Touch Screen Monitor for Raspberry Pi | Amazon |
스테퍼 모터에 대하여
두 가지 일반적인 유형의 스테퍼 모터가 존재합니다:
- bipolar: 이 모터는 4개의 전선이 있습니다
- unipolar: 이 모터는 5개 또는 6개의 전선이 있습니다
6선 유니폴라 스테퍼 모터의 경우, 6개의 선 중 4개를 사용하여 바이폴라 스테퍼 모터처럼 제어할 수 있습니다.
5선 유니폴라 스테퍼 모터에 대해서는 Raspberry Pi - ULN2003 드라이버를 사용하여 28BYJ-48 스테퍼 모터 제어하기를 참조하세요.
이 튜토리얼은 양극 스테퍼 모터에만 집중합니다.
양극 스테퍼 모터 핀아웃
양극 스테퍼 모터는 네 개의 핀이 있으며, 제조업체에 따라 이 핀들의 이름이 다릅니다. 다음 표는 핀의 일반적인 이름을 보여줍니다:
PIN NO | Naming 1 | Naming 2 | Naming 3 |
---|---|---|---|
1 | A+ | A | A |
2 | A- | A | C |
3 | B+ | B | B |
4 | B- | B | D |
핀 배열, 전선의 라벨링 및 색상은 제조업체마다 다를 수 있습니다. 전선 색상과 그 이름 간의 연결을 확인하려면 데이터시트 또는 매뉴얼을 참조해야 합니다. 위의 이미지는 또한 다른 라벨링과 색상을 가진 두 개의 모터에 대한 세부 정보를 표시합니다.
회전당 단계数
모터의 사양은 DEG_PER_STEP을 명시하고 있습니다. 제어 기술에 따라 STEP_PER_REVOLUTION은 다음 표를 사용하여 결정될 수 있습니다.
Control method | Steps per Revolution | Real degree per step |
---|---|---|
Full-step | STEP_PER_REVOLUTION = 360 / DEG_PER_STEP | DEG_PER_STEP |
Half-step | STEP_PER_REVOLUTION = (360 / DEG_PER_STEP) * 2 | DEG_PER_STEP / 2 |
Micro-step (1/n) | STEP_PER_REVOLUTION = (360 / DEG_PER_STEP) * n | DEG_PER_STEP / n |
예를 들어, 모터의 데이터 시트에 1.8도/스텝이라고 명시되어 있다면:
Control method | Steps per Revolution | Real degree per step |
---|---|---|
Full-step | 200 steps/revolution | 1.8° |
Half-step | 400 steps/revolution | 0.9° |
Micro-step (1/n) | (200 * n) steps/revolution | (1.8 / n)° |
Raspberry Pi로 스테퍼 모터 제어하는 방법
Raspberry Pi는 스텝 모터를 제어하기 위해 신호를 생성할 수 있지만, 이러한 신호는 스텝 모터의 요구 사항을 충족하기에 충분한 전압 및/또는 전류를 제공하지 않습니다. 따라서 Raspberry Pi와 스텝 모터 사이에 하드웨어 드라이버가 필요합니다. 이 드라이버는 두 가지 목적을 수행합니다:
- 라즈베리 파이의 제어 신호를 전류와 전압 측면에서 증폭하기 위해
- 스테퍼 모터에 전원을 공급하는 데 사용되는 높은 전류와 전압으로부터 라즈베리 파이를 보호하기 위해
스테핑 모터를 관리하기 위해 사용할 수 있는 수많은 하드웨어 드라이버가 있습니다. 스테핑 모터 제어를 위한 가장 일반적으로 사용되는 하드웨어 드라이버 중 하나는 L298N 드라이버입니다.
L298N 드라이버에 대하여
L298N 드라이버는 두 개의 DC 모터 또는 스테퍼 모터를 제어하는 데 사용될 수 있습니다. 이 가이드에서는 스테퍼 모터를 조절하는 방법을 알아보겠습니다.
L298N 드라이버 핀아웃
L298N 드라이버는 11개의 핀과 3개의 점퍼를 가지고 있습니다.
- VCC 핀: 모터에 전원을 공급하며 5V에서 35V 사이의 전압을 사용할 수 있습니다.
- GND 핀: 공통 접지 핀으로, GND(0V)에 연결되어야 합니다.
- 5V 핀: L298N 모듈에 전원을 공급하며, Raspberry Pi에서 5V를 공급받을 수 있습니다.
- IN1, IN2, IN3, IN4 핀: 스텝 모터 제어 신호를 받기 위해 Raspberry Pi의 핀에 연결됩니다.
- OUT1, OUT2, OUT3, OUT4 핀: 스텝 모터에 연결됩니다.
- ENA, ENB 점퍼: 스텝 모터를 활성화하는 데 사용되며 ENA 및 ENB 점퍼 모두 장착되어야 합니다.
- 5V-EN 점퍼: 이 점퍼가 장착되어 있으면 L298N 모듈에 대한 전원이 VCC에서 공급되며 5V 핀에 아무것도 연결할 필요가 없습니다. 5V-EN 점퍼가 제거되면 5V 핀을 통해 L298N 모듈에 전원을 공급해야 합니다.
L298N 드라이버는 두 개의 입력 전원을 가지고 있습니다:
- 스테퍼 모터용 (VCC 및 GND 핀): 5V에서 35V까지.
- 모듈의 내부 작동용 (5V 및 GND 핀): 5V에서 7V까지. 5V-EN 점퍼가 제자리에 있을 경우, 이 핀은 연결할 필요가 없습니다.
Wiring Diagram
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
배선 구성을 간단하고 체계적으로 만들기 위해, Raspberry Pi용 스크루 터미널 블록 실드 사용을 권장합니다. 이 실드는 아래와 같이 더욱 안정적이고 관리하기 쉬운 연결을 제공합니다:
※ NOTE THAT:
- 모터 전원이 12V 이하인 경우 L298N 모듈에서 세 개의 점퍼를 그대로 유지하십시오.
- 스테퍼 모터의 핀은 제조업체에 따라 다를 수 있습니다. 올바른 배선을 위해 아래 표를 참조하십시오.
라즈베리 파이와 L298N 드라이버 간의 배선표
Raspberry Pi pins | L298N pins |
---|---|
12 | IN1 |
16 | IN2 |
20 | IN3 |
21 | IN4 |
L298N 드라이버와 스테퍼 모터 간의 배선표
중요!: 위의 배선도에 표시된 스테퍼 모터의 전선 순서에 주의하지 마십시오. 그것은 단지 예시일 뿐입니다. 스테퍼 모터의 핀 배열은 제조업체에 따라 다를 수 있습니다. 배선이 아래 표를 따르는지 확인하십시오.
L298N pins | Stepper motor pins | Or | Or |
---|---|---|---|
OUT1 | A+ | A | A |
OUT2 | A- | A | C |
OUT3 | B+ | B | B |
OUT4 | B- | B | D |
스테퍼 모터를 구매하기 전에 스테퍼 모터에 대한 데이터시트, 사양 또는 설명서를 검토할 것을 권장합니다. 핀의 색상과 이름 간의 상관 관계가 포함되어 있는지 확인하십시오. 예를 들어, 이 스테퍼 모터는 아래 이미지에 표시된 대로 다음과 같은 매핑을 가지고 있습니다.
매핑을 고려하여 배선 테이블은 다음과 같습니다:
L298N pins | stepper motor pins | wire color |
---|---|---|
OUT1 | A | black wire |
OUT2 | C | green wire |
OUT3 | B | red wire |
OUT4 | D | blue wire |
※ NOTE THAT:
스테퍼 모터와 L298N 드라이버 사이의 배선 테이블에서 배선을 하는 방법은 여러 가지가 있습니다. OUT1을 OUT2와 교체하고, OUT3을 OUT4와 교체할 수 있습니다. 그러나 이렇게 하면 모터의 회전 방향이 (시계 방향에서 반시계 방향으로, 또는 그 반대로) 바뀔 수 있습니다.
라즈베리 파이 코드 - 스테퍼 모터 코드
다음 코드:
- 모터를 시계 방향으로 한 바퀴 회전시킵니다.
- 모터를 5초 동안 멈춥니다.
- 모터를 반시계 방향으로 한 바퀴 회전시킵니다.
- 모터를 5초 동안 정지합니다.
- 이 과정을 무한히 반복합니다.
Detailed Instructions
- Raspberry Pi에 Raspbian 또는 기타 Raspberry Pi 호환 운영 체제가 설치되어 있는지 확인하세요.
- Raspberry Pi가 PC와 동일한 로컬 네트워크에 연결되어 있는지 확인하세요.
- 라이브러리를 설치해야 하는 경우 Raspberry Pi가 인터넷에 연결되어 있는지 확인하세요.
- Raspberry Pi를 처음 사용하는 경우, Raspberry Pi 설정 방법을 참조하세요.
- Linux와 macOS에서는 내장된 SSH 클라이언트를 사용하거나 Windows에서는 PuTTY를 사용하여 SSH를 통해 PC를 Raspberry Pi에 연결하세요. SSH를 통해 PC를 Raspberry Pi에 연결하는 방법은 여기를 참조하세요.
- RPi.GPIO 라이브러리가 설치되어 있는지 확인하세요. 설치되어 있지 않다면, 다음 명령어를 사용하여 설치하세요:
- 파이썬 스크립트 파일 stepper.py을(를) 만들고 다음 코드를 추가하세요.
- 파일을 저장하고 터미널에서 다음 명령을 실행하여 Python 스크립트를 실행하십시오:
스크립트는 터미널에서 Ctrl + C를 누를 때까지 무한 루프 안에서 계속 실행됩니다.
코드에서 delay 변수의 값을 변경하여 스테퍼 모터의 속도를 변경할 수 있습니다.
다음을 관찰하게 될 것입니다:
- 스테퍼 모터가 시계 방향으로 한 바퀴 회전합니다.
- 스테퍼 모터가 5초 동안 멈춥니다.
- 스테퍼 모터가 반시계 방향으로 한 바퀴 회전합니다.
- 스테퍼 모터가 다시 5초 동안 멈춥니다.
- 이 과정이 반복됩니다.
코드 설명
소스 코드의 주석에 포함된 줄별 설명을 확인하세요!
Video Tutorial
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.