360 Derece Servo (FS90R): Arduino ile Hız ve Yön Kontrolü
360 derece servo FS90R nasıl çalışır? write(90) ile durdurma, hız ve yön kontrolü, durma trimpotu ayarı, robot tekerleği kullanımı, ESP32 ve Pico PWM kodları.
360 derece servo, adı servo olsa da aslında belli bir açıya gidip duran değil, sürekli dönen küçük bir redüktörlü motordur. En bilineni FEETECH FS90R'dir: SG90 ile aynı boyutta ve aynı üç kabloyla bağlanır, ama ona gönderdiğin sinyal bir açıyı değil dönüş hızını ve yönünü belirler. Motor sürücüsüne gerek kalmadan doğrudan Arduino pinine bağlanabildiği için küçük robot tekerlekleri, dönen platformlar ve mama makinesi gibi projelerde çok pratiktir.
Bu rehberde FS90R'nin içinde normal bir servodan neyin farklı olduğunu, write(90) komutunun neden motoru durdurduğunu, darbe genişliğiyle hızı ve yönü nasıl ayarlayacağını ve kendi kendine dönmeye devam eden bir servoyu durma trimpotuyla nasıl ayarlayacağını öğreneceksin. Ardından iki FS90R ile küçük bir robot sürecek, potansiyometreyle hız kontrolü yapacak ve aynı işi ESP32 ile Raspberry Pi Pico'da deneyeceksin. Son olarak bu servonun neden konum kontrolü yapamadığını ve onun yerine neyi seçmen gerektiğini göreceksin.

360 derece servo nedir, normal servodan farkı ne?
Normal bir servonun içinde küçük bir DC motor, dişli kutusu, kontrol devresi ve çıkış miline bağlı bir potansiyometre bulunur. Kontrol devresi gelen darbenin istediği açı ile potansiyometrenin gösterdiği gerçek açıyı karşılaştırır ve fark sıfır olana kadar motoru döndürür; mil hedefe varınca durur. Sürekli dönüş servosunda bu geri besleme bağı koparılmıştır: potansiyometre milden ayrılmış ve orta konumda sabitlenmiştir, dişlilerdeki mekanik durdurucu da yoktur. Devre hâlâ "hedef ile gerçek konum arasındaki farkı" hesaplar, ama gerçek konum hiç değişmediği için fark hiç kapanmaz. Sonuçta fark ne kadar büyükse motor o kadar hızlı döner, farkın işareti de yönü belirler.
| Özellik | SG90 (180° servo) | FS90R (360° sürekli dönüş) |
|---|---|---|
| Sinyal neyi belirler? | Milin açısını (0–180°) | Dönüş hızını ve yönünü |
| 1500 µs darbe | Orta konuma (90°) gider ve orada kalır | Durur |
| 1000 µs / 2000 µs | Bir uca ya da diğer uca gider | Bir yöne ya da diğer yöne tam hız |
| İç geri besleme | Mile bağlı potansiyometre | Yok; potansiyometre yalnızca durma noktası ayarıdır |
| Mekanik durdurucu | Var | Yok, sınırsız döner |
| Konum tutma | Yük altında açısını korur | Tutamaz; nerede durduğunu bilmez |
| Tipik kullanım | Kol, kapak, yönlendirme | Tekerlek, döner tabla, vida besleyici |
FS90R teknik özellikleri
| Özellik | Değer |
|---|---|
| Çalışma gerilimi | 4,8–6 V |
| Yüksüz hız | 4,8 V'ta yaklaşık 100–110 dev/dk, 6 V'ta yaklaşık 130 dev/dk |
| Kilitlenme torku | 4,8 V'ta yaklaşık 1,3 kg·cm, 6 V'ta yaklaşık 1,5 kg·cm |
| Akım | Yüksüz 100–130 mA, kilitlenmede 6 V'ta 800 mA'e kadar |
| Kontrol sinyali | 50 Hz PWM; durma 1500 µs, kullanılan aralık yaklaşık 900–2100 µs |
| Sinyal seviyesi | 5 V ve 3,3 V sinyalle çalışır |
| Dönüş yönü | 1500 µs üzeri bir yöne, altı ters yöne (çıkış milinden bakınca 1500 µs üstü saat yönünün tersi) |
| Ağırlık ve boyut | 9 g, yaklaşık 23 × 12 × 22 mm (SG90 ile aynı gövde) |
| Kablolar | Kahverengi GND, kırmızı VCC, turuncu sinyal |
FS90R bağlantısı: Arduino Uno, ESP32 ve Pico
| Servo kablosu | Görevi | Arduino Uno | ESP32 | Raspberry Pi Pico |
|---|---|---|---|---|
| Kahverengi | GND | GND | GND | GND |
| Kırmızı | Besleme 4,8–6 V | 5V (tek servo) ya da harici 5 V | VIN / 5V ya da harici 5 V | VBUS (5 V) ya da harici 5 V |
| Turuncu | PWM sinyali | D9 | GPIO 18 | GP15 |
Tek bir FS90R'yi yüksüz çalıştırırken Uno'nun 5V pini yeterlidir. Servo tekerleği yere bastığında ya da iki servo aynı anda kalkış yaptığında akım birkaç yüz miliampere çıkar; USB'nin gerilimi düşer, Arduino resetlenebilir ya da servolar titrer. Bu yüzden robotta servoları ayrı bir 5 V kaynaktan (4 adet NiMH pil, 5 V regülatör ya da bir uygun güç kaynağı) besle, servo beslemesinin GND'sini Arduino'nun GND'sine mutlaka bağla ve servo kablolarına yakın bir 470 µF kondansatör ekle. ESP32 ve Pico'nun 3,3 V'luk sinyali FS90R için yeterlidir; servoyu ise yine 5 V'tan beslemelisin, 3,3 V pininden değil.
write(90) = dur: darbe genişliği nasıl hıza dönüşür?
Servo kontrol sinyali, saniyede 50 kez (her 20 ms'de bir) gönderilen bir darbedir; önemli olan darbenin süresidir. FS90R için 1500 µs "dur" demektir. Darbe 1500 µs'den uzadıkça servo bir yönde hızlanır, kısaldıkça ters yönde hızlanır; yaklaşık 1000 µs ve 2000 µs civarında tam hıza ulaşır, bunun ötesinde hız pek artmaz. Arduino'nun Servo kütüphanesinde write(90) komutu bu yüzden dur anlamına gelir, write(0) ve write(180) ise iki yönde tam hızdır. Burada küçük bir tuzak vardır: kütüphane varsayılan olarak 0–180 değerini 544–2400 µs aralığına çevirir, yani write(90) aslında 1472 µs üretir. Bu fark, servonun write(90)'da bile yavaşça dönmesine yetebilir. Çözüm attach(9, 1000, 2000) ile aralığı daraltmak ya da doğrudan writeMicroseconds(1500) kullanmaktır.
| Darbe | Servo.write karşılığı (attach(pin, 1000, 2000) ile) | FS90R davranışı |
|---|---|---|
| 1000 µs | write(0) | Tam hız, saat yönünde |
| 1300 µs | write(54) | Orta hız, saat yönünde |
| 1461 µs | write(83) | Çok yavaş, saat yönünde |
| 1500 µs | write(90) | Dur (trimpot doğru ayarlıysa) |
| 1538 µs | write(97) | Çok yavaş, saat yönünün tersine |
| 1700 µs | write(126) | Orta hız, saat yönünün tersine |
| 2000 µs | write(180) | Tam hız, saat yönünün tersine |
İlk kod: ileri, dur, geri
1// FS90R ilk test: ileri, dur, geri / FS90R first test: forward, stop, backward
2#include <Servo.h>
3
4Servo teker; // sürekli dönüş servosu / continuous rotation servo
5
6void setup() {
7 teker.attach(9, 1000, 2000); // write(0..180) artık 1000..2000 µs üretir / write(0..180) now outputs 1000..2000 µs
8}
9
10void loop() {
11 teker.write(180); // tam hız bir yöne / full speed one way
12 delay(2000);
13 teker.write(90); // 1500 µs: dur / 1500 µs: stop
14 delay(1000);
15 teker.write(0); // tam hız ters yöne / full speed the other way
16 delay(2000);
17 teker.write(110); // yavaş / slow
18 delay(2000);
19 teker.writeMicroseconds(1500); // durmanın en kesin yolu / the most precise way to stop
20 delay(1000);
21}Kod servoyu D9'a bağlar ve attach(9, 1000, 2000) ile write() ölçeğini FS90R'nin gerçekten kullandığı aralığa eşler; böylece write(90) tam 1500 µs olur. Hızın darbeyle ilişkisi doğrusal değildir: 1500 µs'nin hemen çevresinde birkaç on mikrosaniyelik bir ölü bölge vardır ve orada servo kıpırdamaz, 1500 ± 300 µs aralığında hız hızla artar, uçlara doğru ise neredeyse sabit kalır. Yavaş ve hassas bir hareket istiyorsan değerleri 1500 µs'ye yakın tutmalısın. Darbe genişliğinin genel mantığı PWM nedir, normal servoların açı kontrolü ise servo motor nedir yazısında.
Durma noktası (merkez) trimpotu ayarı
- Aşağıdaki kalibrasyon kodunu yükle; servo 1500 µs sinyal alır ve normalde durmalıdır.
- Servo yavaşça dönüyorsa gövdenin yan tarafında, kablo çıkışına yakın küçük deliği bul; içinde durma noktasını belirleyen trimpot vardır.
- Küçük bir düz ya da yıldız uçlu tornavidayla trimpotu çok az çevir; servo yavaşlarsa doğru yöndesin.
- Servo tamamen durana ve hafif uğultu bile kesilene kadar küçük adımlarla devam et. Trimpot çok hassastır, çeyrek tur bile fazladır.
- Trimpotu ayarlamak istemiyorsan Serial Monitor'den + ve - göndererek servonun durduğu darbe değerini bul ve kodunda 1500 yerine bu değeri kullan.
1// Durma noktası ayarı: Serial Monitor'den µs değeri gönder
2// Stop point calibration: send a µs value from the Serial Monitor
3#include <Servo.h>
4
5Servo teker;
6int darbe = 1500; // başlangıç: teorik durma noktası / start: theoretical stop point
7
8void setup() {
9 Serial.begin(9600);
10 teker.attach(9);
11 teker.writeMicroseconds(darbe);
12 Serial.println(F("Sayi yaz (900-2100) ya da + / - gonder"));
13 Serial.println(F("Type a number (900-2100) or send + / -"));
14}
15
16void loop() {
17 if (Serial.available()) {
18 char c = Serial.peek();
19 if (c == '+') { Serial.read(); darbe += 5; } // 5 µs artır / add 5 µs
20 else if (c == '-') { Serial.read(); darbe -= 5; } // 5 µs azalt / subtract 5 µs
21 else if (isDigit(c)) darbe = Serial.parseInt(); // doğrudan değer / direct value
22 else { Serial.read(); return; } // satır sonu vb. atla / skip line endings etc.
23
24 darbe = constrain(darbe, 900, 2100);
25 teker.writeMicroseconds(darbe);
26 Serial.print(F("Darbe / pulse: "));
27 Serial.print(darbe);
28 Serial.println(F(" us"));
29 }
30}Potansiyometreyle hız ve yön kontrolü
1// Potansiyometreyle hız ve yön: ortada dur, sağa ileri, sola geri
2// Speed and direction with a pot: centre = stop, right = forward, left = backward
3#include <Servo.h>
4
5const int POT_PIN = A0;
6const int OLU_BOLGE = 40; // ortadaki ±40 adım: kesin dur / ±40 steps in the middle: solid stop
7Servo teker;
8
9void setup() {
10 teker.attach(9);
11}
12
13void loop() {
14 int okuma = analogRead(POT_PIN) - 512; // -512 ... +511
15 int darbe = 1500; // varsayılan: dur / default: stop
16 if (okuma > OLU_BOLGE) {
17 darbe = map(okuma, OLU_BOLGE, 511, 1540, 2000); // ileri, yavaştan hızlıya / forward, slow to fast
18 } else if (okuma < -OLU_BOLGE) {
19 darbe = map(okuma, -OLU_BOLGE, -512, 1460, 1000); // geri / backward
20 }
21 teker.writeMicroseconds(darbe);
22 delay(20); // servo periyodu kadar / one servo period
23}Potansiyometreyi 5V, A0 ve GND arasına bağladığında orta konum dur, sağa çevirmek ileri, sola çevirmek geri anlamına gelir. Kod ortadaki ±40 adımlık bir ölü bölge tanımlar; potansiyometre tam ortada olmasa ya da okumalar biraz oynasa bile servo kesin olarak durur. Ölü bölgenin dışında değer 1540–2000 µs ya da 1460–1000 µs aralığına eşlenir, böylece potansiyometreyi az çevirdiğinde servo yavaş, sonuna kadar çevirdiğinde tam hızla döner. Aynı fikri bir joystick ile de uygulayabilirsin; potansiyometrenin bağlantısı potansiyometre nedir yazısında.
Küçük robot tekerleği olarak FS90R
FS90R'nin robotlarda bu kadar sevilmesinin sebebi basitliktir: içinde redüktör ve sürücü devresi olduğu için ayrı bir motor sürücüye, H köprüsüne ya da enkodere gerek yoktur; her teker için tek bir sinyal pini yeter. İki servo gövdenin iki yanına ayna gibi takılır, bu yüzden ileri gitmek için biri saat yönünde, diğeri tersine dönmelidir. Aşağıdaki kod bu tersliği surus() fonksiyonunun içinde çözer; sen yalnızca -100 ile +100 arasında hız verirsin. 60 mm çaplı bir teker, 6 V'ta 130 dev/dk dönerken saniyede yaklaşık 0,4 metre yol alır; 4,8 V'ta bu değer 0,3 m/s civarına düşer.
1// İki FS90R ile küçük robot: tekerlekler ayna gibi takılır
2// A small robot with two FS90Rs: the wheels are mounted as mirror images
3#include <Servo.h>
4
5Servo sol, sag;
6const int DUR_SOL = 1500; // kalibrasyonla bulduğun değerler / values you found during calibration
7const int DUR_SAG = 1500;
8
9// hiz: -100 (tam geri) ... +100 (tam ileri) / speed: -100 (full back) ... +100 (full forward)
10void surus(int hizSol, int hizSag) {
11 sol.writeMicroseconds(DUR_SOL + hizSol * 5); // sol teker normal yönde / left wheel normal direction
12 sag.writeMicroseconds(DUR_SAG - hizSag * 5); // sağ teker ters takılı / right wheel is mounted reversed
13}
14
15void setup() {
16 sol.attach(9);
17 sag.attach(10);
18 surus(0, 0);
19 delay(1000);
20}
21
22void loop() {
23 surus(80, 80); delay(1500); // ileri / forward
24 surus(0, 0); delay(500); // dur / stop
25 surus(-60, 60); delay(600); // yerinde sola dön / spin left in place
26 surus(60, 60); delay(1000);
27 surus(30, 80); delay(1500); // sola doğru yay çiz / curve to the left
28 surus(-80, -80); delay(1000); // geri / backward
29 surus(0, 0); delay(2000);
30}İki servo hiçbir zaman birebir aynı hızda dönmez; robot düz gitmek yerine hafifçe bir yana kayıyorsa her servonun durma değerini (DUR_SOL, DUR_SAG) ayrı ayrı kalibre et, hızlı olanın katsayısını biraz azalt. FS90R'nin 1,5 kg·cm'lik torku, toplam ağırlığı birkaç yüz gramı geçmeyen küçük robotlar için uygundur; daha ağır bir şasi ya da büyük tekerlekler için DC motor ve L298N ya da redüktörlü motorlar daha doğru seçimdir. Pille beslerken 4 adet NiMH pil (4,8 V) ideal gerilim verir; yeni 4 adet alkalin pil 6,4 V'a kadar çıkabildiği için servonun sınırını aşabilir. Tam bir şasi ve sensör kurulumu için Arduino robot araba yapımı yazısına bakabilirsin.
ESP32 ile FS90R
Arduino'nun Servo kütüphanesi ESP32'de çalışmaz; onun yerine Kütüphane Yöneticisi'nden ESP32Servo kütüphanesini kur. Kullanımı neredeyse aynıdır, ek olarak setPeriodHertz(50) ile 50 Hz'i açıkça belirtirsin. Sinyal için PWM verebilen hemen her GPIO uygundur; yalnızca giriş olarak çalışan GPIO 34–39 bu iş için kullanılamaz. Servonun kırmızı kablosunu ESP32'nin 3V3 pinine değil, VIN (USB 5 V) pinine ya da harici 5 V kaynağa bağla. Aşağıdaki kod servoyu durmadan tam hıza yavaşça çıkarır, sonra yavaşlatıp ters yöne geçirir; Serial Monitor'de her adımdaki darbe süresini görürsün.
1// ESP32 + FS90R: ESP32Servo kütüphanesiyle hız rampası
2// ESP32 + FS90R: a speed ramp with the ESP32Servo library
3#include <ESP32Servo.h>
4
5const int SERVO_PIN = 18; // PWM verebilen herhangi bir GPIO / any PWM-capable GPIO
6Servo teker;
7
8void setup() {
9 Serial.begin(115200);
10 teker.setPeriodHertz(50); // standart servo frekansı / standard servo frequency
11 teker.attach(SERVO_PIN, 1000, 2000);
12 teker.writeMicroseconds(1500); // dur / stop
13 delay(1000);
14}
15
16void loop() {
17 for (int us = 1500; us <= 2000; us += 25) { // yavaşça hızlan / speed up gently
18 teker.writeMicroseconds(us);
19 Serial.println(us);
20 delay(200);
21 }
22 for (int us = 2000; us >= 1000; us -= 25) { // yavaşla, dur, ters yöne hızlan / slow down, stop, reverse
23 teker.writeMicroseconds(us);
24 Serial.println(us);
25 delay(200);
26 }
27 teker.writeMicroseconds(1500);
28 delay(2000);
29}Raspberry Pi Pico ve MicroPython ile FS90R
Pico'da ek kütüphaneye gerek yoktur: machine.PWM nesnesini 50 Hz'e ayarlar, darbe süresini duty_ns() ile nanosaniye cinsinden verirsin. Koddaki hiz() fonksiyonu -100 ile +100 arasındaki bir değeri 1000–2000 µs'ye çevirir; kendi kalibrasyonunda bulduğun durma değerini DUR_US satırına yazman yeterlidir. Program Ctrl+C ile durdurulduğunda servo da durdurulur; aksi hâlde PWM son değerle çalışmaya devam eder ve teker dönmeyi sürdürür. Servonun beslemesini Pico'nun VBUS pininden (USB'nin 5 V'u) al. MicroPython'a yeniysen önce MicroPython temelleri yazısına göz at.
1# Raspberry Pi Pico (MicroPython) + FS90R: hız -100 ... +100
2# Raspberry Pi Pico (MicroPython) + FS90R: speed -100 ... +100
3from machine import Pin, PWM
4import time
5
6servo = PWM(Pin(15))
7servo.freq(50) # 20 ms periyot / 20 ms period
8DUR_US = 1500 # kalibrasyonla bulduğun durma noktası / your calibrated stop point
9
10def hiz(yuzde):
11 yuzde = max(-100, min(100, yuzde))
12 us = DUR_US + yuzde * 5 # -100 -> 1000 µs, +100 -> 2000 µs
13 servo.duty_ns(us * 1000)
14
15try:
16 while True:
17 for h in (50, 100, 0, -50, -100, 0):
18 hiz(h)
19 print("Hiz / speed:", h)
20 time.sleep(2)
21except KeyboardInterrupt:
22 hiz(0) # durdurunca teker dönmeye devam etmesin / stop the wheel on exit
23 servo.deinit()360 derece servo ile proje fikirleri
- Çizgi izleyen mini robot: İki FS90R ve iki kızılötesi sensörle hafif bir şasi; mantığı çizgi izleyen robot yazısında.
- Engelden kaçan robot: Önüne bir HC-SR04 ekle, engel görünce yerinde dönüp yön değiştirsin.
- Telefonla sürülen araç: Bir HC-05 Bluetooth modülü ile komutları telefondan gönder.
- Mama ya da yem makinesi: FS90R bir helezon vidayı (auger) döndürsün, zamanlayıcıyla belli sürelerde mama düşsün.
- Döner sergi tablası: Ürün fotoğrafı ya da zaman atlamalı çekim için çok yavaş dönen bir platform; hızı 1500 µs'ye yakın değerlerle ayarla.
- Küçük vinç ya da perde çekici: Hafif bir ipi sar, uçlara iki sınır anahtarı koyarak motoru doğru yerde durdur.
Sık hatalar ve çözümleri
| Belirti | Olası sebep | Çözüm |
|---|---|---|
| write(90) verdiğim hâlde yavaşça dönüyor | Varsayılan ölçek 1472 µs üretiyor ya da durma trimpotu ayarsız | attach(pin, 1000, 2000) ya da writeMicroseconds(1500) kullan, trimpotu ayarla |
| Servo hiç dönmüyor | Sinyal pini yanlış, GND ortak değil ya da ürün aslında konum servosu | Pin numarasını ve GND bağlantısını kontrol et, ürünün continuous rotation olduğundan emin ol |
| Servo titriyor, Arduino resetleniyor | USB beslemesi akım tepelerini karşılayamıyor | Servoları harici 5 V'tan besle, GND'leri birleştir, 470 µF kondansatör ekle |
| Darbeyi 1000 µs'den 1200 µs'ye çekince hız neredeyse değişmiyor | Uçlara yakın bölgede servo zaten tam hızdadır, hız doyuma gider | Hassas hız için 1500 ± 300 µs aralığını kullan |
| Robot düz gitmiyor | İki servonun hızı ve durma noktası farklı | Her servoyu ayrı kalibre et, hızlı olanın katsayısını azalt |
| Servo ısınıyor, vınlıyor ama dönmüyor | Mil kilitli ya da yük çok ağır | Engeli kaldır, yükü azalt; kilitlenme dişlileri ve motoru bozar |
| ESP32'de derleme hatası ya da sinyal yok | AVR'ye özel Servo kütüphanesi kullanılmış ya da GPIO 34–39 seçilmiş | ESP32Servo kütüphanesini kur, çıkış verebilen bir GPIO seç |
FS90R, sürekli dönen bir mekanizmayı motor sürücüsüne uğraşmadan tek bir pinle kontrol etmenin en kolay yoludur: 1500 µs'de durur, iki yöne istediğin hızda döner ve küçük robotlar için hazır bir tekerlek motorudur. Durma noktasını bir kez ayarlayıp konum kontrolü gerektiren işlerde normal servoya ya da step motora geçmeyi unutmazsan uzun süre sorunsuz çalışır. BlueGrays uygulamasında servo kullanımı, potansiyometre ve joystick ile servo kontrolü, step motordan 360 derece servo yapımı ve robot araba projelerini devre şemaları ve hazır kodlarıyla adım adım bulabilirsin.
Sıkça sorulan sorular
360 derece servo nasıl durdurulur?
FS90R gibi sürekli dönüş servoları 1500 µs darbe aldığında durur; Arduino'da writeMicroseconds(1500) ya da attach(pin, 1000, 2000) ile bağladıktan sonra write(90) kullanılır. Bu değerde hâlâ yavaşça dönüyorsa gövdedeki küçük trimpotu tornavidayla ayarla ya da kodda servonun gerçekten durduğu değeri kullan.
360 derece servo ile normal servo arasındaki fark nedir?
Normal servo gelen sinyale göre belli bir açıya gider ve orada kalır, çünkü içindeki potansiyometre milin konumunu ölçer. 360 derece sürekli dönüş servosunda bu geri besleme yoktur; sinyal açıyı değil dönüş hızını ve yönünü belirler ve servo sınırsız döner.
360 derece servo ile açı kontrolü yapılabilir mi?
Hayır. FS90R milin nerede olduğunu bilmez, bu yüzden belirli bir açıya gidip duramaz. Süreye göre döndürmek yaklaşık sonuç verir ama gerilim ve yükle değişir. Açı gerekiyorsa normal bir servo, step motor ya da enkoderli bir motor kullanmalısın.
FS90R kaç volt ile çalışır?
FS90R 4,8–6 V arasında çalışır; Arduino projelerinde genellikle 5 V ile beslenir. Sinyal hattı hem 5 V hem 3,3 V seviyesini kabul ettiği için ESP32 ve Raspberry Pi Pico ile de doğrudan kullanılabilir, ancak besleme yine 5 V olmalıdır.
Arduino'ya kaç tane FS90R bağlanabilir?
Servo kütüphanesi Arduino Uno'da 12 servoya kadar destekler, ama asıl sınır akımdır. Her FS90R yük altında birkaç yüz miliamper, kilitlenmede 800 mA'e kadar çekebileceği için ikiden fazla servoyu mutlaka harici bir 5 V kaynaktan besle ve GND'leri birleştir.
SG90 servo 360 derece dönen servoya çevrilebilir mi?
Evet, ama kalıcı bir değişikliktir. Servoyu açıp dişlideki mekanik durdurucuyu keser ve potansiyometreyi iki eşit dirençle ya da orta konumda sabitlenmiş hâliyle milden ayırırsın. Sonuç FS90R gibi çalışır, ancak garanti biter ve servo bir daha açı tutamaz; hazır bir FS90R almak genellikle daha zahmetsizdir.
Bu yazıdan sonra yapabileceğin projeler
Tüm projeleri gör
Servo Motor Kullanım
Küçük bir servo motorun kolu sırayla üç konuma döner: en başa, tam ortaya ve en sona, her durakta iki saniye bekleyerek. Arduino motora hangi açıda durması gerektiğini söyler, motor da oraya gidip ora

Potansiyometre İle Servo Motor Kullanım
Potansiyometrenin düğmesini çevirdikçe servo motorun kolu da onunla birlikte döner; düğmenin bir ucu sıfır dereceye, öbür ucu yarım tura karşılık gelir. Arduino düğmenin konumunu sürekli okur ve servo

ESP32 Servo Motor (Potansiyometre Kontrolü)
Bu projede potansiyometre ile SG90 servo motoru kontrol ediyoruz. Potansiyometreden okunan analog değeri 0-180 derece aralığına map'leyerek servo açısını ayarlıyoruz. ESP32Servo kütüphanesi, ESP32'nin çıkış verebilen uygun GPIO'larında servo sinyali üretir; bu projede GPIO 18 kullanılır. Bu, robotik kollar, kamera gimbal'ları ve otomatik kapı mekanizmaları için temel bir kontrol yöntemidir.

Joystick İle Servo Kontrol
Bir oyun kolu çubuğuyla iki motoru yönet, tıpkı bir güvenlik kamerasını çevirir gibi. Çubuğu sağa sola ittiğinde alttaki servo motor yavaşça döner, yukarı aşağı ittiğinde üstteki servo başını kaldırıp

Step Motordan 360 Derecelik Servo Motor Yapımı
Sıradan bir step motora istediğin açıya gitmeyi öğret, üstelik tam bir tur boyunca. Arduino hangi açıya kaç adım düştüğünü hesaplar; motor sırayla 0, 90, 45, 180, 135 ve 360 dereceye gider, her durakt

L298N ile Bluetooth Kontrollü Araba
Telefonunu kumandaya çevirip kendi robot arabanı sür. Arduino, Bluetooth modülü üzerinden telefondaki bir kumanda uygulamasından gelen komutları alır ve motor sürücüyle tekerlekleri döndürür; araba il

Engelden Kaçan Robot
Kendi yolunu bulan akıllı bir araç yapmaya ne dersin? Engelden Kaçan Robot, önündeki ultrasonik sensör sayesinde çevresini sürekli tarar. Bir engelle karşılaştığında durur, servo motoruyla sağına ve s
Diğer yazılar
BlueGrays uygulaması
Bu devreyi telefonunda adım adım kur
Devre şeması, kod ve parça listesi tek ekranda. 200'den fazla Arduino, ESP32 ve Pico projesi seni bekliyor.
Telefonunla tara
Kamerayı koda tut; telefonunun uygulama mağazası açılır.
ya da mağazada aç

