Menu
CoddyTech

노브로 음높이 조절하기

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)은 스케치가 초당 수천 번씩 음을 다시 시작하지 않도록 합니다.

challenge icon

챌린지

쉬움

노브는 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 범위로 변환한 다음 소리를 재생합니다
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

출력의 모든 레슨

직접 연습해 보세요: Arduino 플레이그라운드