Wskaźnik poziomu światła
Część sekcji Wyświetlacze i czujniki ścieżki Arduino w Coddy. Lekcja 22 z 24.
Pierścień może przedstawiać liczbę jako pasek: im większa liczba, tym więcej świecących pikseli. Tutaj liczba oznacza poziom natężenia światła.
Podobnie jak w lekcji o lampce nocnej, odczyt z czujnika światła na A0 maleje, gdy natężenie światła rośnie. Najpierw odwróć jego wartość, aby większa liczba oznaczała więcej światła:
int light = 1023 - analogRead(A0);
int count = map(light, 0, 1023, 0, 16);Następnie wyczyść pierścień i zaświeć piksele od 0 do count minus 1:
ring.clear();
for (int i = 0; i < count; i++) {
ring.setPixelColor(i, yellow);
}
ring.show();clear() pozwala zmniejszać pasek: bez tego piksele zaświecone, gdy było jasno, pozostają zaświecone, gdy robi się ciemno.
Wyzwanie
ŚredniCzujnik światła jest podłączony do A0, a pierścień do pinu 6. Zrób pasek świetlny:
- odwróć odczyt, aby większa ilość światła dawała większą liczbę
- przeskaluj go do zakresu od 0 do 16 pikseli
- wyczyść pierścień, zaświeć tyle pikseli, zaczynając od piksela 0, i wyświetl wynik
Naciśnij Run, zmień oświetlenie płytki, a następnie naciśnij Check.
Spróbuj swoich sił
#include <Adafruit_NeoPixel.h>
// 16 pikseli, dane na pinie 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
uint32_t yellow = ring.Color(255, 160, 0);
void setup() {
ring.begin();
}
void loop() {
int reading = analogRead(A0); // maleje, gdy natężenie światła rośnie
// im jaśniej, tym więcej pikseli należy zapalić
delay(50);
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Wyświetlacze i czujniki
1Wyświetlacze siedmiosegmentowe
Wyświetlacz siedmiosegmentowyWzory cyfr w bajtachLiczenie na wyświetlaczuOdliczanie do zeraSymulator rzutu kostkąPoćwicz samodzielnie: Edytor online Arduino