일단 dc모터로 자회전만 시키려고 하는데 안되네요;;;
여기서 뭐가 틀렸나요? 프로그래밍의 천재님들 제발 알려주세요ㅠㅠ
혹시 메일로 보내주시면 감사요ㅠㅠ
bulutesss01@gmail.com
#include <L298Drv.h>
//DC모터 정의
L298Drv Motor0(8, 23);
L298Drv Motor1(7, 22);
//모터출력 high,mid,low
#define high 1
#define mid 2
#define low 3
#define mid_HIGH 4
// 전진 후진 우회전 좌회전
#define mt_forward 1
#define mt_backward 2
#define mt_right 3
#define mt_left 4
#define mt_stop 5
//DC모터 출력 전압
#define MT_DC_HIGH 254
#define MT_DC_mid_HIGH 200
#define MT_DC_MID 130
#define MT_DC_LOW 80
//로봇 운전 함수
void robotMove(int drive,int val){
if(val== high){
switch(drive){
case mt_stop:
Motor0.drive(0);
Motor1.drive(0);
break;
case mt_forward:
Motor0.drive(MT_DC_HIGH);
Motor1.drive(MT_DC_HIGH);
break;
case mt_backward:
Motor0.drive(-MT_DC_HIGH);
Motor1.drive(-MT_DC_HIGH);
break;
case mt_right:
Motor0.drive(MT_DC_HIGH);
Motor1.drive(-MT_DC_HIGH);
break;
case mt_left:
Motor0.drive(-MT_DC_HIGH);
Motor1.drive(MT_DC_HIGH);
break;
}
}
if(val== mid_HIGH){
switch(drive){
case mt_stop:
Motor0.drive(0);
Motor1.drive(0);
break;
case mt_forward:
Motor0.drive(MT_DC_mid_HIGH);
Motor1.drive(MT_DC_mid_HIGH);
break;
case mt_backward:
Motor0.drive(-MT_DC_mid_HIGH);
Motor1.drive(-MT_DC_mid_HIGH);
break;
case mt_right:
Motor0.drive(MT_DC_mid_HIGH);
Motor1.drive(-MT_DC_mid_HIGH);
break;
case mt_left:
Motor0.drive(-MT_DC_mid_HIGH);
Motor1.drive(MT_DC_mid_HIGH);
break;
}
}
if(val== mid){
switch(drive){
case mt_stop:
Motor0.drive(0);
Motor1.drive(0);
break;
case mt_forward:
Motor0.drive(MT_DC_MID);
Motor1.drive(MT_DC_MID);
break;
case mt_backward:
Motor0.drive(-MT_DC_MID);
Motor1.drive(-MT_DC_MID);
break;
case mt_right:
Motor0.drive(MT_DC_MID);
Motor1.drive(-MT_DC_MID);
break;
case mt_left:
Motor0.drive(-MT_DC_MID);
Motor1.drive(MT_DC_MID);
break;
}
}
if(val== low){
switch(drive){
case mt_stop:
Motor0.drive(0);
Motor1.drive(0);
break;
case mt_forward:
Motor0.drive(MT_DC_LOW);
Motor1.drive(MT_DC_LOW);
break;
case mt_backward:
Motor0.drive(-MT_DC_LOW);
Motor1.drive(-MT_DC_LOW);
break;
case mt_right:
Motor0.drive(MT_DC_LOW);
Motor1.drive(-MT_DC_LOW);
break;
case mt_left:
Motor0.drive(-MT_DC_LOW);
Motor1.drive(MT_DC_LOW);
break;
}
}
}
void setup() {
void robotMove(mt_left, low)
}
댓글 1