DC 모터를 제어하기 위한 드라이버 모듈은 여러가지 종류가 있는데 그 중에 일반적으로 많이 사용되는 L298N을 사용한 모터 드라이버를 테스트해 보았습니다.
- 드라이버 칩 : L298N 듀얼 H-브리지 드라이버 칩
- 드라이브 부분의 공급전압 VMS : +5 V ~ 35 V
- 드라이브 부분의 최대전류 : 2A / bridge
- 로직 부분의 공급전압 : 5 V
- 로직 부분의 작동 전류 범위 :0 ~ 36mA
- 입력제어신호 전압 범위 : H: 4.5~ 5.5V / L: 0V
- 최대 소비 전력 : 20W
- 보관 온도 : -25 ℃까지 130 ℃
- 드라이버 보드 크기 : 55mm * 60mm * 30mm
아래 2개의 모듈은 사이즈만 다른 같은 모터 드라이버입니다.
제가 가지고 있는 모듈은 왼쪽 버전이고 요즘에는 전부 오른쪽 버전을 많이 사용하는것 같습니다.
MOTORA/MOTORB에 각 각의 DC 모터를 연결하여 총 2개의 DC 모터를 제어할 수 있으며 또한 MOTORA/MOTORB를 모두 사용하여 4선 스텝모터 1개를 제어할 수 있습니다.
요즘 판매되는것과는 조금 회로도가 다른데 전체적인 회로는 유사하니 참고용으로 사용하시면 됩니다.
위 색깔 칠해져 있는 부분에 대한 설명입니다.
Motor A/B : DC 모터를 각 각 연결하거나 4선 스텝모터를 연결합니다.
ENA/ENB : 모터 A/B쪽 동작시키거나 멈추게 합니다.
+12V/GND/+5V 단자 : 5V 이상의 전원을 사용하는 모터를 사용시 +12V에 모터 전원을 연결하고,
5V 전원을 사용하는 모터는 +12V가 아닌 +5V 단자에 모터 전원을 연결합니다.
자세한 전원 관련 설정은 위 회로도를 참고하여 연결하시면 됩니다.
아래와 같이 DC 모터 한개만 연결하여 테스트를 해 보았습니다.
정방향 3초 -> 역방향 3초 -> 정지 1초 -> ENA를 PWM으로 사용하여 속도 조절된 정방향 3초 -> ENA를 PWM으로 사용하여 속도 조절된 역방향 3초 -> 정지 순서로 테스트할 수 있는 코드를 작성하였습니다.
int ENA = 10;
int INA1 = 9;
int INA2 = 8;
int cmd = 0;
void setup()
{
Serial.begin(9600);
pinMode(ENA, OUTPUT);
pinMode(INA1, OUTPUT);
pinMode(INA2, OUTPUT);
digitalWrite(ENA, LOW);
digitalWrite(INA1, LOW);
digitalWrite(INA2, LOW);
Serial.println("DC motor test");
Serial.println("Forward ");
digitalWrite(ENA, HIGH);
digitalWrite(INA1, HIGH);
digitalWrite(INA2, LOW);
delay(3000);
Serial.println("Backward");
digitalWrite(ENA, HIGH);
digitalWrite(INA1, LOW);
digitalWrite(INA2, HIGH);
delay(3000);
Serial.println("stop");
digitalWrite(ENA, LOW);
digitalWrite(INA1, LOW);
digitalWrite(INA2, LOW);
delay(1000);
Serial.println("Forward-PWM");
analogWrite(ENA, 150);
digitalWrite(INA1, HIGH);
digitalWrite(INA2, LOW);
delay(3000);
Serial.println("Backward-PWM");
analogWrite(ENA, 150);
digitalWrite(INA1, LOW);
digitalWrite(INA2, HIGH);
delay(3000);
Serial.println("stop");
digitalWrite(ENA, LOW);
digitalWrite(INA1, LOW);
digitalWrite(INA2, LOW);
}
void loop()
{
}
업로드 후 실행해 보면 아래와 같이 정상적으로 동작됩니다.
'Hardware > Arduino ( AVR )' 카테고리의 다른 글
[아두이노] 적외선 근접 센서 사용하기 (0) | 2022.02.20 |
---|---|
[아두이노] M35SP-7N 스텝모터 사용하기 (L298N 모터드라이버 사용) (0) | 2022.02.18 |
[아두이노] LM35DZ 온도센서 사용하기 (0) | 2022.02.16 |
[아두이노] WAV 파일 재생하기 (MP3파일을 WAV 파일로 변환) (0) | 2022.02.15 |
[아두이노] Micro SD 카드 사용하기 (0) | 2022.02.14 |
댓글