Appena posso procedo ad assemblare il tutto, vi farò sapere se funziona.






dadothebest ha scritto:2n2222. Quale altro transistor posso prendere in alternativa?
dadothebest ha scritto:conoscete uno shop on-line dove vendono componenti a buoni prezzi?





#define pin_luciA 2
#define pin_stelleB 3
#define pin_luciB 4
#define pin_stelleA 5
#define pin_stellacometa 6
#define pin_luciC 7
#define pin_temporale 8
#define pin_tramonto 9
#define pin_alba 10
#define pin_giorno 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_luciA , OUTPUT );
pinMode( pin_stelleB , OUTPUT );
pinMode( pin_luciB , OUTPUT );
pinMode( pin_stelleA , OUTPUT );
pinMode( pin_stellacometa , OUTPUT );
pinMode( pin_luciC , OUTPUT );
pinMode( pin_temporale , OUTPUT );
pinMode( pin_tramonto , OUTPUT );
pinMode( pin_alba , OUTPUT );
pinMode( pin_giorno , OUTPUT );
analogWrite( pin_luciA , LOW );
analogWrite( pin_stelleB , LOW );
analogWrite( pin_luciB , LOW );
analogWrite( pin_stelleA , LOW );
analogWrite( pin_stellacometa , LOW );
analogWrite( pin_luciC , LOW );
analogWrite( pin_temporale , LOW );
analogWrite( pin_tramonto , LOW );
analogWrite( pin_alba , LOW );
analogWrite( pin_giorno , 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);
// alba
if ( curr == 0 ) {
Serial.print("Fase: "); Serial.println("ALBA");
for ( int i = 0; i < 52; i++) {
analogWrite( pin_luciA, 0 );
analogWrite( pin_stelleB, fade[(i - 51)]);
analogWrite( pin_luciB, 0 );
analogWrite( pin_stelleA, fade[(i - 51)]);
analogWrite( pin_stellacometa, fade[(i - 51)]);
analogWrite( pin_luciC, 0 );
analogWrite( pin_temporale, 0 );
analogWrite( pin_tramonto, 0 );
analogWrite( pin_alba, fade[(51 - i)]);
analogWrite( pin_giorno, 0 );
}
timeStepOld = timeStep;
}
// giorno
if ( curr == 1 ) {
Serial.print("Fase: "); Serial.println("GIORNO");
for ( int i=0; i<52; i++) {
analogWrite( pin_luciA, 0 );
analogWrite( pin_stelleB, 0 );
analogWrite( pin_luciB, 0 );
analogWrite( pin_stelleA, 0 );
analogWrite( pin_stellacometa, 0 );
analogWrite( pin_luciC, 0 );
analogWrite( pin_temporale, 0 );
analogWrite( pin_tramonto, 0 );
analogWrite( pin_alba, 0 );
analogWrite( pin_giorno, fade[(51 - i)]);
delay( timeStepOld );
}
timeStepOld = (timeStepOld*52); // elapsed time
timeCurr = (timeCurr - timeStepOld);
delay( timeCurr );
}
// tramonto
if ( curr == 2 ) {
Serial.print("Fase: "); Serial.println("TRAMONTO");
for ( int i=0; i<52; i++) {
analogWrite( pin_luciA, 0 );
analogWrite( pin_stelleB, fade[(51 - i)]);
analogWrite( pin_luciB, 0 );
analogWrite( pin_stelleA, fade[(51 - i)]);
analogWrite( pin_stellacometa, fade[(51 - i)]);
analogWrite( pin_luciC, 0 );
analogWrite( pin_temporale, 0 );
analogWrite( pin_tramonto, fade[(51 - i)]);
analogWrite( pin_alba, fade[(51 - i)]);
analogWrite( pin_giorno, fade[(i - 51)]);
delay( timeStep );
}
timeStepOld = timeStep;
}
// notte
if ( curr == 3 ) {
Serial.print("Fase: "); Serial.println("NOTTE");
for ( int i=0; i<52; i++) {
analogWrite( pin_luciA, 1 );
analogWrite( pin_stelleB, 1 );
analogWrite( pin_luciB, 1 );
analogWrite( pin_stelleA, 1 );
analogWrite( pin_stellacometa, 1 );
analogWrite( pin_luciC, 1 );
analogWrite( pin_temporale, 0 );
analogWrite( pin_tramonto, 0 );
analogWrite( pin_alba, 0 );
analogWrite( pin_giorno, 0 );
delay( timeStepOld );
}
timeStepOld = (timeStepOld*52); // elapsed time
timeCurr = (timeCurr - timeStepOld);
delay( timeCurr );
}
curr++;
if ( curr >= 4 ) { curr = 0; }
}analogWrite( pin_luciA, .......
analogWrite( pin_stelleB, fade[(i - 51)]);
analogWrite( pin_luciB, .....
analogWrite( pin_stelleA, fade[(i - 51)]);
analogWrite( pin_stellacometa, fade[(i - 51)]);
analogWrite( pin_luciC, .....
analogWrite( pin_temporale, 0 );
analogWrite( pin_tramonto, 0 );
analogWrite( pin_alba, fade[(51 - i)]);
analogWrite( pin_giorno, ....... 

dadothebest ha scritto:1) luciA, luciB, luciC si devono spegnere (non sono in PWM) dopo un certo tempo, ad esempio 2 secondi, da quando inizia l'alba.
dadothebest ha scritto: // alba
if ( curr == 0 ) {
Serial.print("Fase: "); Serial.println("ALBA");
for ( int i = 0; i < 52; i++) {
analogWrite( pin_stelleB, fade[(i - 51)]);
analogWrite( pin_stelleA, fade[(i - 51)]);
analogWrite( pin_stellacometa, fade[(i - 51)]);
analogWrite( pin_temporale, 0 );
analogWrite( pin_tramonto, 0 );
analogWrite( pin_alba, fade[(51 - i)]);
analogWrite( pin_giorno, 0 );
if ( i==30) {
analogWrite( pin_luciA, 0 );
analogWrite( pin_luciB, 0 );
analogWrite( pin_luciC, 0 );
}
}
timeStepOld = timeStep;




Visitano il forum: Nessuno e 2 ospiti