
Controllare presepe con Arduino
Moderatori: MassimoB,
WALTERmwp,
xyz
0
voti
Grazie per l'aiuto, fai con comodo, devo aspettare 2 settimane che arrivano i transistor... Per lo streck, come ho detto al primo post, l'ho trovato su internet, io l'ho solo capito e modificato per il mio progetto (sinceramente pensavo fosse molto più difficile
). Funziona perfettamente in PWM dove all'alba, giorno e tramonto alterna in fade 3 led diversi, mentre la notte accende sempre in fade 3 led (se non sono stato chiaro, se è permesso posso mettere il link del funzionamento con YouTube).

-
dadothebest
24 2 7 - Frequentatore
- Messaggi: 229
- Iscritto il: 25 nov 2013, 17:13
- Località: Ascoli Piceno
0
voti
Non solo il link, se noti ci sono i tag per mettere direttamente il video
Hai provato i led che non hanno il fade?

Hai provato i led che non hanno il fade?
Piuttosto che chiedere qualcosa a me, chiedila a Mara Maionchi. E' più competente.
-
paofanello
2.275 8 13 - Expert
- Messaggi: 532
- Iscritto il: 7 lug 2015, 21:01
0
voti
Vi scrivo il codice originale a cui mi sono ispirato:
Questo è il video del funzionamento dello sketch:
Non ho ancora provato nulla perché sto aspettando che arrivino i transistor (ci vogliono circa 2 settimane).
- Codice: Seleziona tutto
#define pin_down 3
#define pin_sun 5
#define pin_sunset 6
#define pin_moon 9
#define pin_starsA 10
#define pin_starsB 11
int oneminrome[4] = { 4194,22958,4195,28651 };
int oneminbtlm[4] = { 3668,25189,3668,27474 };
int timeStepOld = 0;
int timeStep = 0;
long timeCurr = 0;
byte fade[] = {255,250,245,240,235,230,225,220,215,210,205,200,195,190,185,180,175,170,165,160,155,150,145,140,135,130,125,120,115,110,105,100,95,90,85,80,75,70,65,60,55,50,45,40,35,30,25,20,15,10,5,0}; // 52 step
byte curr = 0;
void setup() {
Serial.begin( 9600 );
pinMode( pin_down ,OUTPUT );
pinMode( pin_sun ,OUTPUT );
pinMode( pin_sunset,OUTPUT );
pinMode( pin_moon ,OUTPUT );
pinMode( pin_starsA,OUTPUT );
pinMode( pin_starsB,OUTPUT );
analogWrite( pin_down ,LOW );
analogWrite( pin_sun ,LOW );
analogWrite( pin_sunset,LOW );
analogWrite( pin_moon ,LOW );
analogWrite( pin_starsA,LOW );
analogWrite( pin_starsB,LOW );
Serial.println("-- START --");
}
void loop() {
timeCurr = oneminrome[curr];
timeStep = (timeCurr/52);
Serial.print("Current: "); Serial.println(curr);
Serial.print("Time current: "); Serial.println(timeCurr);
Serial.print("Time single step: "); Serial.println(timeStep);
// down
if ( curr == 0 ) {
Serial.print("Fase: "); Serial.println("DOWN");
for ( int i=0; i<52; i++) {
analogWrite(pin_down, fade[(51-i)]);
analogWrite(pin_sun, 0 );
analogWrite(pin_sunset, 0 );
analogWrite(pin_moon, fade[i] );
analogWrite(pin_starsA, fade[i] );
analogWrite(pin_starsB, fade[i] );
delay( timeStep );
}
timeStepOld = timeStep;
}
// sun
if ( curr == 1 ) {
Serial.print("Fase: "); Serial.println("SUN");
for ( int i=0; i<52; i++) {
analogWrite(pin_down, fade[i]);
if ( fade[i] < 125) analogWrite(pin_sun, fade[(51-i)]*2 );
analogWrite(pin_sunset, 0 );
analogWrite(pin_moon, 0 );
analogWrite(pin_starsA, 0 );
analogWrite(pin_starsB, 0 );
delay( timeStepOld );
}
timeStepOld = (timeStepOld*52); // elapsed time
timeCurr = (timeCurr - timeStepOld);
delay( timeCurr );
}
// sunset
if ( curr == 2 ) {
Serial.print("Fase: "); Serial.println("SUNSET");
for ( int i=0; i<52; i++) {
analogWrite(pin_down, 0);
analogWrite(pin_sun, fade[i] );
analogWrite(pin_sunset, fade[(51-i)] );
analogWrite(pin_moon, 0 );
analogWrite(pin_starsA, 0 );
analogWrite(pin_starsB, 0 );
delay( timeStep );
}
timeStepOld = timeStep;
}
// moon
if ( curr == 3 ) {
Serial.print("Fase: "); Serial.println("MOON");
for ( int i=0; i<52; i++) {
analogWrite(pin_down, 0);
analogWrite(pin_sun, 0 );
analogWrite(pin_sunset, fade[i] );
if ( fade[i] < 125) analogWrite(pin_moon, fade[(51-i)]*2 );
if ( fade[i] < 125) analogWrite(pin_starsA, fade[(51-i)]*2 );
if ( fade[i] < 125) analogWrite(pin_starsB, fade[(51-i)]*2 );
delay( timeStepOld );
}
timeStepOld = (timeStepOld*52); // elapsed time
timeCurr = (timeCurr - timeStepOld);
delay( timeCurr );
}
curr++;
if ( curr >= 4 ) { curr = 0; }
}
Questo è il video del funzionamento dello sketch:
Non ho ancora provato nulla perché sto aspettando che arrivino i transistor (ci vogliono circa 2 settimane).
-
dadothebest
24 2 7 - Frequentatore
- Messaggi: 229
- Iscritto il: 25 nov 2013, 17:13
- Località: Ascoli Piceno
0
voti
Finalmente sono arrivati i transistor e sto iniziando ad assemblare il tutto. Ho però un nuovo problema: l'alimentatore che ho possiede un'uscita da 5V e una da 12V (entrambe con GND in comune), posso usare la 5V per alimentare arduino a posto della 9V?
-
dadothebest
24 2 7 - Frequentatore
- Messaggi: 229
- Iscritto il: 25 nov 2013, 17:13
- Località: Ascoli Piceno
0
voti
dadothebest ha scritto:posso usare la 5 V per alimentare arduino a posto della 9V?
Non vorrei dire bagianate, ma Arduino può essere alimentato dalla presa USB proprio alla tensione di 5V, pertanto potresti sfruttare questo ingresso per la sua sola alimentazione.

0
voti
si puo' fare, ma sempre a patto che l'alimentazione 5V sia fornita tramite un regolatore.
Infatti in tal caso si alimenta direttamente il micro bypassando il regolatore di Arduino... quindi se l'alimentazione superasse 5.5/6V si fa danno.
Se l'alimtatore non è stabilizzato bene meglio evitare
Infatti in tal caso si alimenta direttamente il micro bypassando il regolatore di Arduino... quindi se l'alimentazione superasse 5.5/6V si fa danno.
Se l'alimtatore non è stabilizzato bene meglio evitare
0
voti
Ho girato vari negozi nel mio paese e nessuno ha un step-down. Non posso prenderlo on-line perché non posso aspettare più di un mese affinchè mi arrivi. Posso provare ad alimentarlo tramite USB, vorrei chiedervi se posso usare un alimentarore separato per arduino e i componenti oppure devono avere GND in comune. In tal caso posso utilizzare sempre 2 alimentatori diversi, separati (uno da 5V e uno da 12V) e collegare la massa insieme tra loro? (chiedo scusa se ho detto baggianate
).

-
dadothebest
24 2 7 - Frequentatore
- Messaggi: 229
- Iscritto il: 25 nov 2013, 17:13
- Località: Ascoli Piceno
0
voti
il sistema dei 2 alimentatori lo puoi fare, non ci dovrebbero essere controindicazioni
pero' forse avrei preferito alimentare tutto con la solita sorgente (12V) e quindi a questo punto, ad esempio, gestirei Arduino con un LM7809/LM7808... che li dovresti trovare abbastanza facilmente
pero' forse avrei preferito alimentare tutto con la solita sorgente (12V) e quindi a questo punto, ad esempio, gestirei Arduino con un LM7809/LM7808... che li dovresti trovare abbastanza facilmente

1
voti
Non ho seguito l'intera discussione, pertanto mi aggangio al topic [34], dove mi pare di capire che il problema sia quello di alimentare Arduino ed i dispositivi esterni.
Ora per i dispositivi esterni non si dovrebbero aver problemi in quanto l'alimentazione fornita viene gestita (o almeno dovrebbe) da relè esterni di tipo elettromeccanico o statico a loro volta gestiti da Arduino, pertanto un qualsiasi alimentatore soddisferà la tensione e l'intensità di corrente richiesta.
Per quanto concerne Arduino lo si potrà alimentare in maniera differente con una semplice batteria tipo 9V o con un alimentatorino 5V attraverso il connettore USB tipoB, alimentatorini del genere si trovano a bizeffe.
Qualcosa del genere ...
Ora per i dispositivi esterni non si dovrebbero aver problemi in quanto l'alimentazione fornita viene gestita (o almeno dovrebbe) da relè esterni di tipo elettromeccanico o statico a loro volta gestiti da Arduino, pertanto un qualsiasi alimentatore soddisferà la tensione e l'intensità di corrente richiesta.
Per quanto concerne Arduino lo si potrà alimentare in maniera differente con una semplice batteria tipo 9V o con un alimentatorino 5V attraverso il connettore USB tipoB, alimentatorini del genere si trovano a bizeffe.
Qualcosa del genere ...
Chi c’è in linea
Visitano il forum: Nessuno e 2 ospiti