Bonsoir
J'essai au cours de mon projet de subdiviser les étapes. Cette fois je souhaiterait dédier un potentiomètre qui fait varier un nombre entre 0 et 100 gouttes. une fois ceci fait 3 autres potentiomètres représentant 3 couleurs différentes font varier le nombre de goutte de chaque couleur sans dépasser le nombre fixé par le premier potentiomètre.
const byte pinPotQuantiteCouleur = A0;
const byte pinPotJaune = A1;
const byte pinPotRouge = A2;
const byte pinPotBleu = A3;
const int minPotQuantiteCouleur = 0;
const int maxPotQuantiteCouleur = 1023;
const int minPotJaune = 0;
const int maxPotJaune = 1023;
const int minPotRouge = 0;
const int maxPotRouge = 1023;
const int minPotBleu = 0;
const int maxPotBleu = 1023;
int ratio(int nb1, int nb2, int nb3, int nb4) {
if ((nb1 == 0) && (nb2 == 0)) return 0;
return (nb1 * nb2) / (nb2 + nb3 + nb4);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
int quantiteCouleur = constrain(map(analogRead(pinPotQuantiteCouleur),minPotQuantiteCouleur,maxPotQuantiteCouleur,0,100),0,100);
int jaune = constrain(map(analogRead(pinPotJaune), minPotJaune, maxPotJaune, 0, quantiteCouleur), 0, quantiteCouleur);
int rouge = constrain(map(analogRead(pinPotRouge), minPotRouge, maxPotRouge, 0, quantiteCouleur), 0, quantiteCouleur);
int bleu = constrain(map(analogRead(pinPotBleu), minPotBleu, maxPotBleu, 0, quantiteCouleur), 0, quantiteCouleur);
Serial.print("Nb de goutte(s): "); Serial.print(quantiteCouleur);
Serial.print(" jaune: "); Serial.print(ratio(quantiteCouleur, jaune, rouge, bleu)); Serial.print(" goutte(s)");
Serial.print(" rouge: "); Serial.print(ratio(quantiteCouleur, rouge, jaune, bleu)); Serial.print(" goutte(s)");
Serial.print(" bleu: "); Serial.print(ratio(quantiteCouleur, bleu, rouge, jaune)); Serial.println(" goutte(s)");
delay(700);
}
Le programme fonctionne presque comme voulu toutefois je suis confronté à deux désagréments: Le premier est que je me retrouve avec des "-1" partout lorsque je fait varier les potentiomètres dédiés aux couleurs au minimum alors que je devrait avoir des "0".

Et le deuxième est que je n'arrive pas à afficher des nombres dont la somme est égale à la valeur du potentiomètre dédié aux nombres de gouttes comme par exemple: 100=62+19+19

Par quels moyens pourrait je, si possible résoudre au moins le premier soucis ?
Cordialement

