그래블로 도움말 그래블로 도움말
  • 시작하기
  • 사용 가이드
    • 사용자 매뉴얼
    • 예제
  • 참고 자료
    • 유용한 정보
    • 자주 하는 질문
    • 업데이트 소식
  • 링크
    • 그래블로 홈
    • 그래블로 앱
문의하기
그래블로 도움말 그래블로 도움말
문의하기
그래블로 도움말 그래블로 도움말
  • 시작하기
  • 사용 가이드
    • 사용자 매뉴얼
    • 예제
  • 참고 자료
    • 유용한 정보
    • 자주 하는 질문
    • 업데이트 소식
  • 링크
    • 그래블로 홈
    • 그래블로 앱
loading
  1. Home
  2. 사용자 매뉴얼
  3. I/O장치
  4. 스텝 모터 제어
Updated on 6월 26, 2025

사용자 매뉴얼

  • Folder icon closed Folder open icon프로젝트
    • 일반
    • 공유
  • Folder icon closed Folder open icon로직
    • 로직
    • 제어그룹
    • 제어
    • 조건그룹
    • 동작그룹
    • 조건
      • 일반
      • 타입
        • 항상 만족
        • 한번만 만족
        • 변수값 비교
        • 스케쥴
        • 시간 구간
        • 시간 주기
        • 조건 참조
        • 동작 참조
        • 변경 감지
        • 사용자 조건
    • 동작
      • 일반
      • 타입
        • 변수 쓰기
        • I/O장치 제어
        • 시간 지연
        • 타이머
        • 미디어 재생
        • 이미지 보기
        • 전자 악기 연주
        • SHELL 명령 실행
        • 오디오 녹음
        • 오디오 변조
        • 음성 텍스트 변환
        • 텍스트 음성 변환
        • 파일 시스템
        • 파일 읽기/쓰기
        • 데이터베이스
        • HTTP 통신
        • MQTT 통신
        • OPC UA 통신
        • 모드버스 통신
        • 이메일 보내기
        • 텔레그램 메시지
        • 사용자 정의 통신
        • PID 제어
        • 통계 계산
        • 컬렉션
        • 사용자 동작
  • Folder icon closed Folder open icon대시보드
    • 일반
    • 위젯
  • Folder icon closed Folder open icon설정
    • GPIO
    • 변수
    • I/O장치
    • 파일 편집기
    • 컬렉션
    • 타이머
    • 이미지 뷰어
    • 오디오 변조
    • 미디어 플레이어
    • 전자 악기
    • 텍스트 음성 변환
    • 음성 텍스트 변환
    • 오디오 녹음기
    • MQTT 클라이언트
    • OPC UA 클라이언트
    • 모드버스
    • 이메일 클라이언트
    • 텔레그램 봇
    • 데이터베이스
    • 사용자 정의 통신
    • PID 제어
    • 통계
  • Folder icon closed Folder open iconI/O장치
    • DS18B20 디지털 온도 센서
    • MAX31865 RTD 온도 센서
    • TinyGPS ++ GPS 라이브러리
    • BMP180 디지털 대기압, 온도 센서
    • AHTx0 온도, 습도 센서
    • SHT2x 온도, 습도 센서
    • 서보 모터 제어
    • PWM 신호 출력
    • PWM 신호 모니터링
    • 하드웨어 PWM 신호출력
    • LED 켜기/끄기
    • 푸시버튼 읽기
    • 디지털 읽기/쓰기
    • 스텝 모터 제어
    • 고속 카운터
    • ADS1x15 ADC 변환 모듈
    • ADXL345 3축 가속도 센서
    • BME280 온도, 습도, 대기압센서
    • BMP280 온도, 대기압 센서
    • MLX90614 비접촉식 적외선 온도 센서
    • MCP4725 DAC 모듈
    • QMC5883L 3축 지자기 센서
    • SHT31 디지털 온습도 센서
    • TCS34725 RGB 컬러 센서
    • VEML6070 자외선 센서
    • BH1750 디지털 조도센서
    • DS3231 RTC 고정밀 리얼타임 클럭
    • MPU-9250 9축 IMU 센서
    • CCS811 이산화탄소 및 TVOC 공기품질 센서
    • VL53L0X ToF 레이저 거리 센서
    • TFmini Plus(S) LiDAR 거리 센서
    • MAX7219 8자리 7세그먼트 디스플레이
    • PCF8574 LCD 디스플레이 드라이버
    • HC-SR04 초음파 거리센서
    • LED 밝기 제어
    • RGB LED 색상 제어
    • DC 모터 제어
    • AT24C256 EEPROM 메모리 모듈
    • DHTxx 온습도 센서
    • MCP3xxx ADC 모듈
    • LCD 디스플레이 드라이버(MCP23008, MCP23017)
    • MFRC522 RFID 리더
    • 수동 부저
    • 네오픽셀 (WS281x) LED
    • 적외선(IR) 리시버
    • 네오픽셀 매트릭스
    • ST77xx TFT 컬러 LCD 모듈
    • ILI9341 TFT 컬러 LCD 모듈
    • SSD1306 0.96인치 단색 OLED 디스플레이
    • SH1106 1.3인치 단색 OLED 디스플레이
    • MAX7219 8×8 LED 도트 매트릭스
    • HT16K33 4자리 7세그먼트 디스플레이
    • HX711 로드셀 측정 24비트 AD컨버터
    • TCS3200 RGB 컬러센서
    • MPU6050 6축 자이로 가속도 센서
    • TM1637 4자리 7세그먼트 디스플레이
    • PM2008(M) 미세먼지 측정 센서
    • PMS x003 미세먼지 측정 센서
    • MAX30102 산소 포화도, 심박수 측정 센서
    • AS608, FPM10A 지문 인식 센서
    • TTP229 정전식 16키 터치 키패드
    • 4×4 키패드 매트릭스
    • 아날로그 입력
    • 아날로그 출력
    • RPM 모니터
    • PCA9685 16채널 12비트 PWM 서보 드라이버
    • INA219 DC 전류 센서 모듈
    • VL6180X ToF 거리 센서
    • 사용자 정의 디지털 파형 출력
    • NRF24L01 2.4GHz RF통신모듈
  • Folder icon closed Folder open icon블록 코딩
    • 일반
    • 블록
      • 일반
      • 논리
      • 반복
      • 수학
      • 날짜/시간
      • 텍스트
      • 바이트 배열
      • 리스트
      • 타입 변환
      • 단위 변환
      • 자연/과학
      • 비트/바이트
      • 복소수/벡터
      • JSON
      • XML
      • 지역 변수
      • 지역 함수
  • Folder icon closed Folder open icon연결 및 실행
    • 하드웨어 및 운영체제
    • 그래블로 패키지 설치
    • 연결 및 실행

스텝 모터 제어

Estimated reading: 1 minute 221 views

일반

스텝 모터(Step Motor) 또는 스테퍼 모터(Stepper Motor)라고 불리며, 펄스가 입력될 때 마다 일정한 각도만큼 모터가 회전하므로 정밀한 위치 제어 또는 각도 제어에 사용할 수 있습니다. 여러 대의 모터를 동시에 운전할 수 있으며, 각 모터 별로 회전 또는 대기 동작을 연속적으로 구성할 수 있습니다. 또한 가속 및 감속을 이용하여 부드러운 동작을 구현할 수 있습니다.


사용 가능한 GPIO
  • 라즈베리파이 0~4


스텝 모터는 드라이버를 통해 구동되며 드라이버의 타입에 대한 설명과 대표적인 모델은 아래와 같습니다.

타입 설명 모델
1 Pulse

• STEP(PUL) : Pulse 입력
• DIR : 정/역 회전 입력

A4988, DRV8825, TB6600, A3967 외
2 Pulse

• CW : 정회전 Pulse 입력
• CCW : 역회전 Pulse 입력

DCM8027, DCM8054, MD2/5 시리즈 외
4 Pulse

• IN1: Pulse 1 입력
• IN2: Pulse 2 입력
• IN3: Pulse 3 입력
• IN4: Pulse 4 입력

L298N, L293D, ULN2003외
스텝 모터의 타입, 전압, 전류에 맞는 적절한 모터 드라이버를 선정해야 합니다.

​

명령

[INIT]

스텝 모터의 초기설정을 입력합니다.

항목 타입 설명
드라이버 타입 WRITE 스텝 모터 드라이버의 타입을 선택합니다. (1 pulse, 2 pulse, 4 pulse)
1회전 스텝 수 WRITE 스텝 모터가 1회전하는데 필요한 스텝 수를 입력합니다.

​

드라이버 타입: 1 pulse (STEP/DIR) 선택시

항목 타입 설명
STEP/PUL 핀 WRITE 드라이버의 STEP/PUL 과 연결할 GPIO 핀을 입력합니다.
DIR 핀 WRITE 드라이버의 DIR 와 연결할 GPIO핀을 입력합니다.


드라이버 타입: 2 pulse (CW/CCW) 선택시

항목 타입 설명
CW 핀 WRITE 드라이버의 CW 와 연결할 GPIO핀을 입력합니다.
CCW 핀 WRITE 드라이버의 CCW 와 연결할 GPIO핀을 입력합니다.


드라이버 타입: 4 pulse (IN1~IN4) 선택시

항목 타입 설명
IN1 핀 WRITE 드라이버의 IN1와 연결할 GPIO핀을 입력합니다.
IN2 핀 WRITE 드라이버의 IN2와 연결할 GPIO핀을 입력합니다.
IN3 핀 WRITE 드라이버의 IN3와 연결할 GPIO핀을 입력합니다.
IN4 핀 WRITE 드라이버의 IN4와 연결할 GPIO핀을 입력합니다.
Excitation Mode * WRITE 여자(Excitation) 모드를 선택합니다. (Full step, Half step)
* Half step은 Full step에 비해 1회전에 2배 더 많은 펄스를 사용하여 더 정밀한 제어가 가능합니다. 예를 들어, 28BYJ-48 스텝모터는 Full step 모드에서는 1회전이 2048 펄스 , Half step 모드에서는 4096 펄스입니다.

​

항목 타입 설명
펄스 생성 시간(ms) * WRITE 출력 펄스를 생성하는 시간을 입력합니다. (고급)
동기 제어 그룹 WRITE 동기 제어를 사용할 경우 이 모터가 속한 그룹 번호를 설정합니다.
* 스텝 모터는 펄스 생성 시간마다 출력 펄스를 반복해서 생성하며, 기본값은 50ms, 최소값은 10ms, 최대값은 1000ms 입니다. 만약 스텝 모터마다 이 값이 다른 경우 가장 큰 값을 기준으로 합니다.

라즈베리파이의 사양이 낮거나, 동시에 실행되는 작업이 많을수록 스텝 모터의 회전이 연속적이지 않고 간헐적으로 끊기는 현상이 발생할 수 있으며 이때 펄스 생성 시간을 증가시키면 문제가 해결될 수 있습니다.

다만, 스텝 모터의 시작, 정지, 일시정지, 재시작시의 반응 속도는 이 값이 커질수록 느려집니다. 예를 들어 펄스 생성시간이 1000ms (1초)이면 정지 명령 후 실제 스텝 모터가 정지할 때 까지 걸리는 시간이 최대 1초가 될 수 있습니다.
그러므로 빠른 응답 속도가 필요한 경우에는 이 값을 최소값인 10ms로 설정하고 가급적 높은 사양의 라즈베리파이를 사용하며 동시에 실행되는 작업을 최소화해야 합니다.


[ADD_MOTION]

스텝모터의 회전 동작을 버퍼에 추가합니다. 목표속도와 회전량(회전수 또는 펄스)으로 모터를 회전하며 가속 및 감속을 사용하여 부드럽게 시작하고 정지할 수 있습니다. 이 명령과 ADD_DELAY 명령을 조합하여 여러 개의 회전 또는 대기 동작이 연속적으로 실행되도록 구성할 수 있습니다.

항목 타입 설명
속도 (rpm) WRITE 스텝모터의 분당 회전수 (rpm)을 입력합니다.
회전단위 WRITE 회전단위를 선택합니다. (스텝수, 회전수, 좌표, 연속회전)
스텝수 1 WRITE 회전할 스텝수를 입력합니다. 음수를 입력하면 반대방향으로 회전합니다.
회전수 2 WRITE 회전할 회전수를 입력합니다. 음수를 입력하면 반대방향으로 회전합니다.
좌표 3 WRITE 이동할 좌표를 입력합니다.
회전방향 4 WRITE 회전방향을 선택합니다. (정방향, 역방향)
가속 (rpm/s) 5 WRITE 회전을 시작할때의 가속량 (1초당 속도의 증가량)을 입력합니다.
감속 (rpm/s) 5 WRITE 회전을 종료할때의 감속량 (1초당 속도의 감소량)을 입력합니다.
1 회전단위가 “스텝수” 일때만 표시됩니다.
2 회전단위가 “회전수” 일때만 표시됩니다.
3 회전단위가 “좌표” 일때만 표시됩니다.
4 회전단위가 “연속회전”일때만 표시됩니다.
5 예를 들어 정지상태에서 목표 회전 속도가 60 rpm 이고 가속과 감속이 60 rpm/s 이면 회전을 시작할때 1초에 걸쳐서 0->60rpm 으로 부드럽게 가속하고 회전을 종료할때 1초에 걸쳐 60-> 0rpm으로 부드럽게 감속합니다.

​

[ADD_DELAY]

스텝모터의 대기 동작을 버퍼에 추가합니다. 모터는 설정한 시간만큼 정지상태에서 대기합니다. 이 명령과 ADD_MOTION 명령을 조합하여 여러 개의 회전 또는 대기 동작이 연속적으로 실행되도록 구성할 수 있습니다.

항목 타입 설명
대기시간 WRITE 스텝모터가 정지상태에서 대기할 시간을 입력합니다.

​

[RUN]

버퍼에 저장된 회전 (ADD_MOTION) 또는 대기 (ADD_DELAY) 동작에 따라 스텝모터를 운전합니다. 아래는 운전 예시입니다.

1. 회전 동작을 연속적으로 실행하는 경우, 가속 또는 감속은 이전 회전 동작과의 속도 차이를 고려하여 자동으로 계산됩니다.


[STOP]

스텝모터를 정지합니다.

​

[PAUSE]

스텝모터를 일시정지 합니다.

​

[RESUME]

스텝모터를 재시작 합니다.

​

[CLEAR]

스텝모터의 버퍼를 삭제하고 초기화합니다.

​

[RUN_SYNC]

여러대의 스텝모터를 동기제어 (Syncronized motion) 모드로 운전합니다. 여러대의 스텝모터를 정확한 타이밍으로 제어할 필요가 있을 경우 사용합니다. 만약 동작이 먼저 완료된 모터가 있다면 나머지 모터의 동작이 모두 완료될때까지 대기해야 합니다.

항목 타입 설명
그룹 번호 WRITE 동기제어 모드로 운전할 스텝 모터 그룹 번호를 입력합니다.


아래는 2대의 스텝 모터를 동기제어 모드로 운전하는 예입니다.

1. 동시에 운전을 시작합니다.
2. 먼저 동작이 완료된 모터는 나머지 모터가 모두 완료될때까지 대기합니다.
3. 동기제어가 완료됩니다.

​

[STOP_ALL]

운전중인 모든 스텝모터를 정지합니다.

​

[PAUSE_ALL]

운전중인 모든 스텝모터를 일시정지 합니다.

​

[RESUME_ALL]

일시정지 상태인 모든 스텝모터를 재시작합니다.

​

[CLEAR_ALL]

모든 스텝모터의 버퍼를 삭제하고 초기화합니다.

​

[SET_POSITION]

스텝모터의 현재 위치를 입력한 값으로 설정합니다.

항목 타입 설명
위치 WRITE 현재위치로 설정할 값을 입력합니다. (예: 원점으로 설정 -> 0)

​

[GET_POSITION]

스텝모터의 현재 위치를 읽어옵니다.

항목 타입 설명
위치 READ 스텝모터의 현재 위치입니다.

​

[GET_STATUS]

스텝모터의 현재 상태를 읽어옵니다.

항목 타입 설명
상태 READ 스텝모터의 현재 상태입니다. (0: 정지 상태, 1: 일시정지 상태, 2: 운전 중)

​

[EMG_STOP]

운전 중인 모든 스텝모터를 즉시 비상 정지합니다.



예제

목표

대시보드의 버튼 위젯을 클릭하면 아래의 동작 프로파일에 따라 스텝모터를 운전합니다.
회전, 정지시에 가속, 감속을 포함해야 합니다.

  • 3 바퀴 정회전
  • 1초 지연
  • 3 바퀴 역회전


부품
부품 갯수
라즈베리파이 4 1
28BYJ-48 스텝모터 1
ULN2003 드라이버 1
5V DC 파워 1


연결

아래의 핀들을 가로 방향으로 서로 연결합니다.

5V DC 파워 ** 드라이버 GPIO
​ IN1 23 *
​ IN2 24 *
​ IN3 25 *
​ IN4 8 *
+ + (5~12V) ​
– – GND
* 모든 GPIO 핀을 사용할 수 있습니다.
** 스텝모터의 타입, 전압, 소모전류에 맞는 적절한 외부 DC 파워를 사용해야 합니다.



프로젝트 링크

찾으시는 내용이 없나요? 문의하기

문의하기

공유하기

스텝 모터 제어

Or copy link

Clipboard Icon
콘탠츠

ㅤ

대전광역시 서구 둔산로 8
(주)그래블로
support@grablo.co

바로가기

  • 시작하기
  • 사용자 매뉴얼
  • 예제
  • 유용한 정보
  • 자주하는 질문
  • 업데이트 소식
  • 그래블로 홈
  • 그래블로 앱
  • 문의하기

관련 사이트

  • 유튜브
  • 인스타그램
  • 페이스북

약관 및 라이센스

  • 서비스 이용약관
  • 개인정보 처리방침
  • 오픈소스 라이센스

이 사이트의 모든 컨텐츠는 저작권법에 보호받는 저작물로서, 무단으로 복제, 배포하는 경우에는 저작권법에 의하여 처벌을 받을 수 있습니다. Copyright 2024 grablo.co. All Rights Reserved.