
Dijital Voltmetre
Başlangıç20 dkArduino'nun analog girişiyle 0 ile 5 V arasındaki gerilimi ölçen bir voltmetre: potansiyometreyi çevirdikçe A0 pinine gelen gerilim değişir; 16x2 LCD'nin üst satırında volt olarak (ör. 3.27 V), alt satırında soldan dolan bir çubuk olarak görünür. Analog okumanın (0–1023) volta nasıl çevrildiğini, okumaların ortalamasıyla titremeyi azaltmayı ve LCD'ye kendi karakterlerini tanıtıp çubuk çizmeyi öğretir. Kitaplık Yöneticisi'nden "LiquidCrystal I2C" kurulur.

Gerekli malzemeler
1 × Arduino Uno R3
1 × Breadboard 830 Pin (MB-102)
1 × 10K Potansiyometre
1 × 16x2 Karakter LCD Ekran (I2C modüllü)
7 × Jumper Kablo - Erkek/Erkek
4 × Jumper Kablo - Erkek/Dişi
Bağlantı adımları
- 1
Güç kablolarını bağla

Kırmızı erkek-erkek jumper kabloyu Arduino'nun güç başlığındaki 5V pinine tak, diğer ucunu breadboard'un üstteki kırmızı çizgili (+) güç sırasına bağla; kablo breadboard'un altından dolanıp gelir. Siyah kabloyu Arduino'nun üst sırasında, 13 numaralı pinin yanındaki GND pinine tak, diğer ucunu üstteki mavi çizgili (−) sıraya bağla. Bu projede yalnızca üstteki güç sıraları kullanılır.
- Arduino 5V → üstteki kırmızı çizgili (+) sıra (kırmızı kablo)
- Arduino GND (üst sıradaki) → üstteki mavi çizgili (−) sıra (siyah kablo)
- 2
Potansiyometreyi tak ve bağla

Potansiyometreyi, üç bacağı üst yarıda F sırasına, 4., 5. ve 6. sütunlara gelecek şekilde tak; gövdesi ortadaki boşluğun üstüne uzanır. Kısa siyah bir kabloyla 4. sütunun J sırasını üstteki (−) sıraya, kısa kırmızı bir kabloyla 6. sütunun J sırasını üstteki (+) sıraya bağla. Turuncu kabloyla Arduino'nun A0 pinini orta bacağın sütununa, 5. sütunun H sırasına bağla (INPUT_PIN A0); kablo potansiyometrenin sağından dolaşıp gelir. İki uç bacak arasında hep 5 V vardır; orta bacak düğmeyi çevirdikçe 0 ile 5 V arasında bir yere kayar ve Arduino bunu ölçer.
- potansiyometre sol bacak → 4. sütun, üst yarı
- potansiyometre orta bacak → 5. sütun, üst yarı
- potansiyometre sağ bacak → 6. sütun, üst yarı
- 4. sütun, üst yarı → üstteki mavi çizgili (−) sıra (siyah kablo)
- 6. sütun, üst yarı → üstteki kırmızı çizgili (+) sıra (kırmızı kablo)
- Arduino A0 → 5. sütun, üst yarı (turuncu kablo)
- 3
LCD ekranı bağla

LCD'nin arkasındaki I2C modülünün dört pinine erkek-dişi kabloların dişi uçlarını tak. GND'yi üstteki (−) sıraya, VCC'yi üstteki (+) sıraya, SDA'yı 18. sütunun, SCL'yi 19. sütunun üst yarısına bağla. Sonra mavi bir erkek-erkek kabloyla Arduino'nun A4 pinini 18. sütunun, sarı kabloyla A5 pinini 19. sütunun üst yarısına bağla. I2C'de ekran yalnızca iki veri kablosuyla (SDA ve SCL) konuşur; kod onu adresiyle bulur, çoğunda 0x27.
- LCD ekran GND → üstteki mavi çizgili (−) sıra (siyah kablo)
- LCD ekran VCC → üstteki kırmızı çizgili (+) sıra (kırmızı kablo)
- LCD ekran SDA → 18. sütun, üst yarı (mavi kablo)
- LCD ekran SCL → 19. sütun, üst yarı (sarı kablo)
- Arduino A4 → 18. sütun, üst yarı (mavi kablo)
- Arduino A5 → 19. sütun, üst yarı (sarı kablo)
Arduino kodu
Kodu indir (.ino)Wokwi'de dene
// Kitaplık Yöneticisi'nden kurulacak:
// "LiquidCrystal I2C"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Ölçülen gerilimin girdiği analog pin
const int INPUT_PIN = A0;
// Arduino'nun 5V'u: multimetren varsa
// 5V pininde ölçtüğünü yaz, sonuç düzelir
const float VREF = 5.00;
// Ortalaması alınan okuma sayısı
const int SAMPLES = 16;
// Ölçümler arası süre (ms)
const unsigned long READ_EVERY = 300;
// I2C adresi çoğunda 0x27, bazısında 0x3F
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Çubuğun beş parçası: 1-5 sütunu dolu
// kutular, LCD'ye özel karakter olarak
void makeBars() {
for (int level = 0; level < 5; level++) {
// Soldan level+1 sütunu dolu satır
byte row = 0;
for (int col = 0; col <= level; col++) {
row |= 0x10 >> col;
}
byte shape[8];
for (int y = 0; y < 8; y++) shape[y] = row;
lcd.createChar(level, shape);
}
}
// Okumaların ortalaması: sayı titremez
int readAverage() {
long sum = 0;
for (int i = 0; i < SAMPLES; i++) {
sum += analogRead(INPUT_PIN);
}
return sum / SAMPLES;
}
// Alt satır: 0-5 V, 16 kutuluk bir çubuk;
// her kutu 5 adım, toplam 80 adım
void showBar(int raw) {
int steps = (long)raw * 80 / 1023;
lcd.setCursor(0, 1);
for (int cell = 0; cell < 16; cell++) {
int fill = steps - cell * 5;
if (fill >= 5) {
lcd.write(byte(4));
} else if (fill > 0) {
lcd.write(byte(fill - 1));
} else {
lcd.print(' ');
}
}
}
void setup() {
lcd.init();
lcd.backlight();
makeBars();
Serial.begin(9600);
}
void loop() {
int raw = readAverage();
// 0-1023 arası okuma, volta çevrilir
float volts = raw * VREF / 1023.0;
lcd.setCursor(0, 0);
lcd.print("Gerilim: ");
lcd.print(volts, 2);
// Sondaki boşluk eski yazıyı siler
lcd.print(" V ");
showBar(raw);
Serial.print("Gerilim: ");
Serial.print(volts, 2);
Serial.print(" V (A0 = ");
Serial.print(raw);
Serial.println(")");
delay(READ_EVERY);
}
Seri Monitörde göreceğin
Gerilim: 0.00 V (A0 = 0) Gerilim: 1.27 V (A0 = 260) Gerilim: 2.50 V (A0 = 512) Gerilim: 3.79 V (A0 = 776) Gerilim: 5.00 V (A0 = 1023)
Bir kablo yerinde değilse
Gerilim: 1.84 V (A0 = 377) Gerilim: 2.31 V (A0 = 473) Gerilim: 0.97 V (A0 = 199) Gerilim: 2.66 V (A0 = 544)
Sonuç
Kodu yükleyince LCD'nin üst satırında "Gerilim: 2.50 V" gibi bir değer, alt satırında soldan dolan bir çubuk görünür. Potansiyometreyi bir uca çevirince 0.00 V'a, öbür uca çevirince 5.00 V'a yakın bir değer okursun; çubuk da boşalıp dolar. Değerler Seri Monitöre de yazılır, yanında A0'ın 0 ile 1023 arasındaki ham okuması durur: Arduino 0–5 V'u 1024 basamağa böler, her basamak yaklaşık 4.9 mV'tur. Uçta 4.95 ya da 5.07 gibi bir değer görürsen Arduino'nun 5V'u tam 5 değildir (USB'den gelen gerilim biraz oynar); multimetren varsa 5V pinini ölç ve koddaki VREF'e yaz. Sayılar kendi kendine rastgele oynuyorsa orta bacağın A0 kablosu yerinde değildir. Çubuk ters yönde doluyorsa uç bacakların kablolarını yer değiştir. Ekranın ışığı yanıyor ama yazı yoksa I2C modülünün arkasındaki mavi trimpotu çevirerek kontrastı ayarla; hâlâ yoksa koddaki 0x27'yi 0x3F yap. Bir kalem pili de ölçebilirsin: orta bacağın kablosunu A0'dan çıkar, pilin + ucunu A0'a, − ucunu GND'ye bağla; 1.5 V civarı görürsün. A0'a asla 5 V'tan yüksek gerilim verme: 9V pil Arduino'yu bozar.
Benzer projeler
Potansiyometreyle LED ParlaklığıBaşlangıç20 dkPotansiyometrenin düğmesini çevirerek bir LED'in parlaklığını ayarla: düğme bir uçtayken LED söner, öbür uca doğru çevirdikçe parlar. Okunan değer ve LED'e verilen parlaklık Seri Monitöre de yazılır. analogRead ile analog giriş okumayı, map ile bir aralığı başka bir aralığa çevirmeyi ve analogWrite ile PWM kullanmayı öğretir. Ek kütüphane gerekmez.Projeye git
Potansiyometreyle ServoBaşlangıç25 dkPotansiyometrenin düğmesini çevirdikçe SG90 servo motor da aynı yöne döner: düğmenin bir ucu 0°, öbür ucu 180°. Servonun durduğu açı Seri Monitöre de yazılır. Bir kütüphaneyi (Servo) projeye eklemeyi, analogRead ile okunan değeri map ile açıya çevirmeyi ve servo.write ile bir motoru istenen açıya götürmeyi öğretir. Servo kütüphanesi Arduino IDE ile gelir, ayrıca kurmak gerekmez.Projeye git
Arduino'suz Karanlıkta Yanan LambaBaşlangıç25 dkArduino ve kod olmadan, yalnızca bir 9V pil, BC547 transistör, LDR ve potansiyometreyle kurulan bir gece lambası: ortalık kararınca LED kendiliğinden yanar, aydınlanınca söner. Potansiyometreyle lambanın ne kadar karanlıkta yanacağını sen ayarlarsın. Temel elektroniğin üç taşını öğretir: gerilim bölücü (potansiyometre ve LDR), transistörün küçük bir beyz akımıyla büyük bir akımı açıp kapayan bir anahtar olarak kullanılması ve LED'in akımını dirençle sınırlamak. Arduino projelerinde hep kullanılan bu parçaların Arduino'suz da nasıl çalıştığını görürsün.Projeye git
Uygulamada her bağlantıyı tek tek işaretle, envanterindeki parçalarla eşleştir ve kaldığın yerden devam et.
