Bonjour à tous,
Je suis entrain de concevoir un thermostat qui nécessite l'ouverture d'une trappe via un moteur pas à pas de type BYJ.
Le thermostat est géré par une carte type arduino ESP32 dev. Pourquoi l'ESP32? pour sa puissance et son intégration du WiFi et BLE.
Pourquoi un moteur pas à pas plutôt qu'un servomoteur? Parce que pour des question de place et de nombre de tour je n'ai pas le choix.
Je possède plusieurs moteur de ce type :
un 28BYJ-48, un ST35 et un 35BYJ412. Mon choix s'est porté sur le 35BYJ412 pour ses caractéristiques de couple principalement.
les 2 permier sont à 300 et 500g.cm alors que lui est à 3000g.cm.
Mon problème réside dans le fait que toutes les librairies sont étudiées et créées de façon à optimiser l'usage du 28BYJ-48. il a un nb de pas de 64/trs et un coef de réduction de 1/64 ->4096 pas/tour. Beaucoup de librairies ne permettent pas de paramétrer ces points (ou du moins sans rentrer dans le coeur de la librairie).
Le 35BYJ412 possède 96 pas/tour et une réduction de 1/42.5 ce qui représente 4080 pas/tour.
A l'utilisation, si les différentes librairies fonctionne bien avec le 28BYJ, ce n'est pas le cas avec le 35BYJ. La seul librairie qui fonctionne bien c'est cheapstepper et seulement avec l'exemple newMoveTo(). Seulement elle ne m'intéresse pas dans le sens où elle fonctionne avec une rotation permanente (non bloquante pour le reste du programme).
Pourquoi les autres exemples de cette même librairie ne fonctionnent pas?
On entend le moteur comme si il y avait un saut de pas permanent.
Il y a bien d'autres librairies mais encore plus restrictives dans le paramétrage (elles sont dédiée à un nb de pas de 64)
Avez-vous une idée de comment traiter le probème?
Comment faire pour ne pas avoir de saut de pas?
Il y a quelques temps j'ai conçu une cnc avec des moteurs type nema fonctionnant sous mach3 et là j'avais du modifier la fréquence de transmission pour résoudre des sauts de pas. Est-ce qu'ici le problème vient du fait que je suis en 115200Bps alors que les programme sont fait avec 9600? normalement c'est juste pour la liaison avec le moniteur non?
J'arrête les questions...
Merci pour votre aide
-----