Arduino Forum

International => Français => Topic started by: P1GOU1 on Feb 28, 2018, 04:51 pm

Title: PWM imprécis ?
Post by: P1GOU1 on Feb 28, 2018, 04:51 pm
Bonjour à tous,

Je souhaite commander une pompe avec une sortie PWM de mon arduino UNO, or, lorsque j'y parviens, l'évolution de la rotation de ma pompe n'est pas linéaire alors que mes sorties pwm en tension paraissent l'être avec le voltmètre bien sur...
J'ai tenté de changer les fréquences de la pwm de plusieurs sorties, sans grand succès, si ce n'est obtenir une rotation de la pompe moins "vacillante" en arrivant après les 3921.16 Hz.

Voici la pompe en question : http://www.gilson.com/fr/AI/Products/8.47/Default.aspx#.WpbOCXyDO00

Je pensais m'orienter, si aucune solution avec les pwm, sur ce CNA : http://www.dx.com/fr/p/pcf8591-ad-da-analog-to-digital-digital-to-analog-converter-module-w-dupont-cable-deep-blue-336384?tc=EUR&ta=FR&gclid=EAIaIQobChMIyaOWvfrI2QIVkpkbCh1I0g2NEAQYASABEgKOx_D_BwE

Qu'en dites vous ?


J'en profite aussi d'être la pour une question concernant mon programme Arduino, je souhaite pouvoir choisir la vitesse de rotation de ma pompe entre avec des intervalles de 1 entre 0 et 255, malheureusement je n'arrive qu'à faire un programme à 10 vitesses que voici :



 
Code: [Select]
if(Serial.available()) //Si le port serie est disponible
{
int ch = Serial.read();

if (isdigit(ch)) //Si ch est un nombre alors
{
  int vitesse = map(ch, '0', '9', 0, 255); //cette fonction convertie la valeur entrée au clavier en valeur comprise entre 0 et 255
  analogWrite(motorPin, vitesse); //Commande la vitesse du moteur en fonction de la valeur entrée au clavier
  Serial.println(vitesse); //laisse choisir une vitesse à l'operateur
  }
else
{
  Serial.print("caractère inattendu : "); //Demande à l'opérateur d'entrer une valeur correcte
  Serial.println(ch);



}


Merci pour vos futurs nombreuses réponses ^^

Title: Re: PWM imprécis ?
Post by: al1fch on Feb 28, 2018, 05:44 pm
Bonjour

1) ordre de grandeur de la non linéarité constatée?  La linéarité est elle acceptable en commandant la pompe par une tension issue d'une alimentation de laboratoire ?

2) configuration en commande par tension ? (la notice évoque une commande alternative par résistance variable) Comment se fait le changement de commande externe (tension/résistance) ?
(http://forum.arduino.cc/index.php?action=dlattach;topic=532263.0;attach=247476)

3) le signal PWM est-il appliqué tel quel (signal périodique ) ou filtré (passe bas RC par exemple) ?

(la pompe en commande extérieure par tension n'accepte peut être pas une tension périodique.......ou une tension envoyée par une source de résistance interne élevée.)

4° le DAC I2C d'un PCF8591 pourrait être une bonne alternative, simple et économique.
Title: Re: PWM imprécis ?
Post by: _pepe_ on Mar 01, 2018, 12:18 am
Supprimé
Title: Re: PWM imprécis ?
Post by: 68tjs on Mar 01, 2018, 10:15 am
Donc la conclusion est que si cela fonctionait "mieux" à fréquence de PWM élévée c'est parce qu'un filtrage "naturel" s'effectuait avec les éléments parasites (capacité parasite aux entrées/sorties et résistance et inductance des fils de liaison).

PCF8591 ou filtrage ?
Tout dépend de la vitesse de réaction à la commande.
Le filtrage passe bas est un intégrateur donc il apporte un retard.
Plus le signal doit être propre plus le retard sera grand.
Le Dac lui délivre son signal en un temps plus bref.

La pompe étant un organe mécanique il est peu probable que le retard apporté par un filtrage énergique soit pénalisant mais autant le signaler.

Un filtrage énergique va imposer une résistance série de valeur assez élevée.
L'entrée de la pompe a des exigences sur la valeur maximale de résistance de source continue. Ce qui peut imposer l'utilisation d'un AOP monté en suiveur de tension pour adapter l'impédance.

Si la sortie du PCF n'a pas cette inconvénient (a vérifier dans sa datasheet) au prix ou il coûte il est AMHA  la meilleure solution.

Malgré que je penche pour le PCF une étude comparative un peu plus poussée me semble s'imposer.

Quand au RS 485, sauf bien sûr s'il apporte des possibilités supplémentaires non demandées dans la question initiale, et à ce titre il était utile d'en rappeler l'existance, il me semble bien compliqué en comparaison de la transmission d'un signal continu.
Title: Re: PWM imprécis ?
Post by: al1fch on Mar 01, 2018, 11:12 am
Bonjour

La notice de la pompe montre deux usages de son entrée analogique de commande externe
-commande par tension appliquée à cette entrée (domaine 0 à 5V)
-commande par résistance externe branchée entre cette entrée et la masse (pont diviseur formé avec une résistance interne de 68 kOhm reliée à +5V)

La notice n'évoque pas de menu de configuration permettant de passer d'un mode à l'autre.....

La résistance interne de 68kOhm  serait donc toujours connectée ... d'où l'interrogation sur la résistance interne de la source de tension externe destinée à piloter la vitesse d la pompe.

Le filtrage RC du signal périodique PWM va augmenter cette résistance interne.
Si elle reste négligeable devant 68kOhm le résultat sera peut être acceptable.  Essais indispensables ,d'autant plus qu'on ne connait pas l'ondulation tolérée par la pompe.

S'il  faut un suiveur, le montage se complique et le PCF8591 devient intéressant + ses  entrées analogiques (éventuellement en mode différentiel) pourront peut être servir...

(L'impédance de sortie du convertisseur numérique analogique du PCF8591 est inférieure à 50 Ohm sauf à proximité de VSS et VDD ou elle grimpe vers 400 Ohm)

Une belle 'bête' comme ce modèle de pompe péristaltique 'pro'mériterait une commande numérique qui comme le fait remarquer _pepe_ parait bien  documentée et ne pas mettre en oeuvre  de hardware exotique
Title: Re: PWM imprécis ?
Post by: ChPr on Mar 01, 2018, 01:28 pm
S'il est nécessaire d'avoir une bonne précision entre la vitesse de la pompe et sa commande, alors il est préférable d'utiliser un CNA plutôt qu'un signal PWM filtré.

En effet, un CAN délivre une tension qui est relativement indépendante de sa tension d'alimentation. Par contre, une sortie PWM de l'Arduino est (directement) tributaire de la tension d'alimentation de l'Arduino.

Cordialement.

Pierre
Title: Re: PWM imprécis ?
Post by: _pepe_ on Mar 01, 2018, 05:07 pm
Supprimé
Title: Re: PWM imprécis ?
Post by: trimarco232 on Mar 02, 2018, 12:08 pm

Bonjour,

la non linéarité est due au mode mixte (résistance ou tension) pour commander la pompe : on n'obtiendra pas de linéarité quoi qu'on fasse
Title: Re: PWM imprécis ?
Post by: P1GOU1 on Mar 02, 2018, 03:40 pm
J'ai monté deux filtres RC en cascade pour lisser le signal du PWM, ce qui a pu rendre la commande de la pompe suffisamment stable. Le retard du signal n'est pas vraiment un frein pour l'application que j'en aurais.

La commande par GSIOC (protocole du constructeur) de deux pompes semble imposer l'achat d'une interface de commande GSIOC qui sort du budget, ce qui explique pourquoi je me suis tourné vers la solution de l'input. (Du moins j'attends des nouvelles du fabricant pour savoir si deux adaptateurs 605 comme expliqué dans le manuel constructeur suffiraient, en cas de problèmes d'instabilité en milieu de projet).

Je vais désormais essayer la fonction parseInt() dont _pepe_ me parle pour avoir mes 256 vitesses, ET, ensuite je pourrais faire le PID en relation avec les pompes et un capteur de poids, je pense revenir ici d'ici la, le plus gros reste à venir !

Merci pour votre patience.





Title: Re: PWM imprécis ?
Post by: _pepe_ on Mar 02, 2018, 05:20 pm
Supprimé
Title: Re: PWM imprécis ?
Post by: P1GOU1 on Mar 02, 2018, 06:00 pm
Cela rajoute du travail, et mon manque de compétence pour l'instant risque de doubler voir tripler le temps de travail "classique" à sa réalisation...
Title: Re: PWM imprécis ?
Post by: P1GOU1 on Mar 02, 2018, 06:12 pm
_pepe_, j'ai du mal à mettre ta fonction parseInt() en application, je vais essayer d'incrémenter et décrémenter les vitesses ce serait plus simple...
Title: Re: PWM imprécis ?
Post by: P1GOU1 on Mar 06, 2018, 06:29 pm
J'y suis presque !

Encore un tout petit souci avec mon programme et la fonction parseInt !!!
Quand je tape 55, j'ai dans le port serie 5 (et ça fait bien tourner le moteur); à 233 il y a 33 qui ressort du port serie, en gros il me faut taper 2255 (ou nimporte quel chiffre devant la vitesse que je souhaite, et cela fonctionne, mais l'ideal est de pouvoir juste taper 233 et que ca puisse tourner à la vitesse 233... Sans oublier les ordres de fonctionnement de ma pompe ! Qu'est ce qui ne va pas :

Code: [Select]


void loop() {
 
  if (Serial.available()) //Si le port serie est disponible
{
 
int command = Serial.read();
 
if (command == 'O' || command == 'o') { //Allumage de la pompe, (S)tart
        digitalWrite(stopAndRun, LOW);
        Serial.println("Pompe On");
}
 
else if (command == 'S' || command == 's') { //Exctinction de la pompe, (S)top
        digitalWrite(stopAndRun, HIGH);
        Serial.println("Pompe Stop");
}
 
else if (command == 'H' || command == 'h') { //Sens de rotation, sens (H)oraire
        digitalWrite(rotation, HIGH);
        Serial.println("Sens Horaire");
}
 
else if (command == 'A' || command == 'a') { //Sens de rotation, sens (A)nti-horaire
        digitalWrite(rotation, LOW);
        Serial.println("Sens Anti-horaire");
}
 
    if (command >= 0 && command <= 255)  { 
    command = Serial.parseInt(); 
    Serial.println(command);
    analogWrite(motorPin, command);
}
 
}

Title: Re: PWM imprécis ?
Post by: P1GOU1 on Mar 09, 2018, 05:26 pm
Voila c'est réglé, merci à tous pour votre aide.

Désormais je vais m'attaquer au PID. Je dois asservir ma pompe à une jauge de contrainte, or,  il
n'est pas possible de faire ça avec avec un codeur, toutefois la précision de la pompe me parait suffisamment fiable (petit rappel : http://www.gilson.com/fr/AI/Products/8.47/Default.aspx#.WpbOCXyDO00), selon vous est il possible de m'attaquer à un asservissement en vitesse sans ce fameux codeur ?

Puis-je exporter mes sketchs arduino dans Processing (https://processing.org/examples/) sans aucun changement, histoire de faire une interface propre dans un fichier .exe une fois tout ça terminé ?

Bonne soirée
Title: Re: PWM imprécis ?
Post by: al1fch on Mar 09, 2018, 06:05 pm
Quote
selon vous est il possible de m'attaquer à un asservissement en vitesse sans ce fameux codeur ?
pas "d'asservisement de vitesse" sans information en retour (feedback) sur la vitesse réelle.
Sans capteur de vitesse tu ne peux que supposer que la vitesse est égale à celle définie par le biais de l'entrée analogique de la pompe
Title: Re: PWM imprécis ?
Post by: P1GOU1 on Mar 09, 2018, 06:30 pm
La vitesse de la pompe est constante, et fiable. Est il possible de tenter l'asservissement (du coup ce n'est peut être pas en "vitesse" le bon terme), de sorte que la pompe accélère un peu ou décéléré en fonction du poids de la jauge, en partant du principe que la vitesse est respectée.

Je vois qu'il est possible d'asservir un actionneur autre qu'un moteur, (pelletier, résistance chauffante...), ces derniers ont bien qu'un feedback, celui du capteur de température ?



Title: Re: PWM imprécis ?
Post by: trimarco232 on Mar 11, 2018, 11:54 am
Quote
en fonction du poids de la jauge
Bonjour,
oui, bien sûr, il faut récupérer ce poids (comment ?) et le comparer à la valeur souhaitée
Title: Re: PWM imprécis ?
Post by: P1GOU1 on Mar 12, 2018, 10:50 am
Je dois récupérer le poids avec une jauge de contrainte de ce type : https://www.gotronic.fr/art-capteur-de-force-1-kg-interface-sen0160-22707.htm

Pour laquelle j'ai déjà un programme qui me renvoi un poids relativement précis.
Title: Re: PWM imprécis ?
Post by: P1GOU1 on Mar 15, 2018, 06:09 pm
Pour être plus précis, les perturbations risquent de provenir du fait que le circuit fermé sera composée de deux pompes, (pompant mes deux poches de liquides), et ces deux pompes risquent d'être désynchronisée en vitesse l'une par rapport à l'autre.

Du coup au début ça risque de ne pas se voir, mais au bout d'un litre ou deux d'écoulement, l'une risque d'être plus remplie que l'autre, et c'est ce que je ne veux pas.

La perturbation serait donc mesurée par la perte de poids d'une poche en comparaison de l'autre avec ma jauge de contrainte (lien ci dessus), et en fonction, une des deux pompes accélère, ou décélère peu importe, pour ajuster le débit.

Voila, je suis un peu dans le vague encore avec ma problématique...
Title: Re: PWM imprécis ?
Post by: trimarco232 on Mar 16, 2018, 01:40 pm
Bonjour,
la démarche me parait sensée !
Title: Re: PWM imprécis ?
Post by: P1GOU1 on Mar 16, 2018, 09:42 pm
Mais j'ai encore un peu de mal pour trouver le chemin, haha....

J'ai pensé modifier ce programme PID destiné à l'asservissement d'un moteur sous arduino pour coller avec mes besoins, comme specifié sur ce site : http://www.ferdinandpiette.com/blog/2012/04/asservissement-en-vitesse-dun-moteur-avec-arduino/

Me lancer dans ce sens vous parait judicieux ?