Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- ApplicationEvent
- assertThat
- async/await
- AVG
- AWS
- Azure
- bind
- builder
- button
- c++
- c++ builder
- c03
Archives
- Today
- Total
기록
PWM_LED 밝기 제어 본문
PWM(Pulse Width Modulation)
주기적으로 반복되는 ON 또는 OFF 신호를 통해서 모터, 팬의 속도나 LED 밝기 등을 제어한다. 신호의 주기에서 ON신호가 지속되는 시간의 비율을 듀티 사이클이라고 하며, 이 값이 클수혹 팬속도가 빨라지고, LED 가 밝아진다.
브레드보드 연결
라즈베리 파이 | 스위치 |
GPIO 18 | + |
GND | - |
코드
#-*-coding:utf-8-*-
# 필요한 라이브러리를 불러옵니다.
import RPi.GPIO as GPIO
import time
# 불필요한 warning 제거, GPIO핀의 번호 모드 설정
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
# GPIO 18번 핀을 출력으로 설정
GPIO.setup(18, GPIO.OUT)
# PWM 인스턴스 p를 만들고 GPIO 18번을 PWM 핀으로 설정, 주파수 = 50Hz
p = GPIO.PWM(18, 50)
p.start(0) # PWM 시작 , 듀티비 = 0
try:
while 1:
for dc in range(0, 101, 5): # dc의 값은 0에서 100까지 5만큼 증가
p.ChangeDutyCycle(dc) # dc의 값으로 듀티비 변경
time.sleep(0.1) # 0.1초 딜레이
for dc in range(100, -1, -5): # dc의 값은 100에서 0까지 5만큼 감소
p.ChangeDutyCycle(dc) # dc의 값으로 듀티비 변경
time.sleep(0.1) # 0.1초 딜레이
except KeyboardInterrupt: # 키보드 Ctrl+C 눌렀을 때 예외발생
pass # 무한반복을 빠져나와 아래의 코드를 실행
p.stop() # PWM을 종료
GPIO.cleanup() # GPIO 설정을 초기화
실습결과
'라즈베리파이' 카테고리의 다른 글
Servo모터 제어하기 (0) | 2020.10.23 |
---|---|
버튼으로 LED 제어하기 (0) | 2020.10.18 |
Button으로 입력받기 (0) | 2020.10.17 |
LED 제어하기 (0) | 2020.10.16 |
Raspeberry Pi 초기설정 (0) | 2020.10.15 |
Comments