Arduino

DC 모터 -모터 드라이버 2A L298N을 이용한 제어하기

작성자 임베디드코리아 작성일25-05-15 23:59 조회163회 댓글0건

첨부파일

<* 모터 드라이버 2L298N을 이용하여 DC 모터 2개 제어 *>
■  모터 드라이버 2A L298N
    - DC 모터 2개 또는 스테핑 모터를 연결하여 제어가 가능하며, 입력 전압은 12V 또는 5V로 사용 할 수 있다.
    - 아두이노와 연결하여 모터가 정회전이나 역회전을 할 수 있고, PWM 제어를 통해 속도 조절을 할 수 있다.
   
---- < 모터 드라이버 2A L298N을 이용한 제어 소스 코드 > ----------------------------------------------------
int IN1Pin = 8;
int IN2Pin = 7;
int IN3Pin = 2;
int IN4Pin = 4;
int ENAPin = 6;
int ENBPin = 3;
void setup() {
  Serial.begin(9600);
  pinMode(IN1Pin, OUTPUT);
  pinMode(IN2Pin, OUTPUT);
  pinMode(IN3Pin, OUTPUT);
  pinMode(IN4Pin, OUTPUT);
  analogWrite(ENAPin, 255);
  analogWrite(ENBPin, 255);
}
void loop()
{
  if(Serial.available())  //시리얼모니터에서 데이터가 들어오면
  {
    char in_data;        // 입력된 데이터 저장을 위한 변수
    in_data = Serial.read();  //입력된 데이터 in_data에 저장
    Serial.print("data : ");
    Serial.println(in_data);
    if(in_data == 's')
    {
    digitalWrite(IN1Pin, HIGH);
    digitalWrite(IN2Pin, LOW);
    digitalWrite(IN3Pin, HIGH);
    digitalWrite(IN4Pin, LOW);
    delay(1000);
    }
    else if(in_data == 'w')
    {
    digitalWrite(IN1Pin, LOW);
    digitalWrite(IN2Pin, HIGH);
    digitalWrite(IN3Pin, LOW);
    digitalWrite(IN4Pin, HIGH);
    delay(1000);
    }
    else if(in_data == 'd')
    {
    digitalWrite(IN1Pin, HIGH);
    digitalWrite(IN2Pin, LOW);
    digitalWrite(IN3Pin, LOW);
    digitalWrite(IN4Pin, HIGH);
    }
    else if(in_data == 'a')
    {
    digitalWrite(IN1Pin, LOW);
    digitalWrite(IN2Pin, HIGH);
    digitalWrite(IN3Pin, HIGH);
    digitalWrite(IN4Pin, LOW);
    }
    else if(in_data == 'x')
    {
    digitalWrite(IN1Pin, HIGH);
    digitalWrite(IN2Pin, HIGH);
    digitalWrite(IN3Pin, HIGH);
    digitalWrite(IN4Pin, HIGH);
    }
  }
}