Bonsoir
Je souhaiterais, à l'aide d'une arduino méga, créer un montage qui retourne certaines valeurs selon la position de plusieurs potentiomètres. Un potentiomètre est censé faire varier un nombre de goutte compris entre 0 et 90. Un autre est censé faire varier une quantité d'ingrédient liquides entre 0 et 1000ml. 5 autres potentiomètres représentants des couleurs sont censés être reliés et varié entre eux selon un pourcentage entre 0 et 100%. Pareil pour d'autres potentiomètres représentants des ingrédients liquides à part qu'ils sont au nombre de sept.
Désolé de la complexité du schéma. Les potentiomètres représentants la quantité de couleur et la quantité d'ingrédient fonctionnent bien mais les valeurs des dix autres potentiomètres refusent de varier.
const byte pinPotQuantiteCouleur = A0;
const byte pinPotQuantiteIngredient = A1;
const byte pinPotRouge = A2;
const byte pinPotBleu = A3;
const byte pinPotJaune = A4;
const byte pinPotViolet = A5;
const byte pinPotGris = A6;
const byte pinPotIngredient1 = A7;
const byte pinPotIngredient2 = A8;
const byte pinPotIngredient3 = A9;
const byte pinPotIngredient4 = A10;
const byte pinPotIngredient5 = A11;
const byte pinPotIngredient6 = A12;
const byte pinPotIngredient7 = A13;
const int minPotQuantiteCouleur = 0;
const int maxPotQuantiteCouleur = 1023;
const int minPotQuantiteIngredient = 0;
const int maxPotQuantiteIngredient = 1023;
const int minPotRouge = 0;
const int maxPotRouge = 1023;
const int minPotBleu = 0;
const int maxPotBleu = 1023;
const int minPotJaune = 0;
const int maxPotJaune = 1023;
const int minPotViolet = 0;
const int maxPotViolet = 1023;
const int minPotGris = 0;
const int maxPotGris = 1023;
const int minPotIngredient1 = 0;
const int maxPotIngredient1 = 1023;
const int minPotIngredient2 = 0;
const int maxPotIngredient2 = 1023;
const int minPotIngredient3 = 0;
const int maxPotIngredient3 = 1023;
const int minPotIngredient4 = 0;
const int maxPotIngredient4 = 1023;
const int minPotIngredient5 = 0;
const int maxPotIngredient5 = 1023;
const int minPotIngredient6 = 0;
const int maxPotIngredient6 = 1023;
const int minPotIngredient7 = 0;
const int maxPotIngredient7 = 1023;
float ratio2(float nb3, float nb4,float nb5, float nb6, float nb7) {
if ((nb3 == 0) && (nb4 == 0) && (nb5 == 0) && (nb6 == 0) && (nb7 == 0)) return 0;
return (100.0 * nb3) / (nb3 + nb4 + nb5 + nb6 + nb7);
}
int ratio3(int nb8, int nb9, int nb10, int nb11, int nb12, int nb13, int nb14) {
if ((nb8 == 0) && (nb9 == 0)&& (nb10 == 0)&& (nb11 == 0)&& (nb12 == 0)&& (nb13 == 0)&& (nb14 == 0)) return 0;
return (100.0 * nb8) / (nb8 + nb9 + nb10 + nb11 + nb12 + nb13 + nb14);
}
void setup() {
Serial.begin(115200);
}
void loop() {
int quantiteCouleur = constrain(map(analogRead(pinPotQuantiteCouleur),minPotQuantiteCouleur,maxPotQuantiteCouleur,0,90),0,90);
int quantiteIngredient = constrain(map(analogRead(pinPotQuantiteIngredient),minPotQuantiteIngredient,maxPotQuantiteIngredient,0,1000),0,1000);
float rouge = constrain(map(analogRead(pinPotRouge), minPotRouge, maxPotRouge, 0, quantiteCouleur), 0, 100);
float bleu = constrain(map(analogRead(pinPotBleu), minPotBleu, maxPotBleu, 0, quantiteCouleur), 0, 100);
float jaune = constrain(map(analogRead(pinPotJaune), minPotJaune, maxPotJaune, 0, quantiteCouleur), 0, 100);
float violet = constrain(map(analogRead(pinPotViolet), minPotViolet, maxPotViolet, 0, quantiteCouleur), 0, 100);
float gris = constrain(map(analogRead(pinPotRouge), minPotRouge, maxPotRouge, 0, quantiteCouleur), 0, 100);
int ingredient1 = constrain(map(analogRead(pinPotIngredient1), minPotIngredient1, maxPotIngredient1, 0, quantiteIngredient), 0, 100);
int ingredient2 = constrain(map(analogRead(pinPotIngredient2), minPotIngredient2, maxPotIngredient2, 0, quantiteIngredient), 0, 100);
int ingredient3 = constrain(map(analogRead(pinPotIngredient3), minPotIngredient3, maxPotIngredient3, 0, quantiteIngredient), 0, 100);
int ingredient4 = constrain(map(analogRead(pinPotIngredient4), minPotIngredient4, maxPotIngredient4, 0, quantiteIngredient), 0, 100);
int ingredient5 = constrain(map(analogRead(pinPotIngredient5), minPotIngredient5, maxPotIngredient5, 0, quantiteIngredient), 0, 100);
int ingredient6 = constrain(map(analogRead(pinPotIngredient6), minPotIngredient6, maxPotIngredient6, 0, quantiteIngredient), 0, 100);
int ingredient7 = constrain(map(analogRead(pinPotIngredient7), minPotIngredient7, maxPotIngredient7, 0, quantiteIngredient), 0, 100);
Serial.print("Qte couleur:"); Serial.print(quantiteCouleur); Serial.print(" gouttes ");
Serial.print("Qte ingredient:"); Serial.print(quantiteIngredient); Serial.print("ml ");
Serial.print("rouge:"); Serial.print(ratio2(rouge, bleu, jaune, violet, gris)); Serial.print("% ");
Serial.print("bleu:"); Serial.print(ratio2(bleu, rouge, jaune, violet, gris)); Serial.print("% ");
Serial.print("jaune:"); Serial.print(ratio2(jaune, bleu, rouge, violet, gris)); Serial.print("% ");
Serial.print("violet:"); Serial.print(ratio2(violet, bleu, jaune, rouge, gris)); Serial.print("% ");
Serial.print("gris:"); Serial.print(ratio2(gris, bleu, jaune, violet, rouge)); Serial.print("% ");
Serial.print("ingredient1:"); Serial.print(ratio3(ingredient1, ingredient2, ingredient3, ingredient4, ingredient5, ingredient6, ingredient7)); Serial.print("% ");
Serial.print("ingredient2:"); Serial.print(ratio3(ingredient2, ingredient1, ingredient3, ingredient4, ingredient5, ingredient6, ingredient7)); Serial.println("% ");
Serial.print("ingredient3:"); Serial.print(ratio3(ingredient3, ingredient2, ingredient1, ingredient4, ingredient5, ingredient6, ingredient7)); Serial.print("% ");
Serial.print("ingredient4:"); Serial.print(ratio3(ingredient4, ingredient2, ingredient3, ingredient1, ingredient5, ingredient6, ingredient7)); Serial.print("% ");
Serial.print("ingredient5:"); Serial.print(ratio3(ingredient5, ingredient2, ingredient3, ingredient4, ingredient1, ingredient6, ingredient7)); Serial.print("% ");
Serial.print("ingredient6:"); Serial.print(ratio3(ingredient6, ingredient2, ingredient3, ingredient4, ingredient5, ingredient1, ingredient7)); Serial.print("% ");
Serial.print("ingredient7:"); Serial.print(ratio3(ingredient7, ingredient2, ingredient3, ingredient4, ingredient5, ingredient6, ingredient1)); Serial.println("% ");
delay(1000);
}
J'ai changé le type de variable pour les ingrédients et couleurs, ainsi que dans les fonctions pour voir ce que le résultat donnerai dans le moniteur série mais toujours rien. Qu'est-ce qui ne vas pas selon vous ?
Cordialement