Menu
CoddyTech

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.

challenge icon

Wyzwanie

Średni

Czujnik ś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);
}
quiz iconSprawdź się

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

Poćwicz samodzielnie: Edytor online Arduino