|
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;
|
|
|