[Arduino] 아두이노 DC 모터 제어하기(L298N)
아두이노 DC 모터 제어하기(L298N)
DC 모터는 PWM((Pulse Width Modulation)을 이용해서 0 ~ 255 까지 속도를 제어 할 수 있다. 낮을 수록 회전수가 적어진다.
또 한 DC 모터를 제어하기 위해서 드라이버가 필요한데 회로도에 나와있는 L298D다.
L298D는 DC모터와 Servo 모터를 제어 할 수 있다.
회로도
DC모터가 회전을 하지 않을 때
1. 회전 속도가 낮아 안 돌아감 -> 손으로 한번 돌려 봐야한다.
2. DC모터의 노란색, 초록색 선을 반대로 연결 -> 바꿔서 연결 해 볼 것.
코드 구현
DC모터를 255 속도로 1초마다 반대로 회전 하도록 하는 코드
// 모터 회전력 제어
#define EN_PIN 11
//모터 제어 핀
#define IN1_PIN 10
#define IN2_PIN 9
boolean bReverse = false;
void setup()
{
pinMode(EN_PIN, OUTPUT);
pinMode(IN1_PIN, OUTPUT);
pinMode(IN2_PIN, OUTPUT);
}
void loop()
{
setMotor(255, bReverse);
delay(1000);
bReverse = !bReverse; // 반향 반전
delay(1000);
}
void setMotor(int nSpeed, boolean bReverse)
{
analogWrite(EN_PIN, nSpeed); // 속도 설정
if(bReverse == 0)
{
digitalWrite(IN1Pin, HIGH);
digitalWrite(IN2Pin, LOW);
}
else // 반대로 회전
{
digitalWrite(IN1Pin, LOW);
digitalWrite(IN2Pin, HIGH);
}
}
댓글
댓글 쓰기