안녕하세요 



오늘은 서보모터, dc 모터 제어를 위해서 avr(atmega128, 
atmega32 등)에서 자주 쓰이는 PWM에 대해서 
알아보겠습니다.



PWM 은 Pulse Width Modulation 의 약자입니다.
즉 펄스폭 변조를 하는 것이죠.


그럼 펄스폭이 어떤 것일까요?
그림을 보시면





펄스폭이 한 펄스가 가지는 폭이란 걸 알 수 있는데요.
PWM이 저것을 변조 시켜서 얇게, 굵게 만들어서 dc 모터 속도나 서보모터의 각도, 조명 밝기 등을 조절할 수 있게 합니다.


잠깐 PWM의 원리에 대해 알아보고 갑시다.



 간단한 예로 큰 양동이에 물을 채우려고 합니다. 수도꼭지를 완전히 돌려서 채웠더니 10초가 걸렸습니다.
이제 10초 동안 1초 열고 1초 닫는 주기로 한다면 50% 정도 밖에 안 채워지겠지요. 
이것을 더욱 빠르게 해주면 물의 흐르는 양이 수도 꼭지를 절반만 연 것처럼 나오는 걸로 보입니다.


이 방법으로 ic 칩(atmega)에서 마이크로(uS) 만큼 이로 주기로 바꿔준다면 평균 전압은 절반이 될 것입니다. 
이렇게 소스로 전압을 조정해주면 회로도 더욱 간단해 부품 비용이나 제작시간을 줄일 수 있습니다.


 


그럼 이렇게 PWM을 사용하면 장점이 무엇일까요?


1. 열 발생이 작아 효율이 높습니다.


2. 전압 제어 방식이라 전류량은 일정합니다.


3. 프로그램제어 방식으로 회로도가 간단해진다.


여기서 참고 하실 점이 있습니다.


전류가 일정하니 모터 토크(torque)는 변하지 않고 속도만 감소한다고 보실 수 있습니다.
하지만 pwm 제어는 켰다 껐다를 반복하는 방법입니다.


극단적으로 한번 보면 1N*m 의 토크를 갖는 모터를 1초 주기의 50% duty로 모터를 제어할 시 0.5초 동안만 1N*m 의 토크가 발생하고 나머지 0.5초 동안 0 의 토크가 발생하는 형태가 된다는 것입니다.


이것과 1초 내내 1N*m 토크가 발생하는 것과는 다르게 해석해야겠지요?
이것을 40uS만큼 줄여서 사용한다면 토크 변화는 전류 제어만큼 큰 폭이 아니라 미미하겠지만 토크가 줄어들게 될 것입니다.




이제 이 펄스가 어떤 식으로 만들어지는지 사진을 한번 보도록 할게요.






사진을 보시면 atmega128의 타이머/카운터 3 Fast PWM(mode 14)를 사용해서 TCNT3을 TOP(ICR3) 수치만큼 캡처해줍니다. 그리고 나서 OCR3C 값으로 잘라줍니다. 그렇게 하면 가장 아래처럼 파형이 올라가다 다시 내려가고를 반복하면서 출력전압이 변경되게 됩니다. 
이렇게 하면 5v를 비율을 잘 맞춰주면 3v, 2v 의 평균 출력전압을 구할 수 있게 됩니다.






간단히 PWM에 대해 이론(?)을 알아봤는데요. 이해가 잘 되셨나요??
이제 이론은 알았으니 실습을 해봐야겠죠?
다음 글에서는 이 PWM을 가지고 모터 제어 실습을 해보도록 하겠습니다.






- 많은 인생의 실패자들은 포기할 때 자신이 성공에서 얼마나 가까이 있었는지 모른다 (토마스 A. 에디슨)- 

'avr 기초' 카테고리의 다른 글

pwm 서보모터 제어법  (2) 2016.05.12
귀찮은 avr F_CPU설정 한번에 해버리자!  (0) 2016.03.21
atmega32/ 128 fnd(7-segment)제어  (0) 2016.03.12
atmega led switch  (0) 2016.03.07
atmega로 led켜기  (0) 2016.03.04
Posted by 탕구이

블로그 이미지
엔지니어를 꿈꾸는 공대생
탕구이

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.4
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

최근에 올라온 글

글 보관함