Aller au contenu

Acheter Bambu Lab A1

Signal PWM sur entrée analogique.


Steeve Osteen

Messages recommandés

Suite à mon travail en cours sur un système Berdair avec 2 pompes en fonctionnement décalé, j'ai besoin de connaitre le rapport cyclique du signal d'origine du ventilateur de filament afin de pouvoir ensuite le triturer sur une carte additionnelle de ma création.

La carte est basé sur un STM32 qui a des IO en 3.3V, la carte mère de ma ENDER 5 sort le signal PWM sur une sortie en 24V.

Je met donc sur le 24V une résistance pour simuler une charge et éviter un court jus sur la sortie et je mets en série un optocoupleur afin de pouvoir gérer mon signal PWM en 3.3V cette fois.

Cette partie là ne me pose à priori pas de soucis. par contre, je souhaite convertir ce signal en analogique en utilisant un filtre RC.

Le soucis est la définition de ce filtre RC, j'ai une tension de 3.3v, il me faut au maximum une intensité de 20mA à 3.3V (le microcontrôleur accepte 25mA maxi) et la férquence du signal PWM est de 500Hz.

 

@KpDp_3D m'a préconisé un rapport RC =5/Fo, mais j'ai un doute, Fo c'est la fréquence du signal PWM ?

Ce qui veut dire si je comprends bien que RC = 5/500 soit 0.01.

Sachant que R, il faudrait pour bien faire que R = 3.3/0.02 => R=150 Ohms

Cela voudrait dire qu'il faudrait une valeur C de 0.01/150 => 0.000066 f soit environ 66µf.

 

Mon raisonnement est il faut ?

Lien vers le commentaire
Partager sur d’autres sites

Salut,

La transformation d'un signal PWM en analogique est inutile dans ton cas. Tu as des entrées qui sont liées à des interruptions, autant t'en servir.😉

Sinon, tu pourrais remplacer l'optocoupleur en sortie du signal PWM de la carte de l'imprimante par un simple transistor et quelques résistances. L'arduino serait alimenté par une broche 5V de la carte mère et le 3.3V récupéré sur l'arduino pour l'utilisation du transistor précédent.

Si ça t'intéresse, je peux te faire un schéma de principe.

Modifié (le) par pommeverte
Lien vers le commentaire
Partager sur d’autres sites

il y a 8 minutes, pommeverte a dit :

Salut,

La transformation d'un signal PWM en analogique est inutile dans ton cas. Tu as des entrées qui sont liées à des interruptions, autant t'en servir.😉

Sinon, tu pourrais remplacer l'optocoupleur en sortie du signal PWM de la carte de l'imprimante par un simple transistor et quelques résistances. L'arduino serait alimenté par une broche 5V de la carte mère et le 3.3V récupéré sur l'arduino pour l'utilisation du transistor précédent.

Salut Pommeverte, merci pour ton retour.

Dans l'ordre, pour l'analogique, comme j'ai décidé de passer sous STM32 au lieu de arduino, et que les bibliothèques sont un poil complexes sur STM, passé sur une mesure analogique est plus simple. (pour la création d'un signal PWM ça par contre je sais le faire)

Pour l'optocoupleur, je suis d'accord, les deux solutions sont possibles, que ce soit en terme de cout ou de complexité. pour l'alimentation, j'arrive sur la carte en 24V et j'ai un étage d'alimentation qui me ressort le 3.3V dont j'ai besoin pour le contrôleur et le reste. je posterai le schéma kicad ce sera plus clair.

 

merci pour ton retour

Lien vers le commentaire
Partager sur d’autres sites

comme je fais un shield spécifique (pour mettre le reste de la quincaille, j'ai décidé de reprendre les bases qui sont fournis sur le net avec un STM32F103C8T6 (mais juste la puce) en me basant sur les datasheet mais surtout les cours de Phil'sLab qui donne une base solide pour faire un bluepill mais adapté au besoin, c'est à dire avec les transistors de sorties et l'opto ou le transistor d'entrée.

https://www.phils-lab.net/videos

pour l'IDE, je suis pas sectaire, je ne sais pas encore si ce sera STM32 Cube IDE ou arduino ou Vscode avec platformIO, je n'ai pas encore regardé celle qui semblait la plus facile à utiliser. En général j'utilise Arduino IDE pour Arduino et Vscode pour le C et la compilation des firmware Marlin

Modifié (le) par Steeve Osteen
Lien vers le commentaire
Partager sur d’autres sites

Salut @Steeve Osteen,

J'ai fait un test à l'arrache sur un blue pill (STM32F103C8T6 ) programmé dans Arduino IDE. Le programme (ReadPWMTo2Pump_V2.txt à renommer en ino) est basé sur un exemple Arduino: il "lit" le signal PWM sur une entrée et pilote 2 sorties PWM en fonction du rapport cyclique.

C'est uniquement un test de faisabilité puisqu'il y a de grosses lacunes (gestion des signaux toujours à 0 ou toujours à 1), mais le but était de vérifier que c'était possible.

De plus, après vérification sur le schéma de la carte V4.2.7 Creality.4.2.7.-.Schematic.22-9-21.pdf, la sortie ventilateur est bien à drain ouvert. Cela veut donc dire que tu as juste à mettre une résistance (entre 1kohm et 10Kohms) entre la sortie et le +3.3V (du port ICSP par exemple) pour avoir un signal PWM en 3.3V. Ceci suppose évidemment que les masses entre la carte-mère et le microcontrôleur soient reliées. C'est d'ailleurs cette solution que j'ai testé sur mon montage.

PS: un PIC12F683 aurait été largement suffisant pour cette application 😉.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 23 heures, pommeverte a dit :

Juste par curiosité, pourquoi tu es passé au STM32? l'arduino est déjà sur-dimensionné pour le projet 🤨.

PS: curiosité 2, le retour 😁: est-ce que tu as testé ta cintreuse? j'ai laissé un message sur ton sujet 😅

Pour l'arduino, il y a 2 paramétres qui m'ont fait changé, le premier c'est que j'ai besoin d'un générateur de PWM haute fréquence, et malgré tout ce que j'ai pu lire sur les plaquettes arduino les horlorges était en 8Bits donc pouvaient difficilement générer un signal sur 256 niveaux à plus de 10kHz ou alors des grosses configs qui sont trop cher pour mon besoin. le deuxième est que j'ai envie d'apprendre l'électronique, même si je suis pas le meilleur et de loin et j'ai trouvé pas mal de ressources pour le STM32. (sans oublier qu'un bluepill ne coute absolument rien pour le coup mais le revers de la médailles, c'est plus l'ecosystème de developpement qui est un poil plus complexe du fait du manque de communauté et de bibliothèques comme peut avoir Arduino.

 

Pour la cintreuse, elle a perdu par KO au premier round juste après avoir sonné la cloche.. du coup je dois bientôt recevoir du cuivre en 3, 4 et 5mm de diamètre, après l'avoir recuit et protéger contre les affaissements, ça devrait le faire.

il y a 11 minutes, pommeverte a dit :

Salut @Steeve Osteen,

J'ai fait un test à l'arrache sur un blue pill (STM32F103C8T6 ) programmé dans Arduino IDE. Le programme (ReadPWMTo2Pump_V2.txt à renommer en ino) est basé sur un exemple Arduino: il "lit" le signal PWM sur une entrée et pilote 2 sorties PWM en fonction du rapport cyclique.

C'est uniquement un test de faisabilité puisqu'il y a de grosses lacunes (gestion des signaux toujours à 0 ou toujours à 1), mais le but était de vérifier que c'était possible.

De plus, après vérification sur le schéma de la carte V4.2.7 Creality.4.2.7.-.Schematic.22-9-21.pdf, la sortie ventilateur est bien à drain ouvert. Cela veut donc dire que tu as juste à mettre une résistance (entre 1kohm et 10Kohms) entre la sortie et le +3.3V (du port ICSP par exemple) pour avoir un signal PWM en 3.3V. Ceci suppose évidemment que les masses entre la carte-mère et le microcontrôleur soient reliées. C'est d'ailleurs cette solution que j'ai testé sur mon montage.

PS: un PIC12F683 aurait été largement suffisant pour cette application 😉.

je vais regarder, je ne maitrise pas du coup encore la techno des mosfet, je potasse mais pas simple.

pour le PIC, je connais pas du tout, mais pour être franc, c'est juste la fréquence du signal PWM en sortie qui doit pouvoir être réglé entre 10 et 30kHz qui me pose une contrainte forte aujourd'hui.

 

En tout cas, merci de me faire profiter de tes compétences en électronique, je regrette presque d'avoir fait méca dans ma jeunesse plutôt que ça. c'est tellement passionnant.

Lien vers le commentaire
Partager sur d’autres sites

il y a 11 minutes, Steeve Osteen a dit :

les plaquettes arduino les horlorges était en 8Bits donc pouvaient difficilement générer un signal sur 256 niveaux à plus de 10kHz

Ben non, sur un simple nano, tu peux aller à 62.5 KHz (voir cette page par exemple). 😉

Après tu pilotes des moteurs à courant continu, où as-tu lu qu'il fallait à de telles fréquences? C'est pour le bruit audible du signal PWM?

Pour le PIC en question, il peut aller jusqu'à 20KHz en 10 bits et plus si tu réduis la résolution. Le soucis avec les PICs, c'est qu'il faut un programmateur (PICKIT).

Modifié (le) par pommeverte
Lien vers le commentaire
Partager sur d’autres sites

Bon... 😨..

j'ai jamais pu trouvé comment arriver à ces fréquences.. pourtant j'en aie perdu des heures à chercher..

pour la fréquence, en effet c'est pour les moteurs des berdair qui semblent assez sensible à l'échauffement et au bruit sur du PWM basse fréquence et tout ceux que j'ai pu suivre trouvaient une fréquence entre 17 et 25kHz.

je saurais pour la suite. merci beaucoup @pommeverte

Lien vers le commentaire
Partager sur d’autres sites

Juste pour info, voici ce que j'aurais fait comme carte additionnelle, avec des modules Mosfet externes qui intègrent les optocoupleurs pour les pompes, mais on pourrait également les intégrer à la carte :

Citation

Berd-AirV1P12F683schematic.thumb.png.971383ab7b5f2b4770ed80fc959d248a.png

Berd-AirV1P12F683_board.thumb.png.2b536744fe624fd726b7ecb45d6014ca.png

Taille de carte 40x30 grand maxi. Il devrait être possible de remplacer le PIC par un Attiny85 pour rester chez Atmel (arduino)

 

Lien vers le commentaire
Partager sur d’autres sites

Désolé, j'étais loin de mon pc pour des raisons personnelles🙁

Ce sont des souvenirs de jeunesse pour un simple filtre RC

pour un PWM de fréquence Fo il faut que le filtre passe-bas ait une fréquence de coupure (Fc) de l ordre de 30 fois moins (c'est confortable) que celle du PWM  soit Fc=Fo/30

et pour un filtre,  Fc= 1/(2 Pi RC),  ce qui doit conduire (si on arrondit 2Pi à 6) RC ≈ 5/Fo

Pour un Pwm d’Arduino à 490Hz,  çà fait un RC de 10ms , tu peux essayer 4,7µF et 2,2kΩ

Après on peut améliorer le filtre , prendre un ampli op, faire un filtre à 2 étages... Dommage que @Janpolanton ne participe plus (très bon électronicien )

Lien vers le commentaire
Partager sur d’autres sites

Salut à vous,

Merci à toi @pommeverte, le schéma parait un peu plus simple, et c'est là qu'on voit l'expérience, faire simple demande des compétences..

Malgré ta proposition, je vais rester sur mon système même s'il est clairement surdimensionné, afin de voir ce que je vais pouvoir en tirer. Me suis commander du bluepill, du STM32F4 en platine et des nanos sur aliexpress histoire de tester.

Merci à toi @KpDp_3D pour ces informations, je vais pouvoir finaliser la définition du filtre RC et faire des essais.

Voici mon premier jet de schéma, une grosse différence est aussi dans le fait que je souhaite que l'alimentation soit sur le 24V et non en récup sur une pin en +5V de la CM de ma machine

image.thumb.png.ab1fe26c32f079fcabb4b0f258f8267a.png

Je pense pas avoir fait trop d'erreur mais comme je suis débutant, je suis sur que c'est pas le cas.

 

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...