8자 주행 sample code
#define SPEED 80 // you can use from 0 ~ 256
#define Motor_right_0 3
#define Motor_right_1 5
#define Motor_left_0 6
#define Motor_left_1 9
enum direction{
RIGHT = 0,
STRAIGHT,
LEFT,
STOP,
BACK,
};
void setup()
{
pinMode(Motor_right_0, OUTPUT);
pinMode(Motor_right_1, OUTPUT);
pinMode(Motor_left_0, OUTPUT);
pinMode(Motor_left_1, OUTPUT);
Serial.begin(9600);
}
void turn(int d)
{
if(d == RIGHT)
{
analogWrite(Motor_right_1, SPEED/2);
digitalWrite(Motor_right_0, LOW);
analogWrite(Motor_left_0, SPEED);
digitalWrite(Motor_left_1, LOW);
}
else if ( d == LEFT)
{
analogWrite(Motor_right_1, SPEED);
digitalWrite(Motor_right_0, LOW);
analogWrite(Motor_left_0, SPEED/2);
digitalWrite(Motor_left_1, LOW);
}
else if (d == STRAIGHT)
{ //for STRAIGHT
analogWrite(Motor_right_1, SPEED);
digitalWrite(Motor_right_0, LOW);
analogWrite(Motor_left_0, SPEED);
digitalWrite(Motor_left_1, LOW);
}
}
void loop()
{
turn(STRAIGHT);
delay(1000);
turn(LEFT);
delay(1000);
turn(STRAIGHT);
delay(1000);
turn(RIGHT);
delay(1000);
delay(100);
}