⭐⭐ Początkujący plus
⏱️ 15 minut
Lampka nocna
Zrobisz sprytną lampkę nocną. Gdy robi się ciemno, pierścień LED świeci delikatnie. Gdy robi się jasno, znów gaśnie.
🧰 Czego potrzebujesz?
🔌
Kabel USB + Przewody połączeniowe🗺️ Schemat podłączenia
Poprowadź przewody od Arduino do każdej części. Kolory przewodów możesz wybrać samodzielnie.
| Od | Do |
|---|---|
Arduino UNO · A0 |
Czujnik światła (LDR) · S |
Arduino UNO · 5V |
Czujnik światła (LDR) · + |
Arduino UNO · GND |
Czujnik światła (LDR) · - |
Arduino UNO · D6 |
Pierścień LED RGB (8 diod LED) · DI |
Arduino UNO · 5V |
Pierścień LED RGB (8 diod LED) · 5V |
Arduino UNO · GND |
Pierścień LED RGB (8 diod LED) · GND |
🛠️ Tak to zbudujesz
- Podłącz czujnik światła: S do A0, + do 5V i − do GND.
- Podłącz pierścień LED: DI do pin 6, 5V do 5V i GND do GND.
- Otwórz monitor portu szeregowego i zobacz, jaką liczbę widzisz przy świetle i w ciemności. Dopasuj do tego
GRANICA_CIEMNOSCI.
💻 Kod
// Lampka nocna
// Robi się ciemno? Wtedy pierścień LED świeci delikatnie. Robi się jasno? Wtedy gaśnie.
#include <Adafruit_NeoPixel.h>
const int PIN_SWIATLA = A0; // S czujnika światła do A0
const int PIN_RINGU = 6; // DI pierścienia LED do pin 6
const int LICZBA_LED = 8;
// Przy tej wartości uznajemy, że jest „ciemno”. Zobacz w monitorze portu szeregowego, jaką liczbę widzisz
// przy świetle i w ciemności, i wpisz tutaj liczbę pomiędzy nimi.
const int GRANICA_CIEMNOSCI = 500;
Adafruit_NeoPixel pierscien(LICZBA_LED, PIN_RINGU, NEO_GRB + NEO_KHZ800);
void setup() {
Serial.begin(9600);
pierscien.begin();
pierscien.setBrightness(60);
pierscien.show();
}
void loop() {
int swiatlo = analogRead(PIN_SWIATLA); // Liczba od 0 do 1023
Serial.print(F("Czujnik swiatla: "));
Serial.println(swiatlo);
// Przy tym czujniku liczba rośnie, gdy robi się ciemniej.
// U ciebie działa odwrotnie? Zmień wtedy > na <.
bool ciemno = swiatlo > GRANICA_CIEMNOSCI;
for (int i = 0; i < LICZBA_LED; i++) {
if (ciemno) {
pierscien.setPixelColor(i, pierscien.Color(255, 140, 40)); // Ciepłe żółte światło
} else {
pierscien.setPixelColor(i, 0); // Wyłączone
}
}
pierscien.show();
delay(200);
}
🧠 Co robi kod?
- Czujnik światła jest podłączony do A0.
analogRead()daje liczbę od 0 do 1023. - Czy liczba jest większa niż
GRANICA_CIEMNOSCI? Wtedy uznajemy, że jest ciemno. - W ciemności wszystkie lampki świecą ciepłym żółtym kolorem. Inaczej gasną.
🎯 Spróbuj…
- Niech lampka świeci coraz mocniej, im ciemniej się robi
- Niech kolor powoli się zmienia, jak spokojna lampka nastrojowa
- Niech lampka po 1 minucie sama zgaśnie
🚀 Zbuduj ten projekt z Codey: otwórz codey.online/pl/starter-kits/uno/projects/night-light i kliknij ZRÓB TO. Wtedy kod i schemat podłączenia będą od razu gotowe.
Codey Online to produkt od OTRONIC