Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools
Admin is editing the page
Admin is editing the page

Arduino Orologio NeoPixel

From Aino Wiki

Jump to: navigation, search

Introduzione

Risorse

Ispirazione e materiale da Paolo Aliverti, video:

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:

Author Giuseppe AINO