Show Posts
Pages: 1 [2] 3
16  International / Software / Re: Lampada RGB con Apple Remote on: May 05, 2013, 12:26:10 pm
Dopo un bel pò di prove sono arrivato alla conclusione di non aver capito niente sulla millis,
o meglio, in uno sketch semplice e con un colore solo riesco a fargli fare l'effetto fade, ma quando provo a farlo tra tutti i colori non riesco.
inoltre non riesco ad integrare nel codice della lampada l'effetto fade di un colore solo.
Mi sa che dovrò studiare di brutto smileysmileysmiley
17  International / Software / Re: Lampada RGB con Apple Remote on: May 05, 2013, 02:30:33 am
  smiley grazie per il link
Oggi faccio qualche prova con la millis, in effetti nel mio codice quei delay rallentano il tutto.
18  International / Software / Re: Lampada RGB con Apple Remote on: May 04, 2013, 05:40:36 pm
Letto e riletto, ma ancora non capisco come integrarlo al meglio.
19  International / Software / Re: Lampada RGB con Apple Remote on: May 04, 2013, 04:58:01 pm
Oggi ho fatto un pò di modifiche , ho cambiato qualche modo() e tolto le funzioni che mi aveva dato nid69ita riguardo alla millis(devo ancora capirle smiley) che non riuscivo a fare funzionare.
Cmq per oggi mi ritengo soddisfatto, ho capito qualcosina in più smiley
allego lo sketch ultimo smiley-grin
20  International / Software / Re: Lampada RGB con Apple Remote on: May 03, 2013, 05:43:11 pm
smiley-grin:D:D
tralasciavo gli "errori"

l'ora tarda, i led negli occhi  smiley smiley-razz
21  International / Software / Re: Lampada RGB con Apple Remote on: May 03, 2013, 05:33:20 pm
fatto, ora sto cercando di capire dove sono gli sulla luminosità, però non mi sembra ce ne siano, cioè i modo() sono fatti alla stessa maniera
ho modificato anche i pin
22  International / Software / Re: Lampada RGB con Apple Remote on: May 03, 2013, 05:04:54 pm
però così modificato funziona, come era prima non funzionava
in effetti sembra che ci sia qualcosa che non torna

23  International / Software / Re: Lampada RGB con Apple Remote on: May 03, 2013, 12:35:58 pm
OK ho modificato il codice e anche con questo c'è qualche problema che devo risolvere
però mi sembra una buona base per ripartire, quindi tutte le successive modifiche che farò si baseranno su questo codice in allegato

EDIT: invece dell'ULN2003 sto usando dei bc337, così mi servono solo 3 pin. Ho modificato il codice di conseguenza con solo 3 pin

2°EDIT: stavo riguardando il codice ed ho notato qualche errore, così ho provato a risolverlo e ci sono riuscito ragionandoci un pochino smiley-grin:D:D
nel modo6 avevo dimenticato un else ed era per quello che non sapeva che fare andando credo in loop
Code:
case 6:  // fade
    if(currentMillis - previousMillis > 100) // ogni 0,1 sec
    {
      previousMillis = currentMillis;  
      lumi=lumi+fade;
      if(lumi==0 || lumi==255) fade=-fade;
      else
      modo0();
    }
nelle funzioni Krew e Kffw c'era un errore che ho corretto ed ora sembra funzionare meglio, nello specifico
Code:
if(modo<5) lumi=255;
è diventato
Code:
if(modo<5) lumi;

smiley-grin allego codice con versione cambiata in 0.2
fa dei giochi  strani:
 nel mode6 quello del fade, arrivato a 255 prosegue e non torna indietro
nel modo3, quello rosso, non funziona la luminosità(solo in quello adesso)
nel modo0 (luce bianca) quando diminuisco la luminosità fa un colore azzurrino
24  International / Software / Re: Lampada RGB con Apple Remote on: May 03, 2013, 12:15:42 pm
Sto provando a fare tutte le modifiche ma c'è sempre qualcosa che sbaglio, con questo codice ad esempio non si spegne più
Code:
/*
                  PeenieLamp v0.1b
 Lampada RGB con telecomando Apple
 
 Codici Apple Remote
 + 2011287595
 - 2011279403
 frw 2011238443
 play pause 2011242539
 ffw 2011291691
 menu 2011250731
 tenuti premuti 4294967295
 
 ° Play/Pause accende e spegne
 ° "+" e "-" regolano luminosità
 ° "<<" e ">>" Cambiano modalità
 ° "menu" luce bianca
 
 Modalità:
 modo0 - Bianco
 modo1 - Viola
 modo2 - Verde
 modo3 - Rosso
 modo4 - Blu
 modo5 - Blinky
 modo6 - Fade
 
 ultima modifica 03-05-2012
 */
#include <IRremote.h>

const byte r1=3;         //pin dei colori
const byte g1=5;
const byte b1=6;
const byte r2=9;
const byte g2=10;
const byte b2=11;
const byte RECV_PIN=12;   // pin del ricevitore

byte fade = 5;

const byte K_MAXMODI=6; //costante per i modi

///Costanti per codici ricevitore

const unsigned long Kpiu  = 2011287595;
const unsigned long Kmeno = 2011279403;
const unsigned long Krew  = 2011238443;
const unsigned long Kplay = 2011242539;
const unsigned long Kffw  = 2011291691;
const unsigned long Kmenu = 2011250731;

IRrecv irrecv(RECV_PIN);
decode_results results;

int PP = LOW ;      //conteggio di quanto volte è stato premuto "Play/Pausa"
int lumi = 255;   //luminosità iniziale
int modo = 0;     // inizio da modo 0
int passo=3;      //aumento per cambio colori
int vel=10;       //velocità cambio colori

unsigned long previousMillis=0;
///SETUP///

void setup()
{

  delay(1000);
  Serial.begin(9600);

  irrecv.enableIRIn();// attiva il ricevitore

  pinMode (r1,OUTPUT);//definisce i pin come output
  pinMode (g1,OUTPUT);
  pinMode (b1,OUTPUT);
  pinMode (r2,OUTPUT);
  pinMode (g2,OUTPUT);
  pinMode (b2,OUTPUT);

}
void StampaModo()
{ Serial.print("Modo:");
  Serial.println(modo);
  Serial.print("lumi=");
  Serial.println(lumi);   
}

///MODALITA'///

void Spegni()
{   
  analogWrite (r1, 0);
  analogWrite (g1, 0);
  analogWrite (b1, 0);
  analogWrite (r2, 0);
  analogWrite (g2, 0);
  analogWrite (b2, 0);
  Serial.println("SPENTO");
}

void modo0(){
 
    analogWrite (r1, lumi);
    analogWrite (g1, lumi);
    analogWrite (b1, lumi);
    analogWrite (r2, lumi);
    analogWrite (g2, lumi);
    analogWrite (b2, lumi);
    StampaModo();
 
 
  }


void modo1()  {

 
    analogWrite (r1, lumi);
    analogWrite (g1, 0);
    analogWrite (b1, lumi);
    analogWrite (r2, lumi);
    analogWrite (g2, 0);
    analogWrite (b2, lumi);
    StampaModo();

 
 
   
 
}

void modo2 () {
 
    analogWrite(r1,0);
    analogWrite(g1,lumi);
    analogWrite (b1,0);
    analogWrite(r2,0);
    analogWrite(g2,lumi);
    analogWrite (b2,0);
    StampaModo();


 
 
}
void modo3 (){
 
    analogWrite(r1,lumi);
    analogWrite(g1,0);
    analogWrite (b1,0);
    analogWrite(r2,lumi);
    analogWrite(g2,0);
    analogWrite (b2,0);
 StampaModo();

 
   
 
}
void modo4 (){
 
    analogWrite(r1,0);
    analogWrite(g1,0);
    analogWrite (b1,lumi);
    analogWrite(r2,0);
    analogWrite(g2,0);
    analogWrite (b2,lumi);
    StampaModo();


   
 
}
void modo5(){
   
    analogWrite (r1, lumi);
    analogWrite (g1, lumi);
    analogWrite (b1, lumi);
    analogWrite (r2, lumi);
    analogWrite (g2, lumi);
    analogWrite (b2, lumi);
    StampaModo();
 
   
 
}
void modo6()
{

    analogWrite (r1, lumi);
    analogWrite (g1, lumi);
    analogWrite (b1, lumi);
    analogWrite (r2, lumi);
    analogWrite (g2, lumi);
    analogWrite (b2, lumi);
    StampaModo();

   
 
}


///MAIN LOOP///

void loop()  {

  if (irrecv.decode(&results)) {

    //play/pausa premuto
    if(results.value == Kplay) {
      if(PP==LOW){
        PP=HIGH;
        Serial.println("ACCESO");
      }
      else  {
        PP=LOW;
       
      }
    }

    //tasto + premuto
    if (results.value == Kpiu && lumi<255){
      lumi = lumi+15;
      delay(30);
    }

    //tasto - premuto
    if (results.value == Kmeno && lumi>0){
      lumi=lumi -15;
      delay(30);
    }

    // tasto << premuto
    if (results.value == Krew){
      modo = modo-1;

      if(modo<0) modo = K_MAXMODI;
      if(modo<5)  lumi=255;
      if(modo==5) lumi=255;
      if(modo==6) lumi=0;
    }

    // tasto>>premuto
    if (results.value==  Kffw){
      modo=modo+1;      // puoi anche scrivere:           modo++;

      if(modo>K_MAXMODI) modo=0;
        if(modo<5)  lumi=255;
      if(modo==5) lumi=255;
      if(modo==6) lumi=0;
    }

    irrecv.resume();
if (PP==HIGH){
    switch (modo) {

    case 0:
      modo0();
      break;
    case 1:
      modo1();
      break;
    case 2:
      modo2();
      break;
    case 3:
      modo3();
      break;
      case 4:
      modo4();
      break;
     
     } // END switch
  } //END if
  unsigned long currentMillis = millis();
switch(modo) 
// queste modalità sono eseguite in base al tempo della millis (per animazioni dei led)
if(PP==HIGH){
  { case 5: // blinky
      if(currentMillis - previousMillis > 1000L) // ogni secondo 1000L=1 sec
      { previousMillis = currentMillis;   
        PP=!PP;
        if(PP==false)
          Spegni();
        else
          modo0();
      }
      break;
    case 6:  // fade
      if(currentMillis - previousMillis > 100) // ogni 0,1 sec
      { previousMillis = currentMillis;   
        lumi=lumi+fade;
        if(lumi==0 || lumi==255) fade=-fade;
        modo0();
      }
      break;
  }  // end switch
} // END loop
  }
}
Persistono i problemi di prima, ma riuscirò a sistemarli smiley-grin
25  International / Software / Re: Lampada RGB con Apple Remote on: May 03, 2013, 09:52:15 am
Nel modo 6 non entra e blocca tutto
allego il mio sketch

più tardi provo a comandarli con dei BC337 invece dell'ULN2003, lo sketch non dovrebbe cambiare
26  International / Software / Re: Lampada RGB con Apple Remote on: May 03, 2013, 08:39:58 am
anche secondo me è giusto così, ma quando si va a riaccendere prende il modo cambiato e non lo stesso di quando hai spento.
27  International / Software / Re: Lampada RGB con Apple Remote on: May 03, 2013, 07:59:19 am
aggiunto modo5 come suggerito e funziona
un altro problema di codice è che anche quando spento accetta i comandi dati e cambia modo
28  International / Hardware / lampada RGB con telecomado Apple on: May 03, 2013, 05:26:11 am
Buongiorno, vorrei avere consigli per una lampada RGB con telecomado Apple

vi rimando a questo thread http://arduino.cc/forum/index.php/topic,164072.0.html in quanto c'è lo schema e lo sketch del mio progetto (lo sketch da prendere in considerazione è nelle ultime pagine smiley).
Sostanzialmente mi chiedevo se la decisione di comandare le strip ad anodo comune con un ULN2003 andasse bene.
Avevo anche provato con un 74HC595 ma mi era sembrato più difficile creare lo sketch, considerando che parto da 0,1 sia in elettronica che in programmazione, ho scelto la strada che mi sembrava più facile smiley-grin

EDIT: adesso sto provando con degli NPN BC337 , mi sembra meglio o sbaglio?

29  International / Software / Re: Lampada RGB con Apple Remote on: May 03, 2013, 05:09:35 am
infatti inizialmente sono partito con lumi al massimo, era a zero per fare le prove della luminosità.
Ora è a 255 smiley giustamente quando accendi deve accendersi smiley-grin:D:D

stavo valutando anche io il problema HW, visto che in r1  nel modo3 non va luminosità mentre in r2 si
ora chiedo nell'altra sezione smiley-grin

ti tengo aggiornato smiley
30  International / Software / Re: Lampada RGB con Apple Remote on: May 03, 2013, 04:42:09 am
smiley fatto

stavo notando questa cosa....
prendendo i modo() uno per uno vedo che modo1 e modo2 hanno più di un colore acceso per volta, mentre modo2 e modo3 hanno un solo colore acceso. verrebbe da pensare che  il problema con modo1 e modo2 sia da attribuire a questo fatto.
Ho aggiunto anche un modo4 che pur avendo un solo colore acceso si comporta come modo1 e modo2. deduco quindi che non sia da attribuire la cosa ai colori.
Analizzando i codice dei "void modo()" vedo che sono uguali  smiley-eek enon riesco a capire l'errore, eppure c'è da qualche parte smiley-grin

EDIT: grazie per il codice, decisamente più pulito smileysmileysmiley
notavo anche le modifiche dove si definiscono le costanti, tu hai messo byte PP = LOW
io int PP = 0
potresti dirmi la differenza? smiley
mi rimane comunque il problema descritto prima, e continuo a non vedere l'errore
Pages: 1 [2] 3