Yapay zekâ tarafından English dilinden çevrildi ·
Bunu bir eğitim düzeneği için bir grup SG90 üzerinde yaptım. Modifikasyon:
1. Kasayı açın, çıkış dişlisini çıkarın. Alt yüzündeki, bitiş durdurucusuna çarpan küçük plastik çıkıntıyı kesin ya da törpüleyin.
2. Çıkış milinin altındaki potansiyometre konum geri beslemesidir. Lehimini sökün ve yerine sabit bir gerilim bölücü olarak iki adet 2.2k direnç takın (uçları dış pedlere, orta ucu sürgü pedine bağlayın). Servo artık her zaman merkezde olduğunu düşünür.
3. Yeniden birleştirin. Artık darbe genişliği konum yerine hızı ve yönü belirler: yaklaşık 1.5 ms durdurur, daha kısa değerler bir yöne, daha uzun değerler diğer yöne döndürür. Tam durma değerini deneyerek bulun, direnç toleransı bu değeri kaydırır.
İkinci sorunuza gelince: hayır, FS90R’de olduğu gibi artık konumunu bilmiyor. Bir panjur için bu önemlidir, bu yüzden Keisha’nın dediğini yapın; tamamen açık ve tamamen kapalı konumlara bir reed anahtarı ya da mikro anahtar ekleyin ve aradaki süreyi sayın ya da araya ucuz bir enkoder ekleyin. Açıkçası SG90 gerçek bir panjur için de zayıftır; 28BYJ-48 step motor ile ULN2003 kartı size konumu bedavaya ve daha fazla tork ile verir.
Kart tarafında: ESP32’nin profilindeki Commands sekmesine, Basic seviyesinde, 0-100 aralığında bir Number parametreli blind.set ekleyin. Kaydırıcı değeri, sürüklerken değil bırakıldığında bir kez gönderir; bu da bir motor için uygundur. ESP32’nin gerçek konumunu blind_pct olarak yayınlamasını sağlayın ve Kaydırıcının Current value alanını buna bağlayın; böylece kart panjurun gerçekte nerede olduğunu gösterir.
Servoyu ya da step motoru ESP32’nin pininden değil, kendi 5 V kaynağından besleyin.
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.

