새소식

라즈베리파이

라즈베리파이4b led 밝기 조절하기 (PWM 출력 제어)

  • -

PWM 이란??

PWM은 Pulse Width Modulation 즉 펄스폭변조의 약자입니다

이를 이용해 디지털 신호를 아날로그 같이 사용할 수 있다고 합니다

디지털 출력은 원래 0 아니면 5V 이런식으로 되고 1.4, 3.1 이런 값이 없는데

이러한 실수의 변화를 사용할 수 있습니다

 

펄스 폭: 전원이 on 되는 시간

펄스 폭을 조정함으로써 on과 off 사이의 전압을 흉내낼 수 있습니다

 

위치나 진폭을 조정하는 방법도 있습니다(PAM / PPM)

라즈베리파이 4b의 데이터 시트를 보면 gpio 12, 13, 18, 19번이 PWM을 사용할 수 있는 GPIO 핀인것 같습니다

https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711/rpi_DATA_2711_1p0_preliminary.pdf

위의 데이터 시트를 참고하였습니다.

gpio 18,19 번은 ALT5 목록에 써있어서 되나 해봤는데 18번 핀은 됩니다 19번도 될것 같습니다

gpio readall 명령어를 통해 보면 다음과 같이 ALT5라 잡히네요

 

 

pwm으로 led 밝기 제어하기

 

우선 코드는 다음과 같습니다

LED는 wpi 1번에 연결하였습니다.

pwm을 사용하기 위해서는 mode를 PWM_OUTPUT으로 설정합니다

그리고 while문을 돌면서

그리고 pwmWrite를 통해 pwm 값을 줘서 밝기를 조절합니다

 

LED 회로구성

+쪽은 wpi 1번 핀에, -는 저항(220옴)을 연결하고 GND에 연결합니다

 

그리고 컴파일 합니다.

컴파일하고 sudo 명령으로 실행하지 않으면 에러가 나므로 sudo로 실행합니다

$ gcc -o pwmex pwmex.c -lwiringPi
$ sudo ./pwmex

 

 

 

위와 같이 잘 동작하는 것을 볼 수 있습니다

 

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.