[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);
  }
}

댓글

이 블로그의 인기 게시물

[Python] 파이썬 if문 사용법과 예제

[네트워크] 오류 제어 방식 이란?(FEC, BEC, ARQ)

[Virtual Box] 가상머신 에러 E_FAIL (0x80004005), (VERR_SUPLIB_PATH_NOT_CLEAN) 해결 방법