⭐⭐ Principiante avanzato ⏱️ 15 minuti

Lucina notturna

Costruisci una lucina notturna intelligente. Quando diventa buio, l'anello LED si accende piano. Quando torna la luce, si spegne di nuovo.

Prima fai un veloce accesso. Poi il tuo progetto è subito pronto.

🧰 Che cosa ti serve?

1× Arduino UNO
1× Sensore di luce (LDR)
1× Anello LED RGB (8 LED)
🔌
Cavo USB + Cavetti jumper

🗺️ Schema di collegamento

Segui i fili dall'Arduino a ogni componente. Puoi scegliere tu i colori dei fili.

Da A
Arduino UNO · A0 Sensore di luce (LDR) · S
Arduino UNO · 5V Sensore di luce (LDR) · +
Arduino UNO · GND Sensore di luce (LDR) · -
Arduino UNO · D6 Anello LED RGB (8 LED) · DI
Arduino UNO · 5V Anello LED RGB (8 LED) · 5V
Arduino UNO · GND Anello LED RGB (8 LED) · GND

🛠️ Così lo costruisci

  1. Collega il sensore di luce: S a A0, + a 5V e − a GND.
  2. Collega l'anello LED: DI al pin 6, 5V a 5V e GND a GND.
  3. Apri il monitor seriale e guarda che numero vedi con la luce e al buio. Poi adatta SOGLIA_BUIO.

💻 Il codice

// Lucina notturna
// Diventa buio? Allora l'anello LED si accende piano. Diventa chiaro? Allora si spegne.

#include <Adafruit_NeoPixel.h>

const int PIN_LUCE = A0;   // S del sensore di luce su A0
const int PIN_ANELLO = 6;     // DI dell'anello LED sul pin 6
const int NUMERO_LED = 8;

// A questo valore diciamo che e' "buio". Guarda nel monitor seriale quale numero vedi
// con la luce e al buio, e metti qui un numero a meta.
const int SOGLIA_BUIO = 500;

Adafruit_NeoPixel anello(NUMERO_LED, PIN_ANELLO, NEO_GRB + NEO_KHZ800);

void setup() {
  Serial.begin(9600);
  anello.begin();
  anello.setBrightness(60);
  anello.show();
}

void loop() {
  int luce = analogRead(PIN_LUCE);   // Un numero da 0 a 1023
  Serial.print(F("Sensore luce: "));
  Serial.println(luce);

  // Con questo sensore il numero sale quando diventa piu buio.
  // Da te funziona al contrario? Allora cambia > in <.
  bool buio = luce > SOGLIA_BUIO;

  for (int i = 0; i < NUMERO_LED; i++) {
    if (buio) {
      anello.setPixelColor(i, anello.Color(255, 140, 40));  // Luce gialla calda
    } else {
      anello.setPixelColor(i, 0);                         // Spento
    }
  }
  anello.show();
  delay(200);
}

🧠 Che cosa fa il codice?

  • Il sensore di luce è su A0. analogRead() dà un numero da 0 a 1023.
  • Il numero è più alto di SOGLIA_BUIO? Allora per noi è buio.
  • Al buio diamo a tutte le lucine un colore giallo caldo. Altrimenti si spengono.

🎯 Prova anche…

  • Fai diventare la lucina sempre più forte man mano che diventa più buio
  • Fai cambiare piano il colore, come una lampada rilassante
  • Fai spegnere la lucina da sola dopo 1 minuto

🚀 Costruisci questo progetto con Codey: apri codey.online/it/starter-kits/uno/projects/night-light e clicca su FAI QUESTO. Così il codice e lo schema di collegamento sono subito pronti.

Prima fai un veloce accesso. Poi il tuo progetto è subito pronto.
⬇️ Scarica questa pagina come PDF 📚 Scarica il tutorial completo (PDF)

Codey Online è un prodotto di OTRONIC

Crea il tuo progetto Arduino o ESP32 con l'AI

Descrivi cosa vuoi realizzare. Codey Online scrive il codice, disegna lo schema di collegamento, lo compila e programma la tua scheda direttamente dal browser.

Inizia gratis