eocean / arduitrox

Open source arduino-based nitrox analyzer
1 stars 3 forks source link

Conditions sur bouton dans calibration manuelle #1

Open FanchGadjo opened 9 years ago

FanchGadjo commented 9 years ago

Bonjour Lionel, C'est du bon travail, et un bel effort de partager ce projet sur le net. J'aide un ami à le monter. La modification des valeurs dans la calibration manuelle ne fonctionne pas parfaitement.

Après lecture du code, il me semble que les valeurs de test pour les boutons devraient être des intervalles et non des valeurs fixes. Est-ce que je me trompe ?

D'après mes lectures, ce serait quelque chose comme ça :

  if (opmode==3) {
    lcd.setCursor(0,1);
    lcd.print("%O2 REF: ");
    lcd.setCursor(9,1);
    lcd.print(calibgas,2);
    lcd.print(" ");
    if ((analogRead(0)>=60)&&(analogRead(0)<200)&&(calibgas<99)) {
      calibgas=calibgas+1;
      delay(200);
    }
    if ((analogRead(0)<60)&&(calibgas<100)) {
      calibgas=calibgas+0.05;
      delay(200);
    }
    if ((analogRead(0)>=200)&&(analogRead(0)<400)&&(calibgas>1)) {
      calibgas=calibgas-1;
      delay(200);
    }
    if ((analogRead(0)>=400)&&(analogRead(0)<600)&&(calibgas>0.05)) {
      calibgas=calibgas-0.05;
      delay(200);
    }
  }

Je prendrai plus de temps pour proposer un commit, si besoin.

Cordialement, François

eocean commented 9 years ago

Bonjour François,

Pour ma part, je n'ai pas eu de gammes à creer sur ce projet mais il doit y avoir quelques variantes de shield afficheur/keypad.

Donc si la valeur fixe ne passe pas, il est préférable de définir un intervalle pour chaque valeur. Dans ce cas, il faut probablement aussi augmenter les valeurs des "delay()" fixées à 200 sinon les boutons seront vraisemblablement trop sensibles.

J'ai fait ce type de codage pour un autre projet avec 3 boutons piezo cablés pareil donc Je pense que le code que tu proposes est bon. Il faudra simplement tester la valeur du delay pour ajuster la sensibilité.

Cordialement,

Lionel