노브 조광기
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 같은 값은 잘못된 밝기로 출력됩니다.
챌린지
쉬움노브는 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에 출력합니다
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
출력의 모든 레슨
직접 연습해 보세요: Arduino 플레이그라운드