- 필요한 구성 요소
- 스테퍼 모터의 핀 설명
- ULN2003 모듈을 사용한 스테퍼 모터 제어를위한 회로도
- L293D 모듈을 사용한 스테퍼 모터 제어를위한 회로도 :
- AVR ATmega16으로 스테퍼 모터 제어
스테퍼 모터는 DC 브러시리스 모터로 0 0 에서 360 0 까지 단계적으로 회전 할 수 있습니다. 스테퍼 모터는 전자 신호를 사용하여 모터를 단계적으로 회전시키고 각 신호는 고정 된 증분 (1 단계)으로 샤프트를 회전시킵니다. 회전 각도는 특정 시퀀스의 신호를 적용하여 제어됩니다. 서보 모터와 달리 스테퍼 모터는 PWM 핀이 아닌 마이크로 컨트롤러의 GPIO 핀을 사용하여 구동 할 수 있으며 (+360 0) 및 (-360 0). 신호의 순서는 스테퍼 모터의 시계 방향과 반 시계 방향을 결정합니다. 모터의 속도를 제어하려면 적용되는 제어 신호의 속도 만 변경하면됩니다. 스테퍼 모터는 단계적으로 회전합니다. 스테퍼 모터를 작동하는 단계에는 풀 스텝, 하프 스텝 및 마이크로 스텝과 같은 여러 가지 모드가 있습니다. 스테퍼 모터의 기본, 이론 및 작동 원리에 대해 자세히 알아 보려면 링크를 따르십시오.
이전에 스테퍼 모터를 여러 마이크로 컨트롤러와 인터페이스했습니다.
- ARM7-LPC2148과 스테퍼 모터 인터페이스
- Arduino Uno와 스테퍼 모터 인터페이스
- 스테퍼 모터와 MSP430G2 인터페이스
- 스테퍼 모터와 STM32F103C8 인터페이스
- 스테퍼 모터와 PIC 마이크로 컨트롤러의 인터페이스
- 스테퍼 모터와 8051 마이크로 컨트롤러의 인터페이스
- 스테퍼 모터와 Raspberry Pi의 인터페이스
이 튜토리얼에서는 Atmel Studio 7.0을 사용하여 28BYJ-48 스테퍼 모터를 Atmega16 AVR 마이크로 컨트롤러와 인터페이스 합니다. 스테퍼 모터는 5V에서 작동하도록 평가됩니다. 스테퍼 모터를 두 모터 드라이버 즉, ULN2003 및 L293 과 인터페이스 할 것입니다. 둘 다 5V 전원으로 구동됩니다. 인터페이스를 단순화하기 위해 두 모터 드라이버의 사전 빌드 모듈을 사용하고 있습니다. ULN2003 및 L293D 독립형 IC를 사용할 수도 있습니다. 전선과 점퍼의 수는 더 많을 수 있으므로 모든 연결을 연결하는 동안 조심하십시오.
필요한 구성 요소
- 스테퍼 모터 (28BYJ-48)
- ULN2003 모듈 / L293D 모터 드라이버
- Atmega16 마이크로 컨트롤러 IC
- 16Mhz 수정 발진기
- 2 개의 100nF 커패시터
- 2 개의 22pF 커패시터
- 누름 단추
- 점퍼 와이어
- 브레드 보드
- USBASP v2.0
- Led (모든 색상)
스테퍼 모터의 핀 설명
ULN2003 모듈을 사용한 스테퍼 모터 제어를위한 회로도
ULN2003을 사용할 때 아래 다이어그램과 같이 모든 구성 요소를 연결하십시오.. 마찬가지로 다음 단계에서 L293D를 사용하여 인터페이스 할 것입니다. 우리는 Atmega16의 PORTA를 사용하여 두 모터 드라이버의 스테퍼 모터를 인터페이스합니다. 스테퍼 모터의 5V 핀을 연결할 필요가 없습니다. 스테퍼 모터를 이동하려면 코일 핀만 필요합니다. 핀 순서는 스텝을 달성하기 위해 코일에 에너지를 공급해야하므로 스테퍼 모터를 구동하는 데 매우 중요합니다. 이 프로젝트에서는 ULN2003의 4 개의 입력과 ULN2003의 4 개의 출력이 사용됩니다. 입력은 PORTA 핀에 연결되고 출력은 스테퍼 모터 신호 핀에 연결됩니다. 또한 필요할 때마다 Atmega16을 재설정하기 위해 재설정 핀에 하나의 푸시 버튼을 연결하십시오. Atmega16을 적절한 수정 발진기 회로와 연결합니다. 모든 시스템은 5V 공급으로 전원이 공급됩니다.
아래는 ULN2003 모터 드라이버 모듈 의 실제 사진입니다.
아래에서는 스테퍼 모터를 회전시키기 위해 ULN2003 및 L293D와 Atmega16 핀 연결을 제공했습니다. 스테퍼 모터와 L293D 모듈의 인터페이스는 이후 섹션에서 설명합니다. 스테퍼 모터 제어에는 ULN2003 또는 L293D 중 하나의 모듈 만 필요합니다.
INPUT의 핀 연결은 다음과 같습니다.
Atmega16 |
ULN2003 |
L293D |
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
OUTPUT의 핀 연결은 다음과 같습니다.
스테퍼 모터 |
ULN2003 |
L293D |
주황색 |
출력 1 (PIN16) |
출력 1 (PIN3) |
노랑 |
출력 2 (PIN15) |
OUT2 (핀 6) |
분홍 |
출력 3 (PIN14) |
OUT3 (PIN11) |
푸른 |
출력 4 (PIN13) |
OUT4 (PIN14) |
L293D 모듈을 사용한 스테퍼 모터 제어를위한 회로도:
AVR ATmega16으로 스테퍼 모터 제어
서보 모터와 달리 이미 말했듯이 스테퍼 모터에는 ULN2003 또는 L293D 모터 드라이버와 같은 외부 드라이버가 필요합니다. 따라서 위와 같이 회로를 연결 하고 마지막에 주어진 main.c 프로그램을 업로드하십시오.
스케치는 스테퍼 모터가 양쪽 즉 시계 방향과 반 시계 방향으로 회전하는 것을 보여줍니다. 스테퍼를 한 방향으로 회전하려면 스케치에서 다른 방향의 코드 라인을 주석 처리하면됩니다.
Stepper Motor 제어를위한 완전한 AVR 코드 는 아래와 같습니다. 코드는 간단하고 쉽게 이해할 수 있습니다. 아래에 두 개의 코드가 있습니다. 하나는 ULN2003이있는 회전 스테퍼 모터 용이고 다른 하나는 L293D 모듈 입니다.
USBASP v2.0을 연결하고이 링크의 지침에 따라 USBASP 및 Atmel Studio 7.0을 사용하여 Atmega16 AVR 마이크로 컨트롤러 를 프로그래밍 합니다. 스케치를 작성하고 외부 도구 모음을 사용하여 업로드하십시오.
데모 비디오 가 포함 된 완전한 코드 는 다음과 같습니다.