노브로 음높이 조절하기
Coddy Arduino 여정의 출력 섹션에 포함된 레슨. 24개 중 12번째.
노브는 버저를 악기처럼 연주하는 데 사용할 수 있습니다. 원리는 조광기와 같습니다. 노브를 읽고, 읽은 값을 변환한 다음, 사용합니다.
이번에는 목표 범위가 주파수입니다. 200 Hz는 낮은 웅웅거림이고 2000 Hz는 높은 휘파람 소리이므로 다음과 같습니다.
int reading = analogRead(A0);
int pitch = map(reading, 0, 1023, 200, 2000);
tone(8, pitch);map()에서 새 범위가 0에서 시작할 필요는 없습니다. 0은 200이 되고, 1023은 2000이 되며, 노브의 중간은 1100에 가까운 값이 됩니다.
새 주파수로 tone()을 다시 호출하면 음이 즉시 바뀌므로, 노브를 돌릴 때 음높이가 노브를 따라 바뀝니다. 짧은 delay(10)은 스케치가 초당 수천 번씩 음을 다시 시작하지 않도록 합니다.
챌린지
쉬움노브는 A0에, 부저는 8번 핀에 연결되어 있습니다. 노브로 피치를 설정하세요:
- 노브 값을 읽으세요
map()으로 읽은 값을 200~2000 Hz의 주파수로 변환하세요tone()으로 재생한 다음 10 ms 동안 기다리세요
Run을 누르고 노브를 돌린 다음 Check를 누르세요.
직접 해보기
const int knobPin = A0;
const int buzzerPin = 8;
void setup() {
}
void loop() {
// 노브 값을 읽고 200..2000 Hz 범위로 변환한 다음 소리를 재생합니다
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
출력의 모든 레슨
직접 연습해 보세요: Arduino 플레이그라운드