본문 바로가기

Embedded/Raspberry Pi3

[Raspberry Pi3] 라즈베리파이3 PWM을 이용한 LED 제어

PWM이란?

- Pulse Width Modulation(펄스 폭 변조)

- 디지털 출력으로 아날로그 회로를 제어하는 기법

  (GPIO핀은 디지털이기때문에 PWM을 이용하여 아날로그 신호를 제어한다)



duty : 한 주기(T)동안 HIGH가 차지하는 비율

ex) duty cycle = 50%이면 2.5V의 효과를 낼 수 있다.


PWM으로 LED 점멸

회로도


라즈베리파이3 GPIO Pin 구조는 http://cccding.tistory.com/89 확인


led.c

#include<stdio.h>

#include<wiringPi.h>

#include<softPwm.h>


#define LED 1


int main()

{

pinMode(LED , OUTPUT);        //핀 초기화

if(wiringPiSetup()==-1)

return 1;


softPwmCreate(LED,0,100);    //PWM 범위 설정

while(1)

{

softPwmWrite(LED,HIGH);    //핀 HIGH 설정

delay(150);

softPwmWrite(LED,LOW);

delay(150);

}


return 0;

}


컴파일 : gcc led.c -o led -lwiringPi

실행 : sudo ./led


결과