PWMPWM(Pulse Width Modulation => 펄스 폭 변조)는 디지털 출력으로 아날로그 회로를 제어하는 기술이다. 일정한 주기 내에서 Duty 비를 변화시켜서 평균 전압을 제어하는 기술이다. 이때 모터나 센서가 on되는 시간을 duty라고 한다. 엘레베이터로 예시를 들어보자. 직류에서는 0, 1 밖에 존재하지 않는데 어떻게 5V에서 2.5V의 힘을 줄 수 있을까?(어떻게 duty를 조절할 수 있을까?) 0을 보내는 신호일때 0V, 1을 보내는 신호일때는 5V의 전압을 준다고 가정해보자. 만약 어떤 기기가 1초에 5V의 힘을 낸다고 가정하면, 1초 동안 2.5V의 힘을 얻고싶을때는 1초 동안 5V의 힘을 내는 받는 기기를 0.5초 동안의 힘만 내면 된다. 따라서 대략적인 그래프로 표현했을때 0.5초 동안 받는 5V와 1초 동안 받는 2.5V의 면적(duty)이 같다고 볼 수 있다. 두 그래프의 면적이 같다고 볼 수 있다이제 PWM의 원리를 적용하여 LED의 밝기를 조절해보자. 하얀색 LED의 + 극에 21번핀, - 에 GND를 연결해서 해당 코드를 실행해보자. 1. PWM의 원리를 이용하여 LED의 밝기를 변화시키는 회로와 코드 작성 하얀색 LED가 밝아졌다가 어두워지는 것을 확인할 수 있다이러한 원리로 무드등 제어의 원리를 알 수 있다. 2. 밝기를 직접 입력하여 LED 밝기를 조절하는 코드 작성 입력한 숫자에따라 LED의 밝기가 달라진다.초음파 센서 제어초음파 센서는 주파수를 보냈을때의 시간과 주파수를 보낸후 반사되어 돌아오는 시간의 차이를 측정해서 대략적인 거리를 알 수 있게하는 센서이다. 출처 : http://www.3demp.com/community/boardDetails.php?cbID=124Trig핀에 10u/s의 트리거 신호를 주면 초음파를 발생시켜서 물체에 쏘고, Echo 핀에서 초음파가 돌아오는 시점의 시간을 측정하여 거리를 재는 원리이다. 라즈베리파이를 통해 초음파 센서를 제어해보자. 출처 : https://steemkr.com/arduino/@jhis21c/45kpa4맨 왼쪽 VCC 자리에는 5V, 맨 오른쪽 GND 자리에는 그라운드, 왼쪽에서 두번째 Trig 자리에는 14번핀, 오른쪽에서 두번째 Echo 자리에는 4번 핀에 연결하고 밑의 코드를 실행해보자. 3. 초음파 센서 제어 초음파센서에 손이나 물건을 갖다대서 거리 수치 변화를 관찰해보자4. 초음파센서와 부저센서를 이용한 후방감지센서 만들기 초음파센서를통해 물체와의 거리를 잴 수 있게 됬으니, 자동차의 후방센서를 구현해보자. 초음파센서에 물체와의 거리가 점점 좁혀지면 부저센서에서 더 빠르게 소리를 출력하는 원리를 구현해보자. 회로구성
영상을 확인해보면 거리에따라 부저센서가 울리는 빈도수 변화를 관찰할 수 있다. |