Traduit de English par IA ·
J’ai fait ça sur un lot de SG90 pour un montage pédagogique. La modification :
1. Ouvrez le boîtier, retirez le pignon de sortie. Coupez ou limez la petite languette en plastique située sous celui-ci, qui heurte la butée de fin de course.
2. Le potentiomètre sous l’axe de sortie est le retour de position. Dessoudez-le et placez à sa place deux résistances de 2,2 kΩ en diviseur fixe (les extrémités sur les pastilles externes, le milieu sur la pastille du curseur). Le servo croit maintenant toujours être au centre.
3. Remontez. Désormais, la largeur d’impulsion règle la vitesse et le sens au lieu de la position : environ 1,5 ms l’arrêtent, plus court tourne dans un sens, plus long dans l’autre. Trouvez la valeur d’arrêt exacte par essais, la tolérance des résistances la décale.
Pour ta deuxième question : non, il ne connaît plus sa position, comme un FS90R. Pour un store, c’est important ; fais donc ce que Keisha a dit : ajoute un contacteur à lames souples ou un micro-interrupteur en position entièrement ouverte et entièrement fermée, et compte le temps ou ajoute un encodeur bon marché entre les deux. Honnêtement, un SG90 est aussi faible pour un vrai store : un moteur pas à pas 28BYJ-48 avec une carte ULN2003 te donne la position gratuitement et plus de couple.
Côté carte : ajoute blind.set avec un paramètre Number de 0 à 100 dans l’onglet Commands du profil de l’ESP32, niveau Basic. Le Slider envoie la valeur une seule fois au relâchement, et non pendant que tu le déplaces, ce qui convient à un moteur. Fais publier à l’ESP32 sa position réelle sous blind_pct et lie la Current value du Slider à celle-ci, pour que la carte affiche où se trouve réellement le store.
Alimente le servo ou le moteur pas à pas avec sa propre alimentation 5 V, et non avec la broche de l’ESP32.
Did this to a pile of SG90s for a teaching rig. The mod:
1. Open the case, take out the output gear. Cut or file off the little plastic tab on its underside that hits the end stop.
2. The potentiometer under the output shaft is the position feedback. Unsolder it and put two 2.2k resistors in its place as a fixed divider (ends to the outer pads, the middle to the wiper pad). The servo now always thinks it’s at centre.
3. Reassemble. Now the pulse width sets speed and direction instead of position: about 1.5 ms stops it, shorter turns one way, longer the other. Find the exact stop value by trial, resistor tolerance shifts it.
To your second question: no, it no longer knows where it is, same as an FS90R. For a blind that matters, so do what Keisha said, add a reed switch or microswitch at fully open and fully closed, and count time or add a cheap encoder in between. Honestly, an SG90 is also weak for a real blind, a 28BYJ-48 stepper with a ULN2003 board gives you position for free and more torque.
On the board side: add blind.set with a Number parameter 0-100 to the ESP32’s profile Commands tab, Basic tier. The Slider sends the value once on release, not while you drag, which suits a motor. Have the ESP32 publish its real position as blind_pct and bind the Slider’s Current value to it, so the card shows where the blind actually is.
Power the servo or stepper from its own 5 V supply, not the ESP32’s pin.

