Menu
CoddyTech

노브 조광기

Coddy Arduino 여정의 출력 섹션에 포함된 레슨. 24개 중 5번째.

노브는 analogRead()에 0부터 1023까지의 숫자를 전달하고, analogWrite()는 0부터 255까지의 숫자를 필요로 합니다. 두 범위가 일치하지 않으므로 map()으로 한 범위를 다른 범위로 변환하세요:

int reading = analogRead(A0);
int brightness = map(reading, 0, 1023, 0, 255);
analogWrite(9, brightness);

노브를 내리면 0이 되어 LED가 꺼지고, 노브를 올리면 1023이 되어 255로 변환되므로 LED가 완전히 켜집니다. 그 사이의 각 위치에서는 그에 해당하는 밝기가 나옵니다.

읽은 값을 LED에 바로 쓰면 작동하지 않습니다. analogWrite()는 0부터 255까지만 받으므로, 600 같은 값은 잘못된 밝기로 출력됩니다.

challenge icon

챌린지

쉬움

노브는 A0에 연결되어 있고 LED는 핀 9에 연결되어 있습니다. 노브로 밝기를 조절하세요:

  • 노브의 값을 읽습니다
  • map()을 사용해 읽은 값을 0부터 255까지의 범위로 변환합니다
  • LED에 값을 출력한 다음 10 ms 동안 기다립니다

Run을 누르고 노브를 돌린 다음 Check를 누르세요.

직접 해보기

const int knobPin = A0;
const int ledPin = 9;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // 노브 값을 읽고 0..255 범위로 변환한 다음 LED에 출력합니다
}
quiz icon실력 점검

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

출력의 모든 레슨

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