• Résolu Tension de surveillance Batterie avec 18650 Battery shield


    Jeudi 9 Juillet 2020 à 08:04
    activa74

    Salut Franck, c'est A15 et non A5.

    Je viens de tester avec BandGap=6000 dans \targets\common\adc_driver.cpp et opentx.cpp.

    J'arrive bien à trimer la tension de la 18650 à 4.05 volts actuellement.

    J'ai aussi ajouter une 1kOhm en série sur A15 et maintenant c'est OK.

    Mais j'ai besoin de modifier encore 2 paramètres je pense.

    Dans le menu CONFIG RADIO de la télécommande j'ai besoin de modifier la variable min de Plage batterie car elle ne descend pas en dessous de 4.0 et Alarme Batterie qui ne peut pas être en dessous de 4.0.

     

    Est ce que tu sais ou je peux modifier ça dans le code?

    Dimanche 12 Juillet 2020 à 14:52
    Franck.A

    Bonjour

    Super ;-)

    Pour la tension mini d'accu, il faut modifier la ligne 310 du fichier /gui/menu_general_setup.cpp :
    if(attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatWarn, 30, 120); //3-12V

    Je vais d'ailleurs faire évoluer le code de cette manière, car ton idée de chargeur USB / élévateur de tension est intéressante.

     

    Franck

    Dimanche 12 Juillet 2020 à 20:55
    activa74

    Merci ça marche très bien pour régler le seuil d'alarme pour la batterie.

    Mais dans plage batterie du menu configradio de la télécommande, la limite min est toujours de 4.0.

    Je pense qu'il faudrait aussi modifier une partie du code ici:

    #if defined(BATTGRAPH)

        case ITEM_SETUP_BATT_RANGE:

          lcdDrawTextLeft(y, STR_BATTERY_RANGE);

          lcdPutsVolts(RADIO_SETUP_2ND_COLUMN, y,  90+g_eeGeneral.vBatMin, (menuHorizontalPosition==0 ? attr : 0)|LEFT|NO_UNIT);

          lcdDrawChar(lcdLastPos, y, '-');

          lcdPutsVolts(lcdLastPos+FW, y, 120+g_eeGeneral.vBatMax, (menuHorizontalPosition>0 ? attr : 0)|LEFT|NO_UNIT);

          if (attr && s_editMode>0) {

            if (menuHorizontalPosition==0)

              CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatMin, -50, g_eeGeneral.vBatMax+29); // min=4.0V

            else

              CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatMax, g_eeGeneral.vBatMin-29, +40); // max=16.0V

          }

          break;

    #endif

    pour tenir compte du graphe de la batterie. (ligne 199 du même fichier).

     

    Dimanche 12 Juillet 2020 à 21:22
    Franck.A

    Il faut regarder là où la valeur de vBatMin est codée.

    Au passage, une astuce pour naviguer facilement dans le code : avec PSpad ou NotePad++, on peut chercher dans tous les fichiers d'un dossier une chaîne de caractère.

    Dimanche 12 Juillet 2020 à 21:25
    activa74

    Oui j'ai isolé dans le code, c'est la partie au dessus, mais je ne sais pas si il faut changer le 90 en 80 ligne 202 ou le -50 en -40 ligne 207.

    Lundi 13 Juillet 2020 à 10:28
    Franck.A

    Je passerais plutôt le -50 à -60, car c'est la butée basse de la variable vBatMin quand elle est acquise (fonction CHECK_). Et comme cette variable est aussi utilisée ailleurs, il vaut mieux l'ajuster à la source.

    A tester, je n'ai pas regardé en détail les calculs.

    Lundi 13 Juillet 2020 à 15:33
    activa74

    C'est bon ça fonctionne nickel avec -60 en ligne 207:

    CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatMin, -60, g_eeGeneral.vBatMax+29); // min=3.0V

    Merci




    Vous devez être membre pour poster un message.