티스토리 뷰
728x90
출처
- 4 Phase Step Motor - Cookbook | Mbed
- 라즈이노 iOT :: 【 아두이노 기초 】 #35 스텝(Step Motor)모터 제어4 (28BYJ-48 & ULN2003)
micro:bit : 스탭모터(28BYJ48 + ULN2003) 제어
스탭모터(28BYJ48)와 스텝 모터 드라이버(ULN2003)는 저렴하고 많이 사용하고 있어서 많은 예제가 있습니다. 스탭의 반복하면서 반복 하는 시간차와 회수를 계산해서 원하는 각도로 회전하거나, 스탭의 방향에 따라서 정방향, 역방향으로 회전 시킬 수 있습니다.
- IN1 = micro:bit 디지탈 0번핀
- IN2 = micro:bit 디지탈 1번핀
- IN3 = micro:bit 디지탈 2번핀
- IN4 = micro:bit 디지탈 3번핀
소스
/* ############################################ ## sMotor v0.1 Test Program ## ## created by Samuel Matildes ## ############################################ ---- sam.naeec@gmail.com ----- This library was made for 4-Phase Stepper Motors I don't take any resposability for the damage caused to your equipment. */ #include "MicroBit.h" #include "sMotor.h" //MicroBit uBit; MicroBitSerial gSerial(USBTX, USBRX); sMotor motor(P0_0, P0_1, P0_2, P0_3); // creates new stepper motor: IN1, IN2, IN3, IN4 //BusOut motor_out(P0_0, P0_1, P0_2, P0_3); // blue - pink - yellow - orange int step_speed = 1200; // 1200 ; // set default motor speed int numstep = 512 ; // defines full turn of 360 degree //you might want to calibrate this value according to your motor int step = 0; int dir = 1; // direction int main() { //uBit.init(); //uBit.display.disable(); //Credits printf("4 Phase Stepper Motor v0.1 - Test Program\r\n"); printf("developed by Samuel Matildes\r\n"); printf("\n\r"); // Screen Menu printf("Default Speed: %d\n\r",step_speed); printf("1- 360 degree clockwise step\n\r"); printf("2- 360 degree anticlockwise step\n\r"); printf("3- 180 degree clockwise step\n\r"); printf("4- 180 degree anticlockwise step\n\r"); printf("5- Change Speed\n\r"); while (1) { if (gSerial.readable()) { // checks for serial if (gSerial.getc()=='1') motor.step(numstep,0,step_speed); // number of steps, direction, speed if (gSerial.getc()=='2') motor.step(numstep,1,step_speed); if (gSerial.getc()=='3') motor.step(numstep/2,0,step_speed); if (gSerial.getc()=='4') motor.step(numstep/2,1,step_speed); if (gSerial.getc()=='5') { printf("Current Speed: %d\n\r", step_speed); printf("New speed: \n\r"); //gSerial.scanf("%d",&step_speed); // sets new speed } } } /* while(1) { switch(step) { case 0: motor_out = 0x1; break; // 0001 case 1: motor_out = 0x3; break; // 0011 case 2: motor_out = 0x2; break; // 0010 case 3: motor_out = 0x6; break; // 0110 case 4: motor_out = 0x4; break; // 0100 case 5: motor_out = 0xC; break; // 1100 case 6: motor_out = 0x8; break; // 1000 case 7: motor_out = 0x9; break; // 1001 default: motor_out = 0x0; break; // 0000 } if(dir) step++; else step--; if(step>7)step=0; if(step<0)step=7; //wait(0.015); // speed wait_us(step_speed); } */ }
실행 영상
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Linux
- oracle
- koba2010
- 전예희
- Delphi
- flex
- Delphi Tip
- SAS
- BPI-M4
- 레이싱모델 익스트림 포토 페스티벌
- 일본여행
- android
- 지스타2007
- 튜닝쇼 2008
- ubuntu
- Spring
- ffmpeg
- JavaScript
- 서울오토살롱
- 동경
- Java
- NDK
- KOBA
- ble
- Mac
- 송주경
- Spring MVC
- sas2009
- Xcode
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함