반응형
아래 테스트는 Raspbian GNU/Linux 10 (buster)에서 테스트되었습니다. |
라즈베리파이에서 PWM을 사용하기 위해서 기존에 사용되어진 파이쎤 모듈인 RPi.GPIO를 사용하여 테스트 해 볼 예정입니다.
PWM은 Pulse Width Modulation의 약자로 주파수를 고정시킨채 펄스의 폭을 조절하여 평균전압을 조절하는 방식입니다.
예를들면 아래 그림과 같이 1Hz의 주파수를 갖는 시그널에서 폭을 4/4(High), 3/4, 2/4, 1/4, 0/4(Low)로 조절하여 동작시키는 방식입니다.
라즈베리파이에서 사용가능한 PWM핀은 아래와 같습니다.
아래와 같이 GPIO18(PWM0)에 LED를 연결하여 PWM 동작을 시켜 봅니다.
아래 소스코드를 사용하여 PWM 테스트를 해 보았습니다.
import RPi.GPIO as GPIO
from time import sleep
ledpin = 12
GPIO.setmode(GPIO.BOARD) # 보드의 핀번호를 사용합니다.
GPIO.setup(ledpin,GPIO.OUT)
pi_pwm = GPIO.PWM(ledpin,1000) # 1kHZ의 PWM 생성
pi_pwm.start(0)
while True:
for duty in range(0,101,1):
pi_pwm.ChangeDutyCycle(duty) # 0~100까지 duty값을 변경
sleep(0.01)
sleep(0.5)
for duty in range(100,-1,-1):
pi_pwm.ChangeDutyCycle(duty)
sleep(0.01)
sleep(0.5)
정상적으로 PWM 시그널이 생성되어 LED가 밝아졌다 어두워졌다를 반복합니다.
반응형
'Hardware > Raspberry PI' 카테고리의 다른 글
[정보] Raspberry Pi Pico 출시 (0) | 2021.01.21 |
---|---|
[라즈베리파이 3B+] 넥서스7을 라즈베리파이 모니터로 사용하기 (0) | 2020.12.30 |
[라즈베리파이 3B+] UART 사용하기 (0) | 2020.12.27 |
[라즈베리파이 3B+] SPI 사용하기(SSD1306 OLED 사용) (0) | 2020.12.27 |
[라즈베리파이 3B+] I2C 사용하기(SSD1306 OLED 사용) (2) | 2020.12.27 |
댓글