Bu yazıda ne yapacağız?
- Potansiyometrenin içine bakıp nasıl çalıştığını göreceğiz.
- Üç bacağı Arduino Uno'ya bağlayıp değeri okuyacağız.
- Bir düğmeyi çevirip gerilimi, analogRead değerini, LED ve servo karşılığını canlı izleyeceğiz.
- Pot ile LED parlaklığı ayarlayacağız, doğru potu seçip arızalısını ölçerek bulacağız.
Neden işe yarar? Pot, robota "ne kadar" bilgisini vermenin en kolay yolu: hız, açı, parlaklık, eşik değeri. Bağlantısını bir kez öğrenince joystick gibi analog parçalar da aynı mantıkla okunur.
Potansiyometre nedir, ne işe yarar?
Potansiyometre (kısaca pot), mili çevrilerek ayarlanan bir dirençtir. Üç bacağı vardır: iki uç ve ortada, kayan kontağa (silecek) bağlı bacak.
- Günlük hayatta: ses düğmeleri, oyun kollarının içi, kartlardaki küçük ayar vidaları.
- Robotikte: motor hızını, servo açısını ya da LED parlaklığını elle ayarlamak; bir kolun açısını ölçmek. Hobi servolarının içinde de konumu ölçen bir pot vardır.
Potansiyometre nasıl çalışır?
Pot, uçlarına verilen gerilimi silecek noktasında ikiye böler. Buna gerilim bölücü denir.
- 1 ile 3 arası direnç sabittir: 10 kΩ potta hep 10 kΩ.
- Mili çevirince silecek kayar: A-W (1 ile orta) büyür, W-B (orta ile 3) küçülür. Toplamları değişmez.
- 1'i GND'ye, 3'ü 5 V'a bağlarsanız orta bacakta 0 ile 5 V arası bir gerilim olur.
V(orta bacak) = 5 V × A-W / (A-W + W-B)
Potansiyometre bacakları: nasıl bağlanır?
Kural tek: dış iki bacak 5V ve GND'ye, orta bacak ölçülen yere gider.
| Bacak | Arduino Uno'da |
|---|---|
| 1 (dış) | GND |
| 2 (orta, silecek) | A0: ölçülen gerilim burada |
| 3 (dış) | 5V |
- Dış bacakları ters takarsanız bir şey bozulmaz, yalnız dönüş yönü tersine döner.
- Orta bacağı 5V ya da GND'ye bağlamayın: mili uca çevirince 5V ile GND arasında direnç kalmaz, kısa devre olur.
Arduino ile potansiyometre okuma
Breadboard'da üç bacağı ayrı sütunlara takın; sütunların nasıl bağlı olduğunu breadboard nasıl kullanılır yazısında bulabilirsiniz. Kodu yükleyip Seri Port Ekranı'nı açın, mili çevirin:
// Potansiyometreyi oku, değeri ve gerilimi Seri Port Ekranı'na yaz.
// Bağlantı: 1. bacak -> GND, orta bacak -> A0, 3. bacak -> 5V
const int POT_PIN = A0;
void setup() {
Serial.begin(9600); // Seri Port Ekranı'nı 9600 baud'a ayarlayın
}
void loop() {
int deger = analogRead(POT_PIN); // 0 ile 1023 arası
float volt = deger * 5.0 / 1024.0; // yaklaşık gerilim (5 V referans)
Serial.print("Değer: ");
Serial.print(deger);
Serial.print(" Gerilim: ");
Serial.print(volt, 2);
Serial.println(" V");
delay(200); // saniyede 5 satır
}
- Uno'nun analog girişi 10 bitliktir: 0 V için 0, 5 V için 1023 okur. Bir adım yaklaşık 4,9 mV.
- Bir okuma yaklaşık 100 µs sürer; döngüde rahatça okunur.
- Uno'yu ilk kez kullanıyorsanız Arduino nedir yazısıyla başlayın.
Kendiniz deneyin
Düğmeyi çevirin, sonra 3,3 V pini ve 100 kΩ seçeneklerine basıp hangi sayının neden değiştiğine bakın.
Burada çevrilebilir bir potansiyometre düğmesi var: sileceğin yerini, iki direnci, A0 gerilimini, analogRead değerini ve LED ile servo karşılıklarını gösterir. JavaScript ile çalışır; açılmadıysa yukarıdaki gerilim bölücü şeması aynı hesabı gösteriyor.
Hesap ATmega328P veri sayfasındaki formülle yapılıyor: analogRead = V × 1024 / 5, en fazla 1023. Logaritmik eğri basit bir model.
Potansiyometre ile LED parlaklığı ayarlama
// Potansiyometre ile LED parlaklığı ayarlama.
// Pot: 1. bacak GND, orta bacak A0, 3. bacak 5V.
// LED: pin 9 -> 220 ohm direnç -> LED uzun bacak, LED kısa bacak -> GND
const int POT_PIN = A0;
const int LED_PIN = 9; // PWM pini (~ işaretli)
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int deger = analogRead(POT_PIN); // 0-1023
int parlaklik = map(deger, 0, 1023, 0, 255); // 0-255'e çevir
analogWrite(LED_PIN, parlaklik); // PWM ile parlaklık
delay(10);
}
analogRead0-1023 verir,analogWrite0-255 ister.map()aradaki çeviriyi yapar (tamsayıyla, küsuratı atar).- LED'i ~ işaretli bir pine takın. Uno'da PWM pinleri: 3, 5, 6, 9, 10, 11.
- Aynı yolla servo da sürülür:
map(deger, 0, 1023, 0, 180). Ayrıntılar servo motor nedir yazısında.
Potansiyometre ile DC motor hız kontrolü
Motoru potun üzerinden beslemeyin. Küçük potlar çok az güç taşır (örneğin Bourns PTV09: 0,05 W); motor akımı potu ısıtıp bozar.
Doğru yol: pot → A0 → analogWrite → transistör ya da motor sürücü (L298N gibi) → motor.
- Yukarıdaki LED kodu aynen çalışır; pin 9 LED yerine sürücünün hız (EN) girişine gider.
- Motorun beslemesi ayrı olur, GND'ler birleştirilir.
Potansiyometre çeşitleri: lineer, logaritmik, trimpot
- Lineer (B): çevirdikçe direnç eşit artar. Arduino için bunu seçin. Gövdede
B10Kgenellikle "lineer, 10 kΩ" demektir. - Logaritmik (A, audio): önce yavaş, sonra hızlı artar; ses düğmeleri için. Harf kodu herkes için aynı değil, emin değilseniz yarıda ölçün.
- Trimpot: karta takılan, tornavidayla bir kez ayarlanan küçük pot. Sensör modüllerindeki eşik ayarı böyledir.
Neden hep 10 kΩ? Uno'nun analog girişi 10 kΩ ve altındaki kaynaklara göre tasarlanmış. 1 kΩ pot 5 V'ta sürekli 5 mA çeker; 100 kΩ pot ise okumayı biraz kaydırabilir.
Potansiyometre nasıl ölçülür, arızası nasıl anlaşılır?
Enerjiyi kesin, multimetreyi direnç (Ω) kademesine alın. Kademe seçimi multimetre nasıl kullanılır yazısında.
- 1 ile 3 arası: yazan değere yakın çıkmalı. Tolerans geniştir: ±%20 bir 10 kΩ pot 8-12 kΩ arası çıkabilir.
- 1 ile orta arası: mili yavaşça çevirin. Değer sıfıra yakından toplam değere kadar düzgün değişmeli.
- Arıza işareti: değer zıplıyor, bir an açık devre (OL) gösteriyor ya da hiç değişmiyorsa direnç yolu veya silecek aşınmış olabilir. Arduino'da da sayılar titrer.
Sık yapılan hatalar
| Belirti | Sebep | Çözüm |
|---|---|---|
| Değer kendi kendine oynuyor | Orta bacak A0'a oturmamış, giriş boşta | Kabloyu ve breadboard sütununu kontrol edin |
| Hep 0 ya da hep 1023 | A0'a orta değil, dış bacak bağlı | Orta bacağı A0'a takın |
| En fazla 675 civarı okuyor | 3. bacak 3,3 V'ta, Uno 5 V'a göre ölçüyor | 3. bacağı 5V'a takın |
| Ters yönde artıyor | 1 ve 3 yer değiştirmiş | Dış bacakları değiştirin ya da map(d, 0, 1023, 255, 0) |
| Uçta pot ısınıyor, Uno kapanıp açılıyor | Orta bacak 5V ya da GND'ye bağlı | Bağlantı tablosuna dönün |
| LED yanıyor ama parlaklık değişmiyor | LED PWM olmayan bir pinde | ~ işaretli bir pine (9 gibi) alın |
| Pot ısındı, motor yavaş | Motor akımı pot üzerinden geçiyor | Pot yalnız A0'a; motoru sürücüyle sürün |
Kaynaklar
Erişim: 17 Ekim 2026
- Arduino, analogRead(): 10 bit, 0-1023, Uno'da 4,9 mV adım, yaklaşık 100 µs, boşta pin oynar.
- Arduino, analogReference(): 5 V kartlarda varsayılan referans 5 V.
- Arduino, analogWrite() ve map(): Uno PWM pinleri, 0-255, tamsayı hesabı.
- Arduino, AnalogInOutSerial örneği: pot A0'da, LED pin 9'da 220 Ω ile.
- Microchip, ATmega328P veri sayfası: ADC = Vin × 1024 / Vref; ADC 10 kΩ ve altı kaynaklara göre.
- Bourns, PTV09 veri sayfası: lineer ve audio eğriler, ±%20 tolerans, 0,05 W, 280° mekanik açı.
- Wikipedia, Potentiometer: harf kodlarının standart olmaması, "%10 log" eğrinin anlamı.