본문 바로가기

아두이노/아두이노 과제

모터 드라이버 L298N 모듈을 이용한 DC 모터 제어

//모터 A 핀 설정
int IN1 = 7; 
int IN2 = 6;

//모터 B 핀 설정
int IN3 = 5; 
int IN4 = 4; 

void setup() {
  //모터 A 출력
  pinMode(IN1, OUTPUT); 
  pinMode(IN2, OUTPUT); 

  //모터 B 출력
  pinMode(IN3, OUTPUT); 
  pinMode(IN4, OUTPUT); 

  //동작 확인용 시리얼 모니터 통신 시작
  Serial.begin(9600); 
}

void loop() {
  // 모터A 정회전 테스트
  Serial.println("모터A 정회전");
  digitalWrite(IN1, HIGH); 
  digitalWrite(IN2, LOW); 
  delay(3000); // 3초간 회전
  digitalWrite(IN1, LOW);
  delay(1000); // 1초간 대기

  // 모터B 정회전 테스트
  Serial.println("모터B 정회전");
  digitalWrite(IN3, HIGH); 
  digitalWrite(IN4, LOW); 
  delay(3000); // 3초간 회전
  digitalWrite(IN3, LOW);
  delay(1000); // 1초간 대기

  // 모터A 역회전 테스트
  Serial.println("모터A 역회전");
  digitalWrite(IN1, LOW); 
  digitalWrite(IN2, HIGH); 
  delay(3000); // 3초간 회전
  digitalWrite(IN2, LOW);
  delay(1000); // 1초간 대기

  // 모터B 역회전 테스트
  Serial.println("모터B 역회전");
  digitalWrite(IN3, LOW); 
  digitalWrite(IN4, HIGH); 
  delay(3000); // 3초간 회전
  digitalWrite(IN4, LOW);
  delay(1000); // 1초간 대기

  // 모터 정지 테스트
  Serial.println("모터 정지");
  digitalWrite(IN1, LOW); 
  digitalWrite(IN2, LOW); 
  digitalWrite(IN3, LOW); 
  digitalWrite(IN4, LOW); 
  delay(3000); // 3초간 대기
}

 

모터드라이버와 아두이노 연결 시 같은 GND를 공유해야 전위차가 발생하지 않아서 제대로 작동한다.
L298N의 ENA와 ENB에 쇼트핀이 부착되어야 정상적으로 작동한다.

'아두이노 > 아두이노 과제' 카테고리의 다른 글

릴레이 제어  (0) 2024.07.18
서보모터 제어  (0) 2024.07.18
가변저항을 통한 LED 점등 속도 제어  (0) 2024.07.18
버튼을 통한 LED 제어  (0) 2024.07.17
아두이노 보드 구성  (0) 2024.01.02