아두이노 스텝모터 코딩 - adu-ino seutebmoteo koding

[메이커키트] 아두이노 스텝(스테핑)모터 실습 - 회전방향, 속도, 각도 조절

휴몬랩메이커2020. 5. 4. 16:06

휴몬랩 메이커키트

스텝(스테핑)모터 활용법을 소개합니다.

■ 준비하기

아두이노, 스텝 모터, 드라이버, 암수점퍼선 6개

■ 실습 목표

1. 스텝모터의 회전 방향과 속도 설정하고 360도 회전

2. 시계방향으로 180도 회전시키고 반시계방향으로 180도 회전 반복하기

3. 회전 시간을 설정해서 1바퀴 회전 (타이머)

■ 스텝 모터란?

스텝 모터는 -360도에서 360도까지 완전 회전이 가능한 모터입니다. 주로 3D프린터나 CNC 기계 같은 정밀한 위치 회전기능이 필요할 장치에 많이 사용됩니다. 스텝 모터의 작동 원리는 32개의 톱니바퀴가 4개의 전자석을 통해 한번에 한단계씩 회전시키는 방식으로 작동합니다.

아래의 이미지와같이 코일에 펄스를 공급하면 톱니가 회전하는 방식인데, 이 방식은 스텝 모터의 동작에 큰 영향을 줍니다.

- 펄스 순서에 따라 모터의 회전 방향을 바꿀 수 있습니다.

- 펄스의 주기(PWM)에 따라서 모터의 속도를 바꿀 수 있습니다.

- 펄스의 횟수에 따라 모터의 회전 거리를 바꿀 수 있습니다.

실습01. 스텝모터의 회전 방향과 속도 설정하고 360도 회전

■ 회로 구성

아래의 그림과 같이 회로를 연결해 주시면 됩니다~

스텝 모터는 PWM기능이 필요하기 때문에 아두이노의 물결무늬(~)가 있는 핀을 사용해야 합니다. 따라서 디지털 ~9, ~10, ~11번 핀을 사용했습니다.

■ 코드 작성

본 포스팅의 코드를 사용하시려면 먼저 휴몬랩 라이브러리 설치가 필요합니다.

(휴몬랩 라이브러리는 휴몬랩 메이커 키트를 구매하시면 제공해드립니다)

메이커랩 수업 콘텐츠 구경하기 → //makers-huemonelab.com/start

휴몬랩 라이브러리 설명 보기 //blog.naver.com/kids_power/221759791749

*코드 해석

- stepper.setSpeed(속도); - 스텝모터의 스피드를 설정합니다. 단위는 RPM(rotation per minute)으로 1바퀴에 1분 소요이 소요된다는 의미입니다. 따라서 아래의 코드는 setSpeed(10);이기때문에 1분에 10바퀴를 도는 속도라고 이해하시면 됩니다. (스텝 모터 특성상 너무 빠른 속도는 작동하지 않습니다)

- stepper.setDir(방향); - 방향을 설정하는 코드입니다. 1은 시계방향, 0은 반 시계방향으로 회전합니다. (방향 설정 코드를 작성하지 않는다면 디폴트인 시계 방향으로 회전합니다)

- stepper.step(회전각도); - 1 step에 5.625도를 회전하게 되는데, 2048은 360도 회전을 의미합니다.

#include <HuemonelabKit.h> Stepper stepper(8,9,10,11); void setup() { Serial.begin(9600); stepper.setSpeed(10); //속도 RPM(1분당 회전 수) stepper.setDir(1); //방향 } void loop() { stepper.step(2048); //1024는 180도 회전 }

스텝모터의 회전 방향과 속도 설정하고 360도 회전 성공!

실습02. 시계방향으로 180도 회전시키고

다시 반시계방향으로 180도 회전 반복하기

■ 코드 작성

* 휴몬랩 라이브러리에는 스텝모터의 회전 각도를 설정하고 타이머 기능을 실행하는 코드가 포함되어있습니다.

회전 각도를 -360(반시계) ~ 360도(시계방향)로 설정하기

아래의 코드와 같이 아두이노 스케치에 입력하고 업로드해 주세요!

(혹은 첨부된 코드 샘플을 다운로드하고 압축 해제 후 바로 업로드해서 결과를 확인하실 수 있습니다)

파일이름 : huemonelab_stepmove.zip

첨부파일

huemonelab_stepmove.zip

파일 다운로드

#include <HuemonelabKit.h> Stepper stepper(8,9,10,11); void setup() { Serial.begin(9600); stepper.setSpeed(10); } void loop() { stepper.move(180); delay(1000); stepper.move(-180); delay(1000); }

시계방향으로 180도 회전시키고

다시 반시계방향으로 180도 회전 반복하기 성공!

실습03. 회전 시간을 설정해서 1바퀴 회전 (타이머)

■ 코드 작성

* 휴몬랩 라이브러리에는 스텝모터의 회전 각도를 설정하고 타이머 기능을 실행하는 코드가 포함되어있습니다.

[타이머 기능] 1바퀴를 완전히 회전하는 시간 설정하기

10초동안 1바퀴 회전

아래의 코드와 같이 아두이노 스케치에 입력하고 업로드해 주세요!

(혹은 첨부된 코드 샘플을 다운로드하고 압축 해제 후 바로 업로드해서 결과를 확인하실 수 있습니다)

파일이름 : huemonelab_steptimer.zip

첨부파일

huemonelab_steptimer.zip

파일 다운로드

#include <HuemonelabKit.h> Stepper stepper(8,9,10,11); void setup() { Serial.begin(9600); stepper.setDir(0); } void loop() { stepper.setTimer(10); //10초동안 1바퀴 회전 delay(1000); }

회전 시간을 설정해서 1바퀴 회전 (타이머) 성공!

Toplist

최신 우편물

태그