Arduino Orologio NeoPixel
From Aino Wiki
Introduzione
Risorse
Ispirazione e materiale da Paolo Aliverti, video:
- Orologio con tre anelli NeoPixel e Arduino
- Orologio con singolo anello e Arduino
- NTP, integrazione NTP connessione WiFi, link interno [qui]
Implementazione
Da video di Paolo Aliverti, servono:
Materiale:
- 3 anelli Neopixel.
- 3 condensatori (capacitor) elettrolitico da 1000 μF (microfarad) da 5/10V. Da collegare sull'alimentazione dell'anello.
- 3 resistenze da 470 Ω (non so se necessario o in funzione della tensione dei pin, nell'es. si usa un Arduino Nano da 5V, magari su un Arduino Nano 33 IoT non è necessario visto che i pin sono a 3.3V) da collegare tra i pin Ardiono e la connessione dati all'anello.
Considerazioni:
La resistenza da 470 Ohm è caldamente consigliata anche con l'Arduino Nano 33 IoT, ma per un motivo diverso dal semplice livellamento della tensione.
Ecco perché usarla:
- Protezione dai picchi: la funzione principale della resistenza è proteggere il primo LED della catena da eventuali picchi di corrente (spikes) sulla linea dati che potrebbero bruciarlo all'accensione.
- Integrità del segnale: aiuta a ridurre i riflessi di segnale e le interferenze ("ringing") lungo il cavo, garantendo che i colori dei Neopixel rimangano stabili e senza sfarfallii.
- Tensione logica: anche se il Nano 33 IoT lavora a 3.3V e i Neopixel preferirebbero 5V per i dati, solitamente riescono a leggere il segnale a 3.3V senza problemi. La resistenza non ostacola questa comunicazione, ma aggiunge uno strato di sicurezza elettrica.
Un consiglio extra:
Se si nota che i LED non si accendono o i colori "impazziscono", il problema potrebbe essere proprio la logica a 3.3V che è troppo bassa per i 5V dei Neopixel. In quel caso, oltre alla resistenza, avresti bisogno di un Logic Level Shifter (come il 74AHCT125) per alzare il segnale a 5V.
Sketch esempio
// NeoPixel Ring #include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif //pin a cui sono connessi #define PIN 6 //numero pixel #define PIX 16 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(PIX, PIN, NEO_GRB + NEO_KHZ800); void setup() { pixels.begin(); pixels.setPixelColor(0, pixels.Color(0,150,0)); pixels.show(); delay(1000); //spengo tutto } void loop() { //BLINK for (int i = 0; i < PIX; i++) { pixels.setPixelColor(i, pixels.Color(255,0,0)); pixels.show(); } delay(1000); for (int i = 0; i < PIX; i++) { pixels.setPixelColor(i, pixels.Color(0,0,0)); pixels.show(); } delay(1000); }
Etc
(Mappa e Link)
Arduino Progetti | Arduino indice | Arduino | Arduino Integrazioni tipiche
C++ Info fondamentali | Dizionario Elettronica | Elettronica | Elettronica Appunti
Parole chiave:
Parole chiave:
