다른 예제 없냐? 뭐 하긴 귀찮고.. 해 보고는 싶고..
example 안에 있는 소스를 이것저것 봤다. 뭔 소리인지, 도대체 모르겠다. 근데, 뭔가는 해 보고 싶다. 근데 귀찮다. 어쩌라고? 그러면 간단한 거 부터 해보자. blink해 봤으니, fade라는 게 있다. 이거 LED가 필요할 거 같은데, 아직은 없다. 일단 소스 내용부터 보자. 땜쟁이는 이걸로 밥 벌어먹고 사는 사람 아닌가? 땜쟁이가 대충 어떻게 움직이는 지, 그리고, 오실로스코프라는 걸로 보면 어떻게 보이는 지, 눈으로 보여주마.
오실로스코프 이건 뭔가?
이런 장치다. 상세한 건 여러분들 장비가 없으니 설명해 줘도 잘 모른다. 만질 수 있는 기회가 있다면 좋으련만, 일반인에게는 좀 생소한 장비다. 이 장비는 실제 보드에서 나오는 파형등을 눈으로 볼 수 있도록 해논 장비이다. 하드웨어 개발자들에게는 절대로 없어서는 안될 중요한 장비이다. 땜쟁이는 회사에도 있고, 집에도 있다. 일단, 오실로스코프로 측정을 해 보기 전에, 오실로스코프는 측정하고자 하는 핀과 GND(그라운드)가 필요하기 때문에, GND 테스트 핀을 하나 장착하도록 하겠다.
호환품이 아닌 정품으로 테스트를 해 보겠다. 호환품으로 해도 아무 상관 없다.
아래부분 검은색 핀이 보일 것이다. 두개의핀을 쇼트시켰다. 같은 GND라 상관이 없어서 이렇게 처리했다. 오실로스코프 그라운드 악어클립이 잘 물릴 수 있도록 테스트 핀 장착완료.
오실로스코프를 PWM이 가능한 arduino 9번 핀에 연결하고, 나머지 그라운드를 아까 만들었던 테스트핀에 접속했다. 연결완료.
9번핀은 PWM(Pulse Width Modulation : 펄스 폭 변조) 이 가능한 핀이다. 이게 뭐냐고?
PWM은 펄스폭변조라고 해서 발생하는 신호 파형의 폭(넓이)을 가변할 수 있는 아주 훌륭한 것이다. 그럼 이거 어디에 쓰냐고? 그게 제일 중요하다. 어디다 쓰는 지 모르고 무작정 배우면 암기도 잘 안되고, 어렵다. 근데 어디다 쓰는 지 용도를 알면 너무 재미있다. 그래서 설명한다.
예를 들어서 크리스마스 트리가 있다고 가정하자.
크리스마스 트리 램프를 보면 여러가지 색상으로 깜박거린다. 꺼졌다가 켜졌다가. 보통은 그렇다. 그런데 가끔 천천히 밝아졌다가 천천히 어두워지는 램프도 있다. 요건 좀 더 비싸다. (똑 같다고 하면 할말없다…-.-;) 바로, 천천히 밝아지고, 천천히 어두워지도록 하려면 반드시 필요한 것이 PWM이다. (물론 다른 방법도 있다고 이야기하면 설멍이 너무 길어지니, 여기서는 PWM만 보자.)
전압이 5V일 동안은 램프가 켜질 것이다. 그리고, 0V이면 꺼지고.
그럼 5V를 유지할 동안의 시간을 조절하면 밝기 조절이 가능하지 않을까 하는 것이, 바로 PWM이다.
파형을 보통 오실로스코프로 보면 다음과 같다.
요런 형태로 파형이 나타난다.
D는 Duty cycle이라고 해서 어떤 주어진 기간중의 일정한 반복부하의 패턴을 이야기하는 것이다. 쉽게 설명하면, 아주 빠른 시간내에 On/Off를 반복하면서 운전시간의 비율을 조절하는 방법이라고 생각하면 된다.
그럼 실제로 정말로 이렇게 되는 지 한번 보자.
sublime text3에서 fade.ino라는 example을 로딩해 보았다. 물론, 바로 arduino로 업로드하면 된다.
바로 업로드해도 아무 반응이 없다. 이거 뭐지? 잘못된 건가? 아니다. 현재 LED를 연결하지 않아서 눈으로 보이지 않을 뿐이다. 내부적으로는 엄청나게 일을 하고 있다.
소스를 보면, 밝기를 내렸다가 다시 올렸다가를 반복하고 있다. LED가 없기 때문에, 어떻게 동작이 되는 지 오실로프코프로 한번 확인해 보자.
위의 화면을 클릭~!
보인다. 아까 PWM 움짤에서 봤던 파형이 그대로 보인다. 우와~! 신기하다. 땜쟁이가 지금 가지고 있는 오실로스코프가 좀 오래된거라 깨끗하지 않다.
자 그러면, PWM이 가능하지 않은 핀은 정말 On/Off만 하는 걸까? On/Off만 하면 파형이 어떻게 나오는 걸까? 궁금하다. 그래서 땜쟁이가 이 화면도 준비했다.
위의 화면을 클릭~!
세로로 찍혀버렸다… 수정하기 귀찮아서 그냥 했다. 자 봐라. 폭이 변하지 않고 일정하게 On/Off만 반복한다. 이렇게 되면 꺼졌다, 커졌다만 반복한다. 정말로 신기하지 않은가?
PWM은 밝기제어, 모터의 속도제어등 여러분야에서 쓰인다. 정말로 없어서는 안될 기능이다. 다음에는 실제로 LED를 장착해서 밝기가 정말로 변하는 지 보도록 하자. 또 피곤해 졌다. 그럼 이만~!