Vous avez sans doute compris qu'en sortie du calcul PID, vous aurez une valeur que vous aurez "normalisée" pour qu'elle se situe entre 0 et 255, et affectée à une variable nommée "newV", par exemple. Il vous suffira d'écrire:
analogWrite(motorPin, newV);
La tension résultante mettra du temps à changer à cause de vos filtres en sortie PWM, "constantes" qui devrait intervenir dans votre calcul PID. Noter qu'en fonction de l'impédance d'entrée (ou courant de polarisation) de l'entrée analogique de la pompe vous pourriez avoir à amplifier (gain 1, aussi appelé buffeuriser) le signal issu de votre filtre, Dans ce cas, la sortie de l'ampli utilisé doit pouvoir varier de 0 à 5 volts ("rail to rail").
Le module à base de PCF8591 est une solution plus simple si l'électronique n'est pas votre tasse de thé. Il y a franchement moins cher que ce que propose votre lien : Aliexpress, mais il y a du délais à la livraison.
Franchement, je me demande s'il ne serait pas plus intéressant de communiquer RS232 ou RS485 avec la pompe. Avec le module analogique, vous aurez à dealer avec l'I2C. En envisageant un échange digital avec la pompe, la commande E (Manuel page 7-11) devrait Être a action immédiate, et ainsi le calcul PID simplifié. Au pire aurez-vous à entrer en contact avec le distributeur ou fabricant de la pompe pour avoir des détails. Vous ne devriez pas hésiter, car ces gens devrait être logiquement intéressés par votre projet !
Partager