Núm điều chỉnh độ sáng
Thuộc phần Đầu ra trong hành trình Arduino của Coddy. Bài học 5 trên 24.
Núm xoay cung cấp cho analogRead() một số từ 0 đến 1023, còn analogWrite() cần giá trị từ 0 đến 255. Hai phạm vi này không khớp nhau, nên hãy chuyển đổi phạm vi này sang phạm vi kia bằng map():
int reading = analogRead(A0);
int brightness = map(reading, 0, 1023, 0, 255);
analogWrite(9, brightness);Khi vặn núm xuống hết, giá trị là 0 và LED tắt; khi vặn núm lên hết, giá trị là 1023, được chuyển thành 255 và LED sáng hết mức. Mỗi vị trí ở giữa sẽ cho độ sáng ở mức tương ứng.
Ghi trực tiếp giá trị đọc được vào LED sẽ không hoạt động: analogWrite() chỉ nhận giá trị từ 0 đến 255, nên giá trị đọc được như 600 sẽ cho độ sáng không đúng.
Thử thách
DễNúm xoay nối với A0 và LED nối với chân 9. Hãy dùng núm xoay để điều chỉnh độ sáng:
- đọc giá trị của núm xoay
- chuyển giá trị đọc được thành khoảng từ 0 đến 255 bằng
map() - ghi giá trị đó vào LED, rồi đợi 10 ms
Nhấn Chạy và xoay núm, rồi nhấn Kiểm tra.
Tự làm thử
const int knobPin = A0;
const int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
// Đọc giá trị của núm xoay, ánh xạ sang khoảng từ 0 đến 255 rồi gửi giá trị đó đến đèn LED
}
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Đầu ra
1Độ sáng
Làm mờ đèn LED bằng PWMChân PWM có ký hiệu ~Làm đèn LED sáng dầnSáng dần rồi tối dầnNúm điều chỉnh độ sángTự luyện tập: Playground Arduino