Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Controllare presepe con Arduino

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteMassimoB, Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[31] Re: Controllare presepe con arduino

Messaggioda Foto Utentedadothebest » 10 nov 2015, 0:10

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 :D ). 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).
Avatar utente
Foto Utentedadothebest
24 2 7
Frequentatore
Frequentatore
 
Messaggi: 226
Iscritto il: 25 nov 2013, 17:13
Località: Ascoli Piceno

0
voti

[32] Re: Controllare presepe con arduino

Messaggioda Foto Utentepaofanello » 10 nov 2015, 0:13

Non solo il link, se noti ci sono i tag per mettere direttamente il video :D
Hai provato i led che non hanno il fade?
Piuttosto che chiedere qualcosa a me, chiedila a Mara Maionchi. E' più competente.
Avatar utente
Foto Utentepaofanello
2.275 8 13
Expert
Expert
 
Messaggi: 532
Iscritto il: 7 lug 2015, 21:01

0
voti

[33] Re: Controllare presepe con arduino

Messaggioda Foto Utentedadothebest » 10 nov 2015, 20:37

Vi scrivo il codice originale a cui mi sono ispirato:
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).
Avatar utente
Foto Utentedadothebest
24 2 7
Frequentatore
Frequentatore
 
Messaggi: 226
Iscritto il: 25 nov 2013, 17:13
Località: Ascoli Piceno

0
voti

[34] Re: Controllare presepe con arduino

Messaggioda Foto Utentedadothebest » 28 nov 2015, 0:34

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?
Avatar utente
Foto Utentedadothebest
24 2 7
Frequentatore
Frequentatore
 
Messaggi: 226
Iscritto il: 25 nov 2013, 17:13
Località: Ascoli Piceno

0
voti

[35] Re: Controllare presepe con arduino

Messaggioda Foto UtenteRussell » 28 nov 2015, 0:57

credo di no, credo che il limite minimo sia 7V
tanto vale partire da 12V e andare un po' piu' giu' con uno step-down da 1 euro tipo questo
Avatar utente
Foto UtenteRussell
3.373 3 5 9
Master
Master
 
Messaggi: 2194
Iscritto il: 4 ott 2009, 10:25

0
voti

[36] Re: Controllare presepe con Arduino

Messaggioda Foto Utentemir » 28 nov 2015, 20:27

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. ;-)
Avatar utente
Foto Utentemir
59,6k 9 12 13
G.Master EY
G.Master EY
 
Messaggi: 20063
Iscritto il: 19 ago 2004, 21:10

0
voti

[37] Re: Controllare presepe con Arduino

Messaggioda Foto UtenteRussell » 29 nov 2015, 10:43

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
Avatar utente
Foto UtenteRussell
3.373 3 5 9
Master
Master
 
Messaggi: 2194
Iscritto il: 4 ott 2009, 10:25

0
voti

[38] Re: Controllare presepe con Arduino

Messaggioda Foto Utentedadothebest » 29 nov 2015, 23:15

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 :roll: ).
Avatar utente
Foto Utentedadothebest
24 2 7
Frequentatore
Frequentatore
 
Messaggi: 226
Iscritto il: 25 nov 2013, 17:13
Località: Ascoli Piceno

0
voti

[39] Re: Controllare presepe con Arduino

Messaggioda Foto UtenteRussell » 29 nov 2015, 23:49

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 :-k
Avatar utente
Foto UtenteRussell
3.373 3 5 9
Master
Master
 
Messaggi: 2194
Iscritto il: 4 ott 2009, 10:25

1
voti

[40] Re: Controllare presepe con Arduino

Messaggioda Foto Utentemir » 30 nov 2015, 13:45

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 ...
Avatar utente
Foto Utentemir
59,6k 9 12 13
G.Master EY
G.Master EY
 
Messaggi: 20063
Iscritto il: 19 ago 2004, 21:10

PrecedenteProssimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti