반응형
DC 모터 (L298N)
DC 모터는 PWM((Pulse Width Modulation)을 이용해서 0 ~ 255 까지 속도를 제어 할 수 있다.
숫자가 낮을 수록 회전수가 적어져 속도가 느려진다.
또 한 DC 모터를 제어하기 위해서 드라이버가 필요한데 회로도에 나와있는 L298D다.
(회로도에는 L293D라 되어있지만 L298D가 명칭임.)
L298D는 DC모터 뿐만 아니라 Servo 모터를 제어 할 수 있다.
회로도
DC모터가 회전 하지 않을 때 아래 방법으로 해결.
1. 회전 속도가 낮아 안 돌아감 -> 1. 손으로 한번 돌려 볼것, 2. 코드에 속도를 255로 해볼것.
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);
}
}
반응형
'Arduino' 카테고리의 다른 글
[Arduino] 아두이노 조도센서(Photoresistor) 사용하기 (0) | 2024.02.02 |
---|---|
[Arduino] 아두이노 가변저항 사용해서 LED 밝기 조절하기 (0) | 2024.02.02 |
[Arduino] 아두이노 7세그먼트 사용해서 숫자 카운트하기 (0) | 2024.02.02 |
[Arduino] 아두이노 푸시 버튼으로 LED 제어하기 (0) | 2024.02.02 |
[Arduino] 아두이노 푸시 버튼(push button) 사용하기, INPUT, INPUT_PULLUP (0) | 2024.02.02 |