programmare led per effetto accensione neon

ciao a tutti sono nuovo del forum e' da un po che vi leggo io sono un modellista sto costruendo un rimorchiatore in scala per la motorizzazione riesco a gestire tutto con la radio pero sono arrivato all impianto di illuminazione e a questo punto volevo realizzare un effetto tipo accensione neon pero con una serie di 5 microled che installero' nel modello, per fare questo potrei programmare un codice con arduino e ora volevo sapere come posso realizzarlo,premetto che di elettronica non sono molto aferrato :frowning: e quindi sono qui a chiedere un buon consiglio grazie.

Ho appena scritto una routine simile per l'accensione di tubi simil neon, ecco il mio codice

long tempo=millis();

void loop(){
  
  if (millis()-tempo <= 500) {
    two();
    delay(random(1,100));
    blank();
  }
  else if (millis()-tempo <= 1000) {
    two();
    delay(random(1,500));
    blank();
  }

ovviamente bruttissimo perche' si trattava solo di un test, in questo caso diciamo che accende il led 2, per i primi 500 millisecondi lampeggia acceso/spento con una varianza di massimo 100 millisecondi e per un altro mezzo secondo lampeggia con una varianza fino a 500ms, fino ad accendersi stabilmente.

F

grazie federico pero' quello che volevo sapere e' inanzitutto va bene per un applicaione cosi anche arduino nano? nel caso come devo collegare i led ? cioe lo schema che devo realizzare quale sarebbe?
scusate ma non ne so molto
grazie

Si va bene, ti basta collegare i led alle uscite di arduino interposti da una resistenza, da 1k ad esempio. Forse pero' prima e' meglio che fai anche qualche esperimento in merito! :slight_smile:

ciao 1683al

Se non ho capito male cuoi simulare l'accensione di un tubo flurescente ai vapori di mercurio a bassa pressione. Nel senso divebta arancione incandescente ai terminale e poi lampeggia per qualche secondo e poi si accende un po fiacco e dopo 2 minuti é acceso forte con una luce bianco-fredda?

Ti consiglio di usare un Arduino mini perché costa di meno visto che non hai l' interfaccia USB. Quello devi comprare separatramente per programmarlo.

Per collegare i LED basta una resistenza per ogni led e puoi collegarlo direttamente alle uscite.
Devi mettere qualcosa davanti ai led per avere una distribuzione della luce non puntiforme ma lunga.

Ciao Uwe

vi ringrazio tutti molto utili le vostre risposte grazie ora procedero' per uwe:si lo pensavo anch'io di schermare i led per evitare un effetto puntiforme.

ciao ho provato acaricare lo sketch ma mi da errore nello specifico ti allego la schermata

problem.tiff (67.3 KB)

Qui messaggi che sono visibili dicono che le funzioni two e blank non sono state definite.
Ciao Uwe

e si infatti avevo capito pero' che consiglio mi date ? cosa dovrei scrivere?
ciao per finire il codice cosa manca?? :~
grazie in partenza

Scusa ma riapri un thread dopo 1 anno e mezzo e speri anche che qualcuno si ricordi dei tuoi problemi? :stuck_out_tongue_closed_eyes:
Vedendo l'immagine, manca mezzo programma. Mancano la dichiarazione di setup() così come il corpo delle funzioni che chiami (es. blank()).

hai ragione.
coamunque ho trovato un esempio dal programma e ho provato a modificare un po' i valori preimpostati e pare che ci sia riuscito nel mio intento e per quello ch emi serve sono abbastanza soddisfatto.
eco il codice per chi serve

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.
*/

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(12);
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(75);
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(12);

digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(75);
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(12);
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(75);
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(90000000);
}

ciao a tutti :slight_smile: e grazie

leo72:
Scusa ma riapri un thread dopo 1 anno e mezzo e speri anche che qualcuno si ricordi dei tuoi problemi? :stuck_out_tongue_closed_eyes:
Vedendo l'immagine, manca mezzo programma. Mancano la dichiarazione di setup() così come il corpo delle funzioni che chiami (es. blank()).

Non é colpa sua, era Federico che gli ha consigliato il codice senza dare tutto il necessario che funzioni.

Ciao Uwe