본문 바로가기
라즈베리파이_피코_피코 W/마이크로파이썬

06. 라즈베리파이 피코 PWM제어

by 땜블리 2023. 2. 28.
728x90
반응형
SMALL

안녕하세요 땜블리 입니다.
라즈베리파이 피코 베이직 트레이닝 보드를 이용한 PWM 제어실습을 진행 하겠습니다.
베이직 트레이닝 보드는 아래에서 확인이 가능합니다.
https://ttcw.tistory.com/4

 

라즈베리파이 피코 베이직 트레이닝보드 구성

라즈베리파이 피코 보드의 펌웨어실습을 위한 베이직 트레이닝보드를 소개 합니다. 현재 네이버 스마트스토어에서 판매가 진행되고 있습니다. 라즈베리파이 피코 베이직 트레이닝 보드 라즈베

ttcw.tistory.com

1) PWM 제어 구동 원리
(1) 동작설명
 
PWM은 가장 일반적인 전압 제어 방법입니다. 일정한 주기에서, 출력이 필요로 하는 만큼의 전력을 스위치 ON하여 입력으로부터 공급받습니다. 따라서, 필요한 출력전력에 따라 ON / OFF의 비율, 듀티 사이클 (duty cycle)이 달라집니다. 듀티비가 클수록 모터에 전류가 흐르는 전체 시간이 길어집니다.
 
펄스 폭 변조(Pulse Width Modulation) 신호

 


2) PWM기능을 이용하여 LED밝기 제어
(1) 동작설명
VR 아날로그 신호를 읽어 PWM 출력으로 변환하여 LED 밝기를 제어합니다.
pwm_out1.freq(500) PWM 주기 설정
pwm_out1.duty_u16(0) PWM 출력 0으로 설정
VRData = vr_adc.read_u16() VR 아날로그 신호 측정
pwm_out1.duty_u16(VRData) 측정된 신호를 PWM 출력으로 출력
 
(2) 코드작성
main.py

import pwm_led

pwm_led.py

from machine import UART, Pin, ADC, PWM
from time import sleep
led1 = PWM(Pin(2))
led2 = PWM(Pin(3))
vr_adc = ADC(Pin(26))
uart0 = UART(0, baudrate=115200, bits=8, parity=None, stop=1, tx=Pin(16), rx=Pin(17))# UART 설정
uart0.write("pico sensorBoard Test\n")
led1.freq(500)
led1.duty_u16(0)
led2.freq(500)
led2.duty_u16(0)
while True:
    VRData = vr_adc.read_u16()
    print('VRData = {}'.format(VRData))
       
    led1.duty_u16(VRData)
    led2.duty_u16(VRData)
    sleep(0.5)
반응형

 

728x90
반응형
LIST

댓글