AVR > [PWM 스피커 개념] 어떻게?

TODAY9,337 TOTAL4,429,867
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | AVR | 타이머 | [PWM 스피커 개념] 어떻게?

페이지 정보

작성자 master 작성일2018-03-03 17:48 조회5,069회 댓글0건

본문

스위치 8개 피아노-코드비젼-프로테우스 

이 예제에서는 

스위치를 누를 때마다 해당 스위치의 주파수를 일정시간동안 출력합니다.

PWM으로 스피커를 구동 할 때에는 어떻게 할까요?
위 예제처럼 같은 듀티를 일정시간 출력해서는 안됩니다.
주파수를 고정하고 듀티를 변경시켜야 합니다.

주파수를 얼마로 정할까요?
가청주파수를 10K로 잡아보죠.(주기 100us)
a925c20935d2612a3f351277818c7bc5_1520295461_8168.jpg

한개의 펄스 주기 100us를 몇개로 쪼개서 출력해야지 음의 세기를 다르게 출력할 수 있습니다.
많이 쪼갤 수록 좋겠죠?
주기가 100us이니 100개로 쪼개 볼까요?
1us 주기로 ADC를 읽거나 파일을 불러들여서 PWM출력을 해야 합니다.
출력 분해능을 8비트 한다고 해보죠 (0~255 분해능)
8비트 분해능으로 출력하려면 타이머 클럭은 1/256us(0.00390625us=3.90625ns)가 되어야하므로
AVR로는 불가능합니다.
타이머 클럭기준으로 ADC샘플링 주기와 분해능을 양보해야겠죠?
이래서 MCU 자체 기능만 사용해서는 고음질의 출력을 할 수가 없습니다.

댓글 0

조회수 5,069

등록된 댓글이 없습니다.

AVRHOME > AVR > 전체 목록

게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기