home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Informatica ed Elettronica
Dedicato all'informatica per l'elettronica. Un posto in cui scambiarsi consigli nell'utilizzo di applicazioni legate al nostro hobby o per condividere del software per applicazioni elettroniche. (PS: E' vietato inserire link a materiale "pirata")


semplificazione programma arduino
     
Autore Messaggio opzioni
daniele1979





postato il:
27.10.2022, alle ore 15:34
semplificazione programma arduino 

salve a tutti , ho queste condizioni , che sono ripetitive,
  if ((seleziona == 1) && (ventola_A[1] < 500)) {
         ventola_A[1] = ventola_A[1] + 5;
      }
       // if ((seleziona == 2) && (ventola_A[2] < 500)) {
      // /   ventola_A[2] = ventola_A[2] + 5;
       }
       // if ((seleziona == 3) && (ventola_A[3] < 500)) {
       //   ventola_A[3] = ventola_A[3] + 5;
       // }
      //  if ((seleziona == 4) && (ventola_A[4] < 500)) {
      //    ventola_A[4] = ventola_A[4] + 5;
      //  }
      //  if ((seleziona == 5) && (ventola_A[5] < 500)) {
      //    ventola_A[5] = ventola_A[5] + 5;
     //   }
     //   if ((seleziona == 6) && (ventola_A[6] < 500))  {
     //     ventola_A[6] = ventola_A[6] + 5;
       // }
      //}
      if (Page == 201) {
 
        if ((seleziona == 7) && (ventola_B[1] < 500)) {
          ventola_B[1] = ventola_B[1] + 5;
        }
        if ((seleziona == 8) && (ventola_B[2]  < 500)) {
          ventola_B[2] = ventola_B[2] + 5;
        }
        if ((seleziona == 9) && (ventola_B[3] < 500)) {
          ventola_B[3] = ventola_B[3] + 5;
        }
        if ((seleziona == 10) && (ventola_B[4] < 500)) {
          ventola_B[4] = ventola_B[4] + 5;
        }
        if ((seleziona == 11) && (ventola_B[5] < 500)) {
          ventola_B[5] = ventola_B[5] + 5;
        }
        if ((seleziona == 12) && (ventola_B[6] < 500)) {
          ventola_B[6] = ventola_B[6] + 5;
        }
      }
      if (Page == 202) {
        if ((seleziona == 30) && (luce_A[1] < 255)) {
          luce_A[1] = luce_A[1] + 5;
        }
        if ((seleziona == 31) && ( luce_A[2] < 255)) {
          luce_A[2] =  luce_A[2] + 5;
        }
        if ((seleziona == 32) && ( luce_A[3] < 255)) {
          luce_A[3] =  luce_A[3] + 5;
        }
        if ((seleziona == 33) && ( luce_A[4] < 255)) {
          luce_A[4] =  luce_A[4] + 5;
        }
        if ((seleziona == 34) && ( luce_A[5] < 255)) {
          luce_A[5] =  luce_A[5] + 5;
        }
        if ((seleziona == 35) && ( luce_A[6] < 255)) {
          luce_A[6] =  luce_A[6] + 5;
        }
      } 

volevo usare un comando for, ma non ci riesco.
e' corretto come modo??
rcc.roberto



[pagine pubblicate]

postato il:
27.10.2022, alle ore 16:42
Un ciclo for non mi pare che ci stia , ma sei vuoi farlo un po' più elegante puoi utilizzare: switch...case
rcc.roberto



[pagine pubblicate]

postato il:
27.10.2022, alle ore 16:43
https://www.maffucci.it/2019/04/06/appunti-di-programmazione…
rcc.roberto



[pagine pubblicate]

postato il:
27.10.2022, alle ore 16:54
Poi per verificare che non superi 500 usi min()
Variabile = min((variabile+5),500)
daniele1979





postato il:
27.10.2022, alle ore 17:13
grazie, allora ho cercato di capire e ho provato cosi
  if ((seleziona == seleziona) && (ventola_A[seleziona] < 500)) {
         ventola_A[seleziona] = ventola_A[seleziona] + 5;
      } 

daniele1979





postato il:
27.10.2022, alle ore 17:16
oppure anche cosi
io sicuramente ho fatto un schifo
rcc.roberto



[pagine pubblicate]

postato il:
27.10.2022, alle ore 17:18
Non devi usare if devi usare switch...... case1 ....case2 ....case3

Leggi il link.


Quello per la variabile seleziona


Poi per la variabile ventola, come ti ho scritto nel secondo intervento
rcc.roberto



[pagine pubblicate]

postato il:
27.10.2022, alle ore 17:28
Switch (seleziona) {
case 7;
Ventola1 = min(ventola1+5,500);
break;
case 8;
Ventola2 = etc;
break;
case 9;
Ventola 3 = etcc;
break;
....
.....
}




daniele1979





postato il:
27.10.2022, alle ore 18:01
   if (Page == 200) {
        switch (seleziona) {
          case 1:
            ventola_A[1] = min(ventola_A[1] + 5, 500);
            break;
          case 2:
            ventola_A[2] = min(ventola_A[2] + 5, 500);
            break;
          case 3:
            ventola_A[3] = min( ventola_A[3] + 5, 500);
            break;
          case 4:
            ventola_A[4] = min( ventola_A[4] + 5, 500);
            break;
          case 5:
            ventola_A[5] = min( ventola_A[5] + 5, 500);
            break;
          case 6:
            ventola_A[6] = min( ventola_A[6] + 5, 500);
            break;
        }
      }
      if (Page == 201) {
        int conto = 0;
        conto = seleziona - 6;
        switch (conto) {
          case 1:
            ventola_B[1] = min(ventola_B[1] + 5, 500);
            break;
          case 2:
            ventola_B[2] = min(ventola_B[2] + 5, 500);
            break;
          case 3:
            ventola_B[3] = min( ventola_B[3] + 5, 500);
            break;
          case 4:
            ventola_B[4] = min( ventola_B[4] + 5, 500);
            break;
          case 5:
            ventola_B[5] = min( ventola_B[5] + 5, 500);
            break;
          case 6:
            ventola_B[6] = min( ventola_B[6] + 5, 500);
            break;
        }



ho fatto cosi
daniele1979





postato il:
27.10.2022, alle ore 18:03

 switch (seleziona) {
        case 1:
          ventola_A[1] = max(ventola_A[1] - 5, 100);
          break;
        case 2:
          ventola_A[2] = max(ventola_A[2] - 5, 100);
          break;
        case 3:
          ventola_A[3] = max(ventola_A[3] - 5, 100);
          break;
        case 4:
          ventola_A[4] = max(ventola_A[4] - 5, 100);
          break;
        case 5:
          ventola_A[5] = max(ventola_A[5] - 5, 100);
          break;
        case 6:
          ventola_A[6] = max(ventola_A[6] - 5, 100);
          break;
 
segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale