답변 : 아두이노 스텝모터관련 문의 드립니다(꼭 봐주세요 ㅠㅠ)
페이지 정보
작성자 master 작성일18-12-08 16:52 조회4,589회 댓글1건본문
// MCU BASIC: https://www.basic4mcu.com
// DateTime : 2018-12-08 오후 4:57:49
// by Ok-Hyun Park
//
#define TRIG_PIN 2
#define ECHO_PIN 3
//
int mPin1=10,mPin2=11,mPin3=12,mPin4=13; //스텝모터 핀
//스텝모터의 스텝설정
const byte numbers[16]={
0b11111100,
0b01100000,
0b11011010,
0b11110010,
0b01100110,
0b10110110,
0b10111110,
0b11100000,
0b11111110,
0b11100110,
0b11101110,
0b00111110,
0b10011100,
0b01111010,
0b10011110,
0b10001110
};
//
int elevator=1; // the value represents where elevator stay
int distance=0;
//
void setup(){
pinMode(TRIG_PIN,OUTPUT); pinMode(ECHO_PIN,INPUT);
pinMode(mPin1,OUTPUT); pinMode(mPin2,OUTPUT);
pinMode(mPin3,OUTPUT); pinMode(mPin4,OUTPUT);
Serial.begin(9600);
}
//
void HCSR04(){
delay(100);
digitalWrite(TRIG_PIN,1); delayMicroseconds(5); digitalWrite(TRIG_PIN,0);
distance=pulseIn(ECHO_PIN,1)/5.8;
}
//
void loop(){
HCSR04();
//---------------------------------------------------
Serial.print("distance="); Serial.print(distance); Serial.println("mm");
if(distance<=30){ // 센서 감지
up(); elevator++;
do{ HCSR04(); } while(distance<=30); // 센서 감지를 벗어날 때까지 대기
if(elevator==3){ elevator=0; // 3층이면 지하1층으로 이동
down(); down(); down();
}
Serial.print(elevator); Serial.println(" floor");
}
}
//-------up function which is for to go up elevator
void up(){ // each floor distance where it works to up
for(int b=0; b<450; b++){
digitalWrite(mPin1,0); digitalWrite(mPin2,0);
digitalWrite(mPin3,0); digitalWrite(mPin4,1); delay(3);
digitalWrite(mPin1,0); digitalWrite(mPin2,0);
digitalWrite(mPin3,1); digitalWrite(mPin4,0); delay(3);
digitalWrite(mPin1,0); digitalWrite(mPin2,1);
digitalWrite(mPin3,0); digitalWrite(mPin4,0); delay(3);
digitalWrite(mPin1,1); digitalWrite(mPin2,0);
digitalWrite(mPin3,0); digitalWrite(mPin4,0); delay(3);
}
}
//
void down(){ // each floor distance where it works to down
for(int a=0; a<450; a++){
digitalWrite(mPin1,1); digitalWrite(mPin2,0);
digitalWrite(mPin3,0); digitalWrite(mPin4,0); delay(3);
digitalWrite(mPin1,0); digitalWrite(mPin2,1);
digitalWrite(mPin3,0); digitalWrite(mPin4,0); delay(3);
digitalWrite(mPin1,0); digitalWrite(mPin2,0);
digitalWrite(mPin3,1); digitalWrite(mPin4,0); delay(3);
digitalWrite(mPin1,0); digitalWrite(mPin2,0);
digitalWrite(mPin3,0); digitalWrite(mPin4,1); delay(3);
}
}
댓글 : 1
조회수 : 4,589
융추님의 댓글
융추 작성일
정말 감사합니다. ㅠㅠㅠㅠ 진짜 감사해요 ㅠㅠ