http://deneb21.tistory.com/281
이전 글 http://deneb21.tistory.com/277 에서 L298N에 DC모터 2개와 아두이노를 연결하여 각각의 모터를 정회전, 역회전 컨트롤 하는 방법을 알아보았다. 이번 글에서는 연결된 모터의 속도를 제어하는 방법을 알아보겠다. 만약 글의 내용이 잘 이해가 가지 않는다면 1편을 참고하면 된다. 모터의 속도 제어는 L298N의 ENA(모터A 제어), ENB(모터B 제어) 단자에 PWM 신호를 주어 이루어진다. 여기에서는 DC모터를 1개 사용하여 ENA 단자를 통하여 속도를 제어해 보겠다. 모터 2개를 제어할 경우에도 마찬가지 방법으로 ENB 단자를 추가로 이용하면 된다.

위의 그림에서 ENA 부분에 꼽혀 있는 점퍼를 뽑고 여기에 아두이노의 PWM 핀을 연결하면 된다. 당연히 모터 B의 제어를 위해서는 ENB의 점퍼를 뽑고 연결하면 된다.
아두이노 및 외부전원과 모터의 연결은 다음과 같다.

■ fritzing 파일
L298N_DC_Motor_with_Speed_Control.fzz
모터의 속도 제어를 위한 PWM 신호는 0~255 까지이다. 0은 정지상태이고 숫자가 높아질 수록 모터의 회전수가 빨라지게 된다. 위의 그림에서 아두이노에 연결된 핀인 6번핀에 analogWrite 를 이용하여 PWM 신호를 L298N에 보내어 모터의 회전수를 조절하게 된다.
소스
loop 안을 보면 50% 출력으로 모터를 회전, 역회전하고 최대속도로 회전, 역회전 하는 것을 볼 수 있다. 또한 맨 마지막을 보면 모터는 정회전을 하도록 했지만 analogWrite 값을 0을 주어 모터는 정지상태가 된다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
void setup() {
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
}
void loop()
{
//최대속도의 50%로 정회전
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
analogWrite(6, 127);
delay(3000);
//최대속도의 50% 역회전
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
analogWrite(6, 127);
delay(3000);
//최대속도로 정회전
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
analogWrite(6, 255);
delay(3000);
//최대속도로 역회전
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
analogWrite(6, 255);
delay(3000);
//정지 (7번핀에 HIGH를 주어도 PWM 핀에 값을 0을 주었기 때문에 정지함)
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
analogWrite(6, 0);
delay(3000);
}
|
cs |
이상으로 L298N을 이용하여 모터의 속도를 제어하는 방법을 알아보았다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 71 | 포트 상태 확인 및 포트 열기 | proin | 2018.06.05 | 0 |
| 70 | [WEB] 회원가입 부분 기본 틀 | proin | 2018.06.04 | 1 |
| 69 | MySQL 패스워드 변경 | proin | 2018.06.01 | 0 |
| 68 | DB계정 관련 | proin | 2018.06.01 | 2 |
| 67 | html 문서에서 php 코드가 실행이 안될 때 | proin | 2018.05.29 | 3 |
| 66 | onclick 링크 (새창/팝업/현재창/프레임) | proin | 2018.05.29 | 0 |
| 65 | [WEB] DIV 태그를 이용하여 레이아웃 만들기 | proin | 2018.05.28 | 0 |
| 64 | MySQL 숫자 | proin | 2018.05.28 | 0 |
| 63 | crontab 명령어 | proin | 2018.05.27 | 1 |
| 62 | MySQL Database Dump 명령 | proin | 2018.05.27 | 0 |
| 61 | [WEB] css 버튼 디자인 모음 | proin | 2018.05.23 | 0 |
| 60 | [WEB] 제타위키 세션 PHP 로그인 | proin | 2018.05.23 | 0 |
| 59 | [WEB] 세션 PHP 로그인 | proin | 2018.05.23 | 2 |
| 58 | PHP를 이용한 Header 페이지 이동(리다이렉트Redirect) | proin | 2018.05.21 | 0 |
| 57 | [아두이노] 블루투스로 컨트롤하는 무선조종 자동차 | proin | 2018.05.21 | 1 |
| 56 | [아두이노] Arduino MEGA 핀배열 | proin | 2018.05.21 | 3 |
| 55 | [아두이노] DC 모터 조이스틱 속도 제어 | proin | 2018.05.16 | 1 |
| » | [아두이노] DC 모터의 속도제어(모터드라이버 L298N) 2편 | proin | 2018.05.14 | 4 |
| 53 | How to Use the Arduino Joystick Shield v2.4 | proin | 2018.05.14 | 0 |
| 52 | Joystick Shield Module V1.A | proin | 2018.05.14 | 0 |