Pages: [1] 2 3 4   Go Down
Author Topic: Lampada RGB con Apple Remote  (Read 3241 times)
0 Members and 1 Guest are viewing this topic.
La Spezia
Offline Offline
Newbie
*
Karma: 0
Posts: 43
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buongiorno a tutti smiley
da buon utente neofita di Arduino (da circa un mese), mi sono messo in testa di farmi la classica lampada rgb telecomandata con Apple Remote.
Dopo varie letture e configurazioni suggerite ho optato per comandare le strip rgb(anodo comune) con 1 ULN2003 (allego schema Fritzing, per schemi con Eagle devo ancora capire smiley-grin).

Considerato che non mi piace avere la pappa pronta ho scritto un pò di codice che compila, ma non funziona come dovrebbe.
Il codice che allego non è completo delle funzionalità che vorrei per la lampada, ma per gestire meglio il tutto faccio delle prove in corso d'opera per verificarne il funzionamento e correggere eventuali errori.
Ecco lo sketch
Code:
/*
                  PeenieLamp v0.1
 Lampada RGB con telecomando Apple
 
 Codici Apple Remote
+         2011287595
-           2011279403
<<        2011238443
play pause 2011242539
>>                2011291691
menu 2011250731
tenuti premuti 4294967295
 
 
 ° Play/Pause accende e spegne
 ° "+" e "-" regolano luminosità
 ° "<<" e ">>" Cambiano modalità
 ° "menu" luce bianca
 
 
 Modalità:
 0 - luce bianca
 1 - Dissolvenza
 2 - Arcobaleno
 3 -
 4 -
 5 -
 
 ultima modifica 02-05-2012
 */


#include <IRremote.h>

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

IRrecv irrecv(RECV_PIN);
decode_results results;

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

///SETUP///

void setup()
{

  irrecv.enableIRIn();// attiva il ricevitore

  pinMode (r1,OUTPUT);
  pinMode (g1,OUTPUT);
  pinMode (b1,OUTPUT);
  pinMode (r2,OUTPUT);
  pinMode (g2,OUTPUT);
  pinMode (b2,OUTPUT);

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

///MODALITA'///

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


void modo1()  {
  for (int fadevalue=0; fadevalue<= lumi; fadevalue +=5){      
    analogWrite (r1, fadevalue);
    analogWrite (g1, fadevalue);
    analogWrite (b1, fadevalue);
    analogWrite (r2, fadevalue);
    analogWrite (g2, fadevalue);
    analogWrite (b2, fadevalue);
    delay(50);
  }
  for ( int fadevalue=lumi;fadevalue>=0; fadevalue -=5){
    analogWrite (r1, fadevalue);
    analogWrite (g1, fadevalue);
    analogWrite (b1, fadevalue);
    analogWrite (r2, fadevalue);
    analogWrite (g2, fadevalue);
    analogWrite (b2, fadevalue);
    delay(50);
  }
}


void modo2 () {
  for (int L=0;L<256;L+=passo) {
    analogWrite(r1,255-L);
    analogWrite(g1,L);
    delay(100);
  }

  for (int L=0;L<256;L+=passo) {
    analogWrite(g1,255-L);
    analogWrite(b1,L);
    delay(100);
  }

  for (int L=0;L<256;L+=passo) {
    analogWrite(b1,255-L);
    analogWrite(r1,L);
    delay(100);
  }
}


///MAIN LOOP///

void loop()  {

  if (irrecv.decode(&results)) {

    //play/pausa premuto
    if(results.value == 2011242539) {
      if(PP==LOW){
        PP=HIGH;
      }
      else  {
        PP=LOW;
      }
    }

    //tasto + premuto
    if (results.value ==2011287595 && lumi<240){
      lumi=lumi +20;
    }

    //tasto - premuto
    if (results.value == 2011279403 && lumi>0){
      lumi=lumi -20;
    }

    // tasto << premuto
    if (results.value==2011238443){
      if(modo>0) {
        modo =modo-1;
      }
      else{
        modo = 2;
      }
    }

    // tasto>>premuto
    if (results.value==  2011238443){
      if(modo <2){
        modo = modo +1;
      }
      else{
        modo = 0;
      }
    }
    irrecv.resume();
  }
  switch (modo) {
  case 0:
    if (PP==HIGH){
      analogWrite (r1, lumi);
      analogWrite (g1, lumi);
      analogWrite (b1, lumi);
      analogWrite (r2, lumi);
      analogWrite (g2, lumi);
      analogWrite (b2, lumi);
    }
    else {
      analogWrite (r1, 0);
      analogWrite (g1, 0);
      analogWrite (b1, 0);
      analogWrite (r2, 0);
      analogWrite (g2, 0);
      analogWrite (b2, 0);
    }
    break;
  case 1:
    if(PP==HIGH){
      modo1();
    }
    break;
  case 2 :
    if(PP==HIGH){
      modo2();
    }
    break;
  }
}

Il problema è che dopo aver premuto i tasti per la luminosità si impalla tutto il sistema, inoltre non riesco a gestire le varie modalità di accensione della lampada.
Sono sicuro di aver commesso un sacco di errori ed infatti vi chiedo aiuto e suggerimenti per l'avanzamento del mio progetto.
Avrei anche bisogno di qualche idea per giochi di luci da implementare nella lampada smiley-grin.
Insomma mi farebbe piacere completarla con il vostro aiuto e la vostra esperienza.

Andrea
« Last Edit: May 02, 2013, 04:19:56 am by peenieman » Logged

Il fare è il miglior modo d'imparare

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4848
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Cosa intendi con "si impalla" ?

Quando sei in modalità 1 o 2   Arduino esegue delle funzioni con dei cicli for e parecchi delay. In tutto quel tempo di certo l'Arduino non può anche leggere i comandi dal telecomando.
Prova a mettere nel modo1 e modo2 solo accensione di 2 colori a scelta senza quei for/delay per vedere se è quello il problema.

Alcuni consigli per il codice.
1. farei una funzione anche per il modo0 (hai una funzione modo0 non usata) per rimpicciolire lo switch.
2. per i pin è meglio dichiarare
Code:
const byte r1=3;
3. crea delle costanti per i codici Apple ed usa quelle nel codice, esempio      
Code:
 #define K_PLUS 2011287595
oppure meglio ancora
Code:
 const unsigned long K_PLUS=2011287595;
« Last Edit: May 02, 2013, 09:45:31 am by nid69ita » Logged

my name is IGOR, not AIGOR

La Spezia
Offline Offline
Newbie
*
Karma: 0
Posts: 43
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Intanto per grazie per i consigli smiley che ho subito messo in pratica assegnando le costanti per i codici del ricevitore e per i pin dei colori.
Per quel che riguarda il modo0 credo di avere sistemato rimpicciolendo lo switch.
Per " si impalla" intendo che non riceve più nessun comando dal ricevitore e si blocca a luce bianca fissa fino al reset manuale del micro, dopo le modifiche al codice questo non succede più.
Ho anche provato a mettere solo due colori nei modo1 e modo2 togliendo i 'for' e i 'delay' come suggerito ed in effetti i colori funzionano.
Segue sketch modificato
Code:
/*
                  PeenieLamp v0.2
 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 -
 modo5 -
 
 ultima modifica 02-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;
int RECV_PIN=12;   // pin del ricevitore

            ///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 = 0 ;      //conteggio di quanto volte è stato premuto "Play/Pausa"
int lumi = 100;   //luminosità iniziale
int modo = 0;     // inizio da modo 0
int passo=3;      //aumento per cambio colori
int vel=10;       //velocità cambio colori

///SETUP///

void setup()
{

  irrecv.enableIRIn();// attiva il ricevitore

  pinMode (r1,OUTPUT);
  pinMode (g1,OUTPUT);
  pinMode (b1,OUTPUT);
  pinMode (r2,OUTPUT);
  pinMode (g2,OUTPUT);
  pinMode (b2,OUTPUT);

  analogWrite (r1, LOW);
  analogWrite (g1, LOW);
  analogWrite (b1, LOW);
  analogWrite (r2, LOW);
  analogWrite (g2, LOW);
  analogWrite (b2, LOW);
}

///MODALITA'///

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


void modo1()  {
         
    analogWrite (r1, 255);
    analogWrite (g1, 0);
    analogWrite (b1, 255);
    analogWrite (r2, 255);
    analogWrite (g2, 0);
    analogWrite (b2, 255);
   
  }



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

///MAIN LOOP///

void loop()  {

  if (irrecv.decode(&results)) {

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

    //tasto + premuto
    if (results.value == Kpiu && lumi<240){
      lumi=lumi +20;
    }

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

    // tasto << premuto
    if (results.value == Krew){
      if(modo>0) {
        modo = modo-1;
      }
      else{
        modo = 3;
      }
    }

    // tasto>>premuto
    if (results.value==  Kffw){
      if(modo <3){
        modo = modo +1;
      }
      else{
        modo = 0;
      }
    }
    irrecv.resume();
  }
  switch (modo) {
  case 0:
    if (PP==HIGH){
      modo0();
    }
     
    break;
  case 1:
    if(PP==HIGH){
      modo1();
    }
    break;
  case 2 :
    if(PP==HIGH){
      modo2();
    }
    break;
    case 3 :
    if(PP==HIGH){
      modo3();
    }
  }
}


Ci sono delle cose che non capisco smiley :

con i tasti + e - non aumenta ne diminuisce la luminosita mentre prima lo faceva ma si "impallava" smiley dopo un paio di pressioni del tasto

con il tasto play che dovrebbe accendere/spegnere le luci , riesco solo ad accendere ma non a spegnere, mentre con lo sketch di prima riuscivo (era l'unica cosa che funzionava).





Logged

Il fare è il miglior modo d'imparare

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4848
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh, per il +/- è normale, perchè ora lumi non lo usi più.

Per quanto riguarda lo spegnere, non hai più nessun modox che mette tutto a 0, se non sbaglio.

modo0 modificalo cosi:
Code:
void modo0()
{ if (PP==HIGH)
  {   analogWrite (r1, lumi);
      analogWrite (g1, lumi);
      analogWrite (b1, lumi);
      analogWrite (r2, lumi);
      analogWrite (g2, lumi);
      analogWrite (b2, lumi);
  }
  else
  { analogWrite (r1, 0);
    analogWrite (g1, 0);
    analogWrite (b1, 0);
    analogWrite (r2, 0);
    analogWrite (g2, 0);
    analogWrite (b2, 0);
  }
}
« Last Edit: May 02, 2013, 12:11:35 pm by nid69ita » Logged

my name is IGOR, not AIGOR

La Spezia
Offline Offline
Newbie
*
Karma: 0
Posts: 43
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

anche con la modifica fatta non spegne

non capisco il discorso della luminosità (lumi), se io l'ho definita all'inizio, nel momento che la richiamo dovrebbe funzionare, o no? smiley-grin
chiedo 'lumi' smileysmileysmiley in merito

P.S.: scusate il pessimo gioco di parole smiley-grin
Logged

Il fare è il miglior modo d'imparare

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4848
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nella seconda versione che hai postato, lumi la inizializzi, la aumenti/diminuisci a seconda del tasto del remote.
Ma poi NON la usi, non c'e' più nessun        analogWrite (r1, lumi); !!!   smiley-mr-green


un consiglio, per fare debug e vedere da te dove stai passando nel programma.
Nella setup, come prime istruzioni aggiungi:
Code:
delay(1000);
Serial.begin(9600);

Questo permette di inviare dei dati al monitor di arduino IDE
Ora nel modo0:
Code:
void modo0()
{ if (PP==HIGH)
  {   analogWrite (r1, lumi);
      analogWrite (g1, lumi);
      analogWrite (b1, lumi);
      analogWrite (r2, lumi);
      analogWrite (g2, lumi);
      analogWrite (b2, lumi);
      Serial.print("Modo 0: lumi="); Serial.println(lumi);
  }
  else
  { analogWrite (r1, 0);
    analogWrite (g1, 0);
    analogWrite (b1, 0);
    analogWrite (r2, 0);
    analogWrite (g2, 0);
    analogWrite (b2, 0);
    Serial.print("Modo 0: spento");
  }
}


Altro suggerimento, creati anche una costante per il numero di modi:
Code:
 const K_MAXMODI=3;
nel codice:
Code:
 if(modo <3)   => diventa      if(modo<K_MAXMODI)
anche nell'altro punto  
Code:
 modo = 3;    => diventa     modo=K_MAXMODI;
« Last Edit: May 02, 2013, 12:46:18 pm by nid69ita » Logged

my name is IGOR, not AIGOR

La Spezia
Offline Offline
Newbie
*
Karma: 0
Posts: 43
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

in effetti hai ragione nel secondo sketch postato non c'è
Code:
analogWrite (r1, LOW);
  analogWrite (g1, LOW);
  analogWrite (b1, LOW);
  analogWrite (r2, LOW);
  analogWrite (g2, LOW);
  analogWrite (b2, LOW);
ma nell'IDE l'avevo messa
Code:
 analogWrite (r1, lumi);
  analogWrite (g1, lumi);
  analogWrite (b1, lumi);
  analogWrite (r2, lumi);
  analogWrite (g2, lumi);
  analogWrite (b2, lumi);

ecco il perchè della mia domanda, cmq la luminosità non funziona lo stesso

EDIT: aggiunto il monitor seriale, lumi comincia da 255 si abbassa di 20 come da sketch, arriva a 235 e poi si 'impalla' fino al reset manuale
quando ripremo play per spegnere, nel monitor seriale non mi scrive spento però smette di trasmettere il valore di lumi
« Last Edit: May 02, 2013, 12:43:47 pm by peenieman » Logged

Il fare è il miglior modo d'imparare

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4848
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io ti ho fatto aggiungere solo 2 punti in cui mandare valori/segnali al monitor.
Ti conviene aggiungerne in ogni funzione modex   e non solo
Code:
  if (irrecv.decode(&results))
  { //play/pausa premuto
    if(results.value == Kplay)
    { if(PP==LOW)
      { PP=HIGH;
        Serial.println("remote: PLAY  ACCESO");
      }
      else 
       {  PP=LOW;
           Serial.println("remote: PLAY  SPENTO");
      }
 ...
    }
Logged

my name is IGOR, not AIGOR

La Spezia
Offline Offline
Newbie
*
Karma: 0
Posts: 43
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Stavo pensando la stessa cosa, ora vedo di aggiungerli  smiley-grin
grazie per i suggerimenti

EDIT:
aggiunto ed in effetti nel monitor da spento, ma le luci non si spengono
« Last Edit: May 02, 2013, 01:03:27 pm by peenieman » Logged

Il fare è il miglior modo d'imparare

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4848
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Anche con il primo sketch non ti si spegnevano, vero?

Quello non credo sia un problema di software ma di hardware. Non so bene come consigliarti.
Mi sembra di aver letto che per spegnere non basta portare a 0.

Prova comunque a fare i vari    analogWrite (r1, 1);    non proprio a 0 ma quasi per spegnere. E' una prova.
Logged

my name is IGOR, not AIGOR

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4848
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dopo i vari suggerimenti, sarebbe meglio allegassi di nuovo la tua ultima versione.
Mi sono un pò perso, forse ho visto un errore ma non son sicuro.
Logged

my name is IGOR, not AIGOR

La Spezia
Offline Offline
Newbie
*
Karma: 0
Posts: 43
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Con il primo sketch era l'unica cosa che funzionava  smiley-grin

ecco la nuova versione del codice
Code:
/*
                  PeenieLamp v0.4
 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 -
 modo5 -
 
 ultima modifica 02-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;
int RECV_PIN=12;   // pin del ricevitore

int K_MAXMODI=3; //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 = 0 ;      //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

///SETUP///

void setup()
{
 
delay(1000);
Serial.begin(9600);

  irrecv.enableIRIn();// attiva il ricevitore

  pinMode (r1,OUTPUT);
  pinMode (g1,OUTPUT);
  pinMode (b1,OUTPUT);
  pinMode (r2,OUTPUT);
  pinMode (g2,OUTPUT);
  pinMode (b2,OUTPUT);

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

///MODALITA'///

void modo0()
{ if (PP==HIGH)
  {   analogWrite (r1, lumi);
      analogWrite (g1, lumi);
      analogWrite (b1, lumi);
      analogWrite (r2, lumi);
      analogWrite (g2, lumi);
      analogWrite (b2, lumi);
      Serial.print("Modo 0: lumi="); Serial.println(lumi);
      delay(500);
  }
  else
  { analogWrite (r1, 0);
    analogWrite (g1, 0);
    analogWrite (b1, 0);
    analogWrite (r2, 0);
    analogWrite (g2, 0);
    analogWrite (b2, 0);
    Serial.print("Modo 0: spento");
  }
}


void modo1()  {
         
    analogWrite (r1, 255);
    analogWrite (g1, 0);
    analogWrite (b1, 255);
    analogWrite (r2, 255);
    analogWrite (g2, 0);
    analogWrite (b2, 255);
   
  }



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

///MAIN LOOP///

void loop()  {

  if (irrecv.decode(&results)) {

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

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

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

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

    // tasto>>premuto
    if (results.value==  Kffw){
      if(modo< K_MAXMODI ){
        modo = modo +1;
      }
      else{
        modo = 0;
      }
    }
    irrecv.resume();
  }
  switch (modo) {
  case 0:
    if (PP==HIGH){
      modo0();
    }
     
    break;
  case 1:
    if(PP==HIGH){
      modo1();
    }
    break;
  case 2 :
    if(PP==HIGH){
      modo2();
    }
    break;
    case 3 :
    if(PP==HIGH){
      modo3();
    }
  }
}
Logged

Il fare è il miglior modo d'imparare

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4848
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bene, allora avevo visto giusto:
Code:
...
switch (modo) {
  case 0:
    if (PP==HIGH){
      modo0();
    }...

Dai, dimmi dove hai scritto la strunzata... prova a ragionartela
sta in quelle righe, ricorda come è fatta la modo0()     smiley-zipper
« Last Edit: May 02, 2013, 03:03:48 pm by nid69ita » Logged

my name is IGOR, not AIGOR

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 86
Posts: 4848
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Anche questo non mi risulta molto:
Code:
if(modo>K_MAXMODI)
{ modo = modo-1;
}
else
{ modo = K_MAXMODI;
}

invece cosi si:
Code:
 modo = modo-1;
  if(modo<0) modo = K_MAXMODI;     // puoi anche scrivere tutti su riga senza {} se solo 1 istruzione


Code:
if(modo< K_MAXMODI )
{ modo=modo+1;    
}
else
{ modo=0;
}
Code:
modo=modo+1;      // puoi anche scrivere:           modo++;
if(modo>K_MAXMODI) modo=0;
Logged

my name is IGOR, not AIGOR

La Spezia
Offline Offline
Newbie
*
Karma: 0
Posts: 43
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grandioso, così mi piace.
Si impara meglio, si allena il cervello a ragionare ed è molto più divertente smiley-grin:D:D

.....nello switch devo dirgli di spegnere, e così per tutti i colori giusto?
Logged

Il fare è il miglior modo d'imparare

Pages: [1] 2 3 4   Go Up
Jump to: