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
결과
'Embedded > Raspberry Pi3' 카테고리의 다른 글
[Raspberry Pi3] 라즈베리파이3 OS 라즈비안 설치 (0) | 2017.01.06 |
---|---|
[Raspberry Pi3] 라즈베리파이3 UART 시리얼 통신 (1) | 2017.01.04 |
[Raspberry Pi3] 라즈베리파이3 PWM을 이용한 서보모터 제어 (6) | 2017.01.04 |
[Raspberry Pi3] 라즈베리파이3 wiringPi 라이브러리설치 (0) | 2017.01.03 |
[Raspberry Pi3] 라즈베리파이3 GPIO Header (0) | 2017.01.03 |