아두이노 - 모터 제어(DC:direct current)
# 고정자(영구자석)과 회전자(전기자)로 코일을 사용하여 구성
> 전기자에 흐르는 전류의 방향을 전환함으로써 자력의 반발, 흡인력으로 회전
# 특징
> 기동 토크가 크다
> 인가전압에 대하여 회전특성이 직선적으로 비례
> 입력전류에 대하여 출력 토크가 직선적으로 비례 (출력 효율이 좋다)
> 가격이 저렴하다
# 제어 방식
> 아날로그 방식 : 아날로그 신호 출력 제어 ( voltage 값으로 표현 )
> 디지털 방식 : 디지털 신호 출력 제어 ( 0, 1로 표현 )
### 모터 드라이버가 없는 경우
# 연결 방법
> 총 2개 핀이 있으며 2개는 전원부 ( VCC, GND )
> VCC-SIGNAL-DIGIAL PWM쪽에 D3번, GND
# 소스 코드
#define DATAPIN D3
void setup()
{
pinMode(DATAPIN, OUTPUT);
Serial.begin(9600);
}
void loop()
{
Serial.println(200);
analogWrite(DATAPIN, 200);
delay(100);
}
### 모터 드라이버가 있는 경우
# 특징
> 전압 : 5V ~ 12V
> 전류 : 2A
> 크기 : 43mm * 43mm
> 모터 2개까지 제어 가능
# 연결 방법
> 총 4개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개 D2(디지털), 1개 D3(디지털)
> VCC-5V, GND 그리고 SIGNAL-DIGIAL PWM 쪽에 D2, D3
# 모터 드라이버 ( L298N )
# 소스 코드
#define DATAPIN_OUT1 D2
#define DATAPIN_OUT2 D3
#define DATAPIN_SPEED D10
void setup()
{
pinMode(DATAPIN_OUT1, OUTPUT);
pinMode(DATAPIN_OUT2, OUTPUT);
pinMode(DATAPIN_SPEED, OUTPUT);
Serial.begin(9600);
}
void loop()
{
analogWrite(DATAPIN_SPEED, 255); // 최대 속도
digitalWrite(DATAPIN_OUT1, HIGH);
digitalWrite(DATAPIN_OUT2, LOW);
delay(1000);
// 방향을 변경하고자 하면
//digitalWrite(DATAPIN_OUT1, LOW);
//digitalWrite(DATAPIN_OUT2, HIGH);
//delay(1000);
}