Go Down

Topic: programmare led per effetto accensione neon (Read 2104 times) previous topic - next topic

1683al

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 :( e quindi sono qui a chiedere un buon consiglio grazie.

Federico

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

Code: [Select]

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
Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

1683al

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

Federico

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! ^__^
Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

uwefed

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


1683al

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.

1683al

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

uwefed

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

1683al

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

leo72

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

1683al

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 :) e grazie

uwefed


Scusa ma riapri un thread dopo 1 anno e mezzo e speri anche che qualcuno si ricordi dei tuoi problemi?  :smiley-yell:
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

Go Up