int ENA_MOTOR_LEFT = 2; // PWM 신호 int IN1_MOTOR_LEFT = 10; // digital 신호 int IN2_MOTOR_LEFT = 11; // digital 신호 int IN3_MOTOR_RIGHT = 12; // digital 신호 int IN4_MOTOR_RIGHT = 13; // digital 신호 int ENB_MOTOR_RIGHT = 3; // PWM 신호
void setup() { SerialUSB.println("Start Setup"); pinMode(ENA_MOTOR_LEFT, PWM); // ENA pinMode(IN1_MOTOR_LEFT, OUTPUT); // IN1 pinMode(IN2_MOTOR_LEFT, OUTPUT); // IN2 pinMode(IN3_MOTOR_RIGHT, OUTPUT); // IN3 pinMode(IN4_MOTOR_RIGHT, OUTPUT); // IN4 pinMode(ENB_MOTOR_RIGHT, PWM); // ENB }
void loop() { SerialUSB.println("test DC Motor"); int dir = 0; int pwm = 0; int cnt = 0; while (cnt<4) { SerialUSB.print("Motor dir: "); SerialUSB.print(dir); SerialUSB.print(", PWM: "); SerialUSB.println(pwm);
// set direction digitalWrite(IN1_MOTOR_LEFT, (dir == 0) ? HIGH : LOW); digitalWrite(IN2_MOTOR_LEFT, (dir == 1) ? HIGH : LOW); digitalWrite(IN3_MOTOR_RIGHT, (dir == 0) ? HIGH : LOW); digitalWrite(IN4_MOTOR_RIGHT, (dir == 1) ? HIGH : LOW); // set speed analogWrite(ENA_MOTOR_LEFT, pwm); analogWrite(ENB_MOTOR_RIGHT, pwm); // increase speed pwm += 100; // change direction if (pwm >= 65535) { pwm = 0; dir = (dir + 1) % 2; cnt++; } } // stop motor digitalWrite(IN1_MOTOR_LEFT, LOW); digitalWrite(IN2_MOTOR_LEFT, LOW); digitalWrite(IN3_MOTOR_RIGHT, LOW); digitalWrite(IN4_MOTOR_RIGHT, LOW); }
|