⭐⭐ 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.

Najpierw szybko się zaloguj. Potem twój projekt będzie od razu gotowy.

🧰 Czego potrzebujesz?

1× Arduino UNO
1× Czujnik światła (LDR)
1× Pierścień LED RGB (8 diod LED)
🔌
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

  1. Podłącz czujnik światła: S do A0, + do 5V i − do GND.
  2. Podłącz pierścień LED: DI do pin 6, 5V do 5V i GND do GND.
  3. 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.

Najpierw szybko się zaloguj. Potem twój projekt będzie od razu gotowy.
⬇️ Pobierz tę stronę jako PDF 📚 Pobierz cały tutorial (PDF)

Codey Online to produkt od OTRONIC

Zbuduj swój projekt Arduino lub ESP32 z pomocą AI

Opisz, co chcesz zbudować. Codey Online napisze kod, narysuje schemat połączeń, skompiluje projekt i wgra go na płytkę bezpośrednio z przeglądarki.

Zacznij za darmo