Sortie analogique avec AOP LM358P

Bonjour à tous,

J’espère que je suis au bon endroit pour rédiger ma demande d’aide.

Je suis sur un projet pour réaliser un karting électrique pour mon petit-fils (2 ans de travail) et je sèche sur un problème que j’aimerai exposé.

Pour réaliser mon kart électrique j’ai fait l’acquisition d’une carte contrôleur chinoise avec un inverseur de rotation et un potentiomètre marche/arrêt et réglage de la vitesse de rotation du moteur.

Pour pouvoir installer plus facilement la pédale d’accélération, j’ai voulu remplacer le potentiomètre par une pédale à effet Hall (PEH), mais je me suis vite aperçu que le plage de fonctionnement de la pédale effet Hall est de 0.8 à 4,11 V alors que mon potentiomètre à une plage de 0 à 5 V. Comme j’utilise une carte Arduino Uno pour le fonctionnement des capteur US, je me suis dit que je pouvais utiliser la fonction map pour modifier la plage de fonctionnement de la PEH.

L’idée était d’injecté la sortie du potentiomètre dans l’entrée analogique A0 de la carte Arduino et de récupérer une sortie modulé PWM en pin 3~. Si avec le tensiomètre je mesure évidement une plage de sortie entre 0 et 5V, lorsque je tente de la connecter à l’entrée de mon potentiomètre j’obtiens soit 0 soit 5 V au max mais rien en intermédiaire.

J’ai donc après avoir beaucoup lu tenter de faire une sortie analogique avec un AOP LM358P branché en mode suiveur et en alimentant mon LM358P avec gnd en V- et +12 en V+ puisque mon kart est alimenté en 12V. Comme ma tension d’alimentation (+12V) est proche de la sortie (+5V) c’est pourquoi j’ai opté pour le LM358 et P car il avait 8 pattes en pas de 2.54 pour le monter sur un circuit imprimé. J’ai mis une résistance de 15 kOhms et une capacité de 1 µF (je viens de me rendre compte que j’ai sur mon entrée non inverseuse et connecté l’entrée inverseuse à l’output pour avoir un schéma en suiveur de tension

Le soucis est que la tension de sortie n’est pas très stable et qu’elle oscille pas mal.

Ma question faudrait-il également qu’en sortie de mon LM358P je mettes une résistance de 15kOhms et une capacité de 1 µF pour qu’elle soit un peu plus stable.

J’avoue que ce n’est pas la programmation ici qui me pose problème mais plutôt le schéma électronique.

Je joins le montage tel que je l’ai réalisé en espérant

Merci pour votre aide et vos réponses

Amicalement

Papybricolo

Schéma conversion pédale potentiomètre.pdf (195 KB)

Bonjour,

C'est quoi ton capteur à effet hall?
Il y a deux type de capteur:

  • les capteurs tout ou rien qui passent de l'état bas à l'état haut quand il y a un champ magnétique suffisant.
  • le capteurs analogiques dont la tension de sortie varie en fonction du champ.

Ce qui m'étonne un peu c'est que ton capteur varie de 0.8 à 4.11. Le plus souvent la tension au repos est 2.5V et elle augmente ou diminue suivant qu'on présente le pole nord ou sud.

J’essaye de remettre dans l’ordre :
Pédale à effet haul : il nous faut la référence du CI à l’intérieur ou toute forme de doc sur ce produit sinon on va encore recommencer une séance boule de cristal fêlée en nous livrant à des suppositions.

j’ai fait l’acquisition d’une carte contrôleur chinoise avec un inverseur de rotation

et un potentiomètre marche/arrêt et réglage de la vitesse de rotation du moteur.

? ?
Liens cliquables (avec l’icone chaîne) vers la doc de cet ensemble.

L’idée était d’injecté la sortie du potentiomètre dans l’entrée analogique A0 de la carte Arduino et de récupérer une sortie modulé PWM en pin 3~.

Tu utilises le potentiomètre ou la pédale ou les deux ?
L’ampli LM358 sert servirait à “lisser” la PWM pour avoir un signal continu propre.
Tel que câblé l’ampli n’intervient pas dans le filtrage, il fait juste une adaptation d’impédance=> entrée infinie et sortie à 0 ohms.
Sur quelle borne du potentiomètre est raccordée la sortie de l’ampli ?
Le potentiomètre est-il hors circuit ou est-il toujours actif ?

Sans complément d’information sur le câblage je crains que cela se morde la queue.
Mais ce n’est peut-être que juste un défaut de précision dans l’exposé.

Le soucis est que la tension de sortie n’est pas très stable et qu’elle oscille pas mal.

Ces montages suiveurs sont réputés pour être instables car c’est le montage qui donne le maximum de bande passante.
Dans l’état actuel des informations je ne vois pas l’utilité de cet ampli, voir remarque précédente. Il pourrait être câblé en montage intégrateur pour faire le filtre passe bas.

Dernier point : heureusement que le LM358 est alimenté en +12V car cet ampli n’est pas rail + coté sortie et a une tension de déchet de 1,4V.
C’est à dire qu’alimenté sous :
5V ==> Vs ne peut pas dépasser 3,6V
12V ==> Vs ne peut pas dépasser 10,6V

Bonjour

Désolé pour ma réponse un peu tardive j'avais du mal à trouver où était mon post...

Déjà merci pour les réponses et désolé je ne savais pas trop quoi vous fournir comme infos, ne voulant pas surcharger trop mon post. Mais je suppose que l'absence d'info est tout aussi irritante...

Voici mes compléments d'information

Pour Kamill :

Ma pédale à effet Hall fonctionne en capteur analogique avec une tension qui varie en fonction du champ: l'alimentation est de 5 V et la sortie selon l'appui sur la pédale varie de 0.8 à 4.2

Pour 68tjs

Voici les liens :

carte contrôleur :

pédale effet Hall :

PS : je n'arrive pas à rendre le lien cliquable quand je clique sur l'icône chaîne rien ne se passe sur mon ordi (au début une fenêtre s'ouvrait pour insérer l'URL mais le lien n'était pas cliquable pour autant)

"Sur quelle borne du potentiomètre est raccordée la sortie de l'ampli ?"
J'ai raccordé la sortie de l'ampli sur la borne du milieu du potentiomètre.

"Tel que câblé l'ampli n'intervient pas dans le filtrage, il fait juste une adaptation d'impédance=> entrée infinie et sortie à 0 ohms."
Je n'ai pas assez de connaissance pour comprendre ce commentaire désolé

Le potentiomètre est-il hors circuit ou est-il toujours actif ?
Je pense que le potentiomètre est toujours actif avec d'ailleurs un mode de fonctionnement inversé c'est à dire que pour une valeur de 5V le moteur est à l'arrêt et pour une valeur de 0V le moteur tourne au maximum.

En fait je tente de remplacer le potentiomètre par la pédale à effet Hall. Mais à priori le potentiomètre avait une plage de fonctionnement de 0 à 5V alors que la pédale à effet Hall n'a qu'une plage de 0.8 à 4.2 et lorsque je branche la pédale en directe la plage de rotation de mon moteur (de 0 à 100%) sur l'écran ne fonctionne que de 20 à 80% environ

Tout ce que je peux dire c'est qu'en utilisant le montage de cette sorte, la tension qui sort de la pédale à effet Hall oscille et que la rotation de mon moteur est hachée.

Je voulais juste savoir si le fait de modifier les valeurs de la capacité ou de la résistance ou si je rajoutais une capacité et une résistance à la sortie de la pédale à effet Hall avant l'entrée analogique sur la carte Arduino pouvait stabiliser la vitesse de rotation du moteur.

papybricolo:
Le soucis est que la tension de sortie n'est pas très stable et qu'elle oscille pas mal.

Ma question faudrait-il également qu'en sortie de mon LM358P je mettes une résistance de 15kOhms et une capacité de 1 µF pour qu'elle soit un peu plus stable.

Tu as plusieurs méthodes pour réduire l'ondulation:

  • Tu peux mettre un deuxième étage de filtrage comme tu le suggère
  • Tu peux augmenter le condensateur C1
    L'inconvénient de ces méthodes est que ça introduit un retard.
  • La méthode que je te conseille c'essayer est d'augmenter la fréquence du pwm, comme ça le filtrage sera plus efficace.
    Pour augmenter la fréquence à 31kHz
  TCCR2B = TCCR2B & 0b11111000 | 0b00000001; // division par 1 -> fréquence pwm 31372.55 Hz

Merci Kamill pour ta réponse,

Désolé pour la confusion dans mon post précédent que j'ai fait avant de lire le tiens.

Je rajoute une capacité et une résistance à la sortie de mon AOP et éventuellement j'augmente la valeur de la capacité de C1

En parallèle j'augmente la fréquence de la PWM

J'ai pas tous les éléments pour faire ces modifications mais je vais tâcher de me les procurer et faire des essais pour voir comment cela réagit et vous rapporte cela dans mon prochain post

Pour 68tjs :
Je viens de revoir le schéma que je vous ai envoyé et je me suis rendu compte que j'avais déplacé les entrées du potentiomètre pour rendre le schéma plus compréhensible, mais du coup je suppose que par rapport aux normes électroniques, j'ai modifié les entrées du potentiomètre : en fait je connecte bien la sortie de mon AOP à la l'entrée qui correspond à la patte du milieu du potentiomètre (Désolé de ces erreurs de débutants)

Merci pour vos réponses et sachez que je tâcherai d'être plus vigilant dans mes prochains posts

Amicalement

Papybricolo

Déjà merci pour vos lumières

Augmente simplement la fréquence du pwm. Avec la résistance et le condensateur que tu as mis, je pense que ça sera suffisant.

“Sur quelle borne du potentiomètre est raccordée la sortie de l’ampli ?”
J’ai raccordé la sortie de l’ampli sur la borne du milieu du potentiomètre.

Donc le potentiomètre impose une tension et ses résistances dans le circuit : je pense que cela se mord la queue. Il serait préférable de mettre le potentiomètre hors circuit.

“Tel que câblé l’ampli n’intervient pas dans le filtrage, il fait juste une adaptation d’impédance=> entrée infinie et sortie à 0 ohms.”
Je n’ai pas assez de connaissance pour comprendre ce commentaire désolé

Hypothèses pour comprendre un amplificateur opérationnel :
Note c’est théorique mais la réalité est suffisamment proche de la théorie pour qu’on applique sans se poser de question.

  1. Les impédances d’entrées sur les entrées + et - sont infinies.
    Conséquence il n’entre aucun courant dans ces deux entrées.

  2. L’impédance de sortie de l’amplificateur est nulle.

  3. Le gain de l’amplificateur est infini.
    Là c’est moins évident.
    Si le gain est infini et que la tension de sortie n’est pas infinie cela implique que la différence de tension entre l’entrée “-” et l’entrée “+” est toujours nulle ==> c’est le point essentiel à comprendre.

Dans le montage suiveur que tu as câblé, la sortie est reliée directement à l’entrée moins et comme l’entrée moins est toujours égale à l’entrée plus la sortie ne fait que recopier “bêtement” l’entrée plus.
C’est pour cela que ce montage particulier s’appelle montage suiveur ou montage d’adaptation d’impédance.

Conclusion comme la sortie ne fait que recopier l’entrée, l’amplificateur n’intervient pas dans le filtrage du signal de sortie de la PWM et ne fait qu’apporter l’instabilité qui accompagne souvent ce montage.

Je connais mal ce genre d’application et pour tout dire cela ne m’intéresse pas trop mais ce que je ferais :

  1. Supprimer la liaison avec le potentiomètre pour ne plus qu’il n’interfère plus.
  2. supprimer l’AOP qui ne sert à rien.==> je pense que l’impédance d’entrée du circuit “charge” est suffisament élevée pour ne pas interférer sur le circuit RC de filtrage. Mais bon je dis cela à distance, cela n’interdit pas de le vérifier.
  3. faire une mesure analogique de la sortie de la pédale.
  4. Utiliser la fonction map() pour passer de la gamme 0,8V / 4,8V à 0V/5V. pour envoyer un rapport cyclique à la PWM.
    map() c’est une fonction de l’IDE, en gros c’est une règle de trois “avancée”.
  5. conserver bien sûr le filtrage de la PWM. Je rejoins Kamil plus la fréquence de PWM sera élevée (500 Hz ou 1kHz par défaut avec la configuration de départ arduino, 64 KHz max pour un atmega328p) plus le filtrage sera facile.

Merci pour vos réponses

Juste pour précision, j’avais bien entendu supprimer le potentiomètre et le soucis était que lorsque j’utilisais la pédale à effet Hall (à la place du potentiomètre) après avoir fait cette règle de trois avec la fonction map, en injectant le signal sur la carte contrôleur (à la place du potentiomètre) je n’arrivais pas à obtenir une régulation progressive de la rotation de mon moteur.

En fait j’ai voulue utiliser ce que j’ai lu sur ce site [ et essayer de l’appliquer à mon cas. C’est la raison qui m’a poussé à utilisé un AOP (j’avoue qu’avant je ne savais même pas que cela existait…)

Je vais essayé vos suggestions et comme dit je vous tiens au courant probablement que fin de semaine

Merci encore

Amicalement

Papybricolo](Électronique en amateur: Ajouter une sortie analogique à notre Arduino)

Une bonne sortie analogique pourrait être obtenue avec un DAC MCP4725 I2C, 12 Bits, le top.

1€ sur AliExpress.

bonjour,

Dernier point : heureusement que le LM358 est alimenté en +12V car cet ampli n'est pas rail + coté sortie et a une tension de déchet de 1,4V.
C'est à dire qu'alimenté sous :
5V ==> Vs ne peut pas dépasser 3,6V
12V ==> Vs ne peut pas dépasser 10,6V

bien vu, mais ce n'est pas ce qui m'inquiète le +
il n'est pas non plus rail à rail pour le 0V, qui risque de ne pas être obtenu, et ceci d'autant + si l'entrée de la carte est plutôt du genre pull-up -> normalement, pour la sécurité, c'est plutôt du pull down ...

Une bonne sortie analogique pourrait être obtenue avec un DAC MCP4725 I2C, 12 Bits, le top.

io, mais limité à 5V -> sera pas content le gamin

Si l'impédance d'entrée est assez grande, une solution pour résoudre le problème du 0 est de se passer d'ampli op comme le suggère 68tjs.

il n'est pas non plus rail à rail pour le 0V, qui risque de ne pas être obtenu

Si le LM358 est bien rail moins en entrée et en sortie.
Il reste quelques dizaines de mV en déchet, mais si tu regardes attentivement du coté des ampli tamponnés "rail to rail" il est même meilleurs que certains.

De toute façon un véritable ampli rail to rail cela n'existe pas.
Pour atteindre réellement le rail 0V il faut alimenter l'ampli en plus et moins V et gérer la tension de décalage d'offset. Pour le rail plus il n'y a que la solution d'une tension d'alim supérieure à la tension max requise plus la tension de déchet.

oui, à 1 volt près

Alors nous n'avons pas les mêmes sources.

Dans ma datasheet (National Semiconducteur => TI maintenant) je lis :
VOL = niveau de sortie bas pour la condition V+ = 5V et Rload = 10k

Référence Min Nominal Max
LM158, LM158A, LM258, LM358, LM358A - 5 20 mV
LM2904 - 5 100 mV

Bonjour à tous

Je vois que mon post sur les sorties analogiques anime les débats…

Je viens de voir les nouvelles suggestions et merci pour vos aides.

Je voudrai un peu vous rapporter les tests que j’ai fait avec leurs résultats : j’ai réalisé trois montages
avec filtrage simple, filtrage double et utilisation de mon AOP en changeant la valeur des capacités : 1µF, 10µF, 22µF, 47µF et en utilisant ou pas l’augmentation de fréquence de PWM comme le suggerait Kamill.

Alors pour les montages avec simple et double filtrage quelque soit la valeur de la capacité et de l’augmentation de PWM, pas moyen de modifier ma vitesse de rotation du moteur via la carte contrôleur.

En reprenant mon AOP avec le montage initial ainsi que l’augmentation de la fréquence de PWM j’obtiens une rotation proportionnelle de mon moteur… mais…

Je me suis rendu compte que la tension de sortie de AOP plafonnait à 4.6 V et du coup j’ai compris la remarque de 68tjs à propos de la tension de déchet. J’utilise une tension d’alimentation de 12V mais n’utilisant mon AOP qu’en suiveur de tension je suppose que je ne me sers que 0V -->6V et quà ma tension de 6V je dois appliquer la tension de déchet ce qui fait qu’à ma sortie je n’ai que 4.6 V (même un peu moins). Donc j’ai bien obtenu une sortie analogique avec LM358P mais qui sera limité à 4.6V en raison de la tension de déchet. M’ayant qu’une tension de 12 V à ma disposition il va falloir soit que je trouve un soit AOP qui n’aurait qu’une tension de déchet de 1V ou alors que je me tourne vers autre chose.

Et c’est là que la remarque de Hbachetti m’intéresse : j’avais vu cette possibilité avec le MCP4725 mais j’avais deux problèmes majeurs quand à son utilisation :
le premièr d’ordre matériel : avec tous les détecteurs US que je voulais mettre en place plus la détection marche avant marche arrière, il ne me reste qu’une seule sortie disponible sur ma carte arduino Uno alors que pour faire fonctionner le MCP4725 si j’ai bien compris j’avais besoin des sorties 0 et 1 de la carte Arduino mais je pourrai éventuellement supprimer un capteur US et ainsi gagner 2 sorties.

Le deuxième d’ordre programmation : j’avais du mal à comprendre la programmation nécessaire pour faire cette espèce de règle de trois entre mon entrée pédale effet Hall et la sortie du potentiomètre. J’avoue n’avoir pas trouvé assez d’exemple concret pour comprendre comment faire cette programmation avec la fonction Map. Mais j’aurai sûrement besoin de vos lumière par rapport à la programmation…

Mais dans tous les cas je pense que vais déclarer ce post résolu et en ouvrir un autre pour sortie analogique avec MCP4725 après m’être documenté pour essayer de comprendre son fonctionnement et sa programmation si j’ai bien compris le fonctionnement du forum. A bientôt sur le prochain post…

En tout cas déjà merci à tous d’avoir lu mon premier post et de m’avoir éclairé sur les problèmes rencontrés avec cet AOP

Schéma conversion pédale potentiomètre.pdf (195 KB)

Montage filtrage double.pdf (125 KB)

Montage filtrage simple.pdf (124 KB)

papybricolo:
Je me suis rendu compte que la tension de sortie de AOP plafonnait à 4.6 V et du coup j'ai compris la remarque de 68tjs à propos de la tension de déchet. J'utilise une tension d'alimentation de 12V mais n'utilisant mon AOP qu'en suiveur de tension je suppose que je ne me sers que 0V -->6V et quà ma tension de 6V je dois appliquer la tension de déchet ce qui fait qu'à ma sortie je n'ai que 4.6 V (même un peu moins). Donc j'ai bien obtenu une sortie analogique avec LM358P mais qui sera limité à 4.6V en raison de la tension de déchet. M'ayant qu'une tension de 12 V à ma disposition il va falloir soit que je trouve un soit AOP qui n'aurait qu'une tension de déchet de 1V ou alors que je me tourne vers autre chose.

Je ne comprend pas trop ce que tu veux dire avec "je suppose que je ne me sers que 0V -->6V".
Si ta tension d'alimentation est de 12V et que la tension de déchet est de 1.4V, tu peux monter jusqu'à 10.6V en sortie. Si ton ampli est monté en suiveur de tension et que l'entrée varie de 0 à 5V ta sortie variera de 0 à 5V (en fait vraisemblablement que qq dizaines de mW à 5V).

Dans l'état actuel des renseignements fournis je trouve tes informations non cohérentes.

Je ne vois pas le détail des connexions du potentiomètre / interrupteur de la carte contrôleur.
Pas de long discours, un schéma électrique. Il y a peut-être un loup de ce coté.
La limitation à 4,6V pourrait bien provenir d'une interaction avec ce potentiomètre s'il est toujours en service.
Cette limitation à 4,6V reste -telle constante quand tu tourne le potentiomètre de la carte de contrôle ?

Si l'ampli est alimenté en 12 volts il devrait accepter en entrée des tensions jusqu'à 10 V et en sortie il devrait pouvoir sortir jusqu'à 10,6V.

Bonjour

Juste pour que l’on soit bien d’accord j’ai complètement enlever le potentiomètre d’origine de ma carte contrôleur et je l’ai remplacé par la pédale à effet Hall et ce que je vous montre sur ma carte contrôleur correspond aux entrées du potentiomètre (que j’ai enlevé).

L’interrupteur switch ON/OFF permets juste de lettre la carte contrôleur sous tension.

J’ai un peu modifié mon schéma pour qu’il corresponde plus aux standards électroniques.

Concernant l’AOP, moi je ne fais que constater que ma tension de sortie plafonne à 4.6 V et je cherchais à comprendre pourquoi en rattachant la théorie et la pratique : normalement un AOP est alimenté en +V et -V normalement avec ma tension de 12 V +6V et -6V. Je n’utilise mon AOP qu’en mode suiveur de tension et je ne connecte que l’entrée non inverseuse ce qui fait qu’en raison de la tension de déchet de 1.4 V je n’obtiens que 4,6V comme tension de sortie et non pas 5 V comme attendu. J’essaye de comprendre pourquoi en sortie d’AOP je n’arrive pas à obtenir 5 V ce que je constate en pratique…

Montage avec amplificateur opérationnel.pdf (195 KB)

L'ampli op est alimenté en 0V +12V comme sur les schémas ou en 0V 6V ???