Temeller · 8 dk okuma

GND Nedir? Ortak Toprak Neden Gerekir, Servo ve Sensör Örnekleri

GND nedir, ortak toprak neden şart? Referans gerilim, harici güç kaynağı ile Arduino GND birleştirme, toprak döngüsü, yıldız topraklama ve şebeke toprağı farkı.

GND nedir sorusunun kısa cevabı: devredeki tüm gerilimlerin ölçüldüğü 0 voltluk referans noktasıdır. İngilizce "ground" kelimesinin kısaltmasıdır ve Türkçede toprak, şase ya da eksi uç olarak da anılır. Arduino'nun 5V pini aslında "GND'ye göre 5 volt" demektir; bir sensörün 2,5 V çıkış vermesi de ancak bir GND'ye göre anlam taşır. Yeni başlayanların en sık yaşadığı gizemli arızaların büyük bölümü, yani titreyen servolar, saçma değer okuyan sensörler ve kendi kendine resetlenen kartlar, aslında tek bir eksik kablodan gelir: ortak toprak.

Bu yazıda GND'nin neden bir "referans" olduğunu basit bir benzetmeyle anlatacak, harici güç kaynağı kullanırken GND'leri doğru birleştirmeyi gösterecek, toprak döngüsü ve gürültünün nereden geldiğini hesapla açıklayacak ve motor ile sensör topraklarını yıldız topraklama yöntemiyle ayırmayı öğreteceğim. Ayrıca devre GND'sinin evdeki prizlerin topraklamasından farkını ve GND'lerin bilerek ayrı tutulduğu durumları da göreceğiz. Güç beslemesinin temellerini Arduino güç besleme yazısında bulabilirsin.

GND nedir? Gerilim neden iki nokta arasında ölçülür?

Gerilim tek bir noktanın özelliği değildir; iki nokta arasındaki potansiyel farkıdır. Bunu yükseklik gibi düşünebilirsin: bir masanın "80 cm yüksek" olduğunu söylerken farkında olmadan yeri referans alırsın. Aynı masa bir binanın 10. katındaysa denize göre yüksekliği 30 metreyi geçer. Elektrikte GND o "zemin"dir. Multimetrenin siyah probunu GND'ye, kırmızısını bir noktaya değdirdiğinde o noktanın GND'ye göre gerilimini okursun. Siyah probu başka bir yere koyarsan aynı noktada bambaşka bir değer görürsün. Bu yüzden bir devrede "5 V" dediğimizde her zaman sessizce "bu devrenin GND'sine göre" deriz.

TerimAnlamıNerede görürsün?
GND / 0VDevrenin referans noktasıArduino, ESP32, Pico ve tüm modüllerde
Eksi (-)Güç kaynağının dönüş ucu, genelde GND'ye bağlanırPil, adaptör, laboratuvar güç kaynağı
VCC / VIN / 5V / 3V3GND'ye göre pozitif beslemeModül ve kart besleme pinleri
COMOrtak uç; çoğu zaman GND ama rölelerde anahtarın ortak kontağıRöle, buton, ölçü aletleri
AGND / DGNDAnalog ve dijital kısmın ayrı toprakları, tek noktada birleşirADC, ses ve hassas ölçüm devreleri
ŞaseMetal kasaya bağlı toprakKasalı cihazlar, araçlar
Koruma toprağı (PE)Prizdeki sarı-yeşil kablo, can güvenliği için220 V şebeke tesisatı

Ortak toprak neden gerekir?

Arduino bir servoya ya da modüle sinyal gönderdiğinde aslında "pinim kendi GND'me göre 5 V" der. Alıcı taraf ise bu sinyali kendi GND'sine göre okur. İki cihazın GND'leri bağlı değilse aralarında ortak bir zemin yoktur; Arduino'nun 5 V'u servonun gözünde 5 V da olabilir, 2 V da, -3 V da. Daha temel bir sorun da şudur: akım her zaman bir kapalı döngüde akar. Sinyal akımı Arduino'nun pininden çıkar, alıcının girişinden geçer ve GND üzerinden geri dönmek zorundadır. Dönüş yolu yoksa sinyal hiç oluşmaz ya da kablolar anten gibi davranıp çevredeki parazitleri toplar. Kısacası: iki cihaz birbirine sinyal gönderiyorsa GND'leri birleşik olmalıdır.

Harici güç kaynağı ve Arduino: GND'leri birleştirmek

MG996R servo motor
MG996R gibi güçlü servolar zorlandığında 1 A'in üstünde akım çeker; Arduino'nun 5V pininden değil, harici bir 5–6 V kaynaktan beslenmelidir.

En yaygın senaryo şudur: servo, motor ya da LED şeridi Arduino'nun kaldıramayacağı kadar akım çektiği için ayrı bir adaptörle beslenir. Doğru bağlantıda yalnız GND'ler birleştirilir, artı uçlar ayrı kalır. Böylece yük akımı harici kaynaktan gelir ve ona geri döner, Arduino ise yalnız sinyali verir. Aşağıdaki tabloda harici 5 V adaptörle beslenen bir MG996R servonun bağlantısı var; aynı mantık 12 V'luk bir LED şeridi süren MOSFET ya da bir motor sürücü kartı için de geçerlidir.

KabloNereye bağlanır?Neden?
Servo kırmızı (+)Harici adaptör +5 VMotor akımı Arduino'dan geçmesin
Servo kahverengi (-)Harici adaptör GNDMotor akımının dönüş yolu
Servo turuncu (sinyal)Arduino D9PWM konum sinyali
Köprü kablosuAdaptör GND ile Arduino GND arasıSinyalin ortak referansı
Adaptör +5 V ile Arduino 5VBağlanmazİki kaynak birbirine akım basabilir
C++ (Arduino IDE)
1// Harici 5 V ile servo, ortak GND / servo on an external 5 V supply, common GND
2#include <Servo.h>
3
4const int SERVO_PIN = 9;   // turuncu sinyal kablosu / orange signal wire
5Servo servo;
6
7void setup() {
8  servo.attach(SERVO_PIN);
9}
10
11void loop() {
12  for (int a = 0; a <= 180; a += 2) {   // 0 -> 180 derece / degrees
13    servo.write(a);
14    delay(15);
15  }
16  for (int a = 180; a >= 0; a -= 2) {   // 180 -> 0 derece / degrees
17    servo.write(a);
18    delay(15);
19  }
20}
Köprü kablosunu unutursan servo büyük olasılıkla ya hiç kıpırdamaz ya da rastgele titrer; çünkü PWM sinyalinin dönüş yolu yoktur. Tersi de tehlikelidir: iki kaynağın artı uçlarını birleştirmek, gerilimleri birkaç yüz milivolt farklı olsa bile birinin öbürüne akım basmasına ve regülatörlerin ısınmasına yol açar. Kural basittir: GND'ler birleşir, artılar ayrı kalır. Servoların akım ihtiyacını ve doğru beslemeyi servo motor rehberinde ayrıntılı bulabilirsin.

Gerçek arıza örnekleri: "servo çalışmıyor", "sensör saçmalıyor"

BelirtiToprakla ilgili nedenÇözüm
Servo hiç dönmüyor ya da titriyorHarici kaynağın GND'si Arduino'ya bağlı değilİki GND'yi kısa bir kabloyla birleştir
Motor çalışınca Arduino resetleniyorMotor akımı Arduino GND'si üzerinden dönüyor, gerilim çöküyorMotor GND'sini doğrudan kaynağa götür, yıldız topraklama yap
Analog sensör motor çalışınca zıplıyorOrtak GND kablosunda motor akımının gerilim düşümüSensör GND'sini motor yolundan ayır
Seri haberleşmede anlamsız karakterlerİki kartın GND'si bağlı değilTX, RX ile birlikte GND'yi de bağla
LED şerit MOSFET ile hiç yanmıyor12 V kaynağın eksisi Arduino GND'sine bağlı değilMOSFET source ucunu ve iki GND'yi birleştir
Dokununca değer değişiyorGiriş boşta ya da GND bağlantısı gevşekPull-up/pull-down ekle, GND kablosunu kontrol et

Arduino'nun motor çalışınca resetlenmesi bu tablodaki en kafa karıştırıcı arızadır, çünkü kablolar "doğru" görünür. Ayrıntılı bir arıza tespiti için Arduino kendi kendine resetleniyor yazısındaki adımları da izleyebilirsin; ESP32 kullanıyorsan aynı sorun genellikle bir brownout mesajıyla kendini gösterir.

Toprak döngüsü ve gürültü: GND kablosu da bir dirençtir

Şemalarda GND tek bir çizgiyle gösterildiği için her yerde tam 0 V olduğunu düşünürüz. Gerçekte breadboard yolları, jumper kablolar ve lehim noktaları küçük de olsa direnç taşır. Ohm kanunu burada acımasızdır: V = I × R. 2 A çeken bir motorun dönüş akımı, toplam direnci 0,1 Ω olan bir GND kablosundan geçerse kablonun iki ucu arasında 0,2 V fark oluşur. O kabloyu bir analog sensörle paylaşıyorsan sensörün "0 V"u artık 0,2 V yukarıdadır. Arduino Uno'nun 10 bitlik ADC'sinde bu yaklaşık 41 birimlik bir hata demektir (0,2 / 5 × 1023). Motor PWM ile sürülüyorsa bu fark saniyede yüzlerce kez gidip gelir ve okumaların zıpladığını görürsün.

Toprak döngüsü ise iki cihaz arasında birden fazla GND yolu olduğunda ortaya çıkar. Örneğin Arduino hem USB üzerinden bilgisayara, hem de ayrı bir kabloyla topraklı bir güç kaynağına bağlıysa, GND akımı iki farklı yoldan dolaşabilir ve bu kapalı halka çevredeki manyetik alanları toplayan bir anten gibi davranır. Sonuç, ses devrelerinde duyulan vınlama ya da ölçümlerde 50 Hz'lik dalgalanmadır. Çözüm GND'yi kesmek değil, tek bir yol bırakmak ve büyük akımların hassas sinyallerle aynı kabloyu paylaşmasını önlemektir.

Yıldız topraklama: motor ve sensör GND'lerini ayırmak

MB102 breadboard güç modülü
MB102 gibi breadboard güç modülleri iki yan hatta 5 V ya da 3,3 V verir; iki hattın GND'si modülde birleşiktir ve iyi bir yıldız noktası olur.

Yıldız topraklama, tüm GND kablolarının zincir gibi birbirine eklenmek yerine tek bir merkezi noktada buluşmasıdır. Motorun büyük akımı kendi kalın kablosuyla doğrudan güç kaynağının eksisine döner; Arduino'nun, sensörlerin ve sinyal devrelerinin GND'leri ise ayrı ince kablolarla aynı merkez noktaya gelir. Böylece motor akımının oluşturduğu gerilim düşümü yalnız motor kablosunda kalır ve sensörlerin referansını kaydırmaz. Uygulamada şu sırayı izle:

  1. Güç kaynağının eksi ucunu ya da bir vida klemensini yıldız noktası olarak seç.
  2. Motor sürücünün (L298N, MOSFET, röle bobini) GND'sini kalın ve kısa bir kabloyla doğrudan bu noktaya götür.
  3. Arduino'nun GND'sini ayrı bir kabloyla aynı noktaya bağla; motor sürücünün GND'sine "ara durak" yapma.
  4. Analog sensörlerin GND'sini Arduino'nun GND pinine bağla; böylece sensör ile ADC aynı referansı paylaşır.
  5. Motorun uçlarına 100 nF seramik kondansatör, sürücünün besleme girişine 100–470 µF elektrolitik kondansatör ekle.
  6. Motor ve sinyal kablolarını mümkün olduğunca ayrı yollardan geçir, motor kablolarını birbirine sar.
Breadboard'un ince yolları birkaç yüz miliamperden fazlası için tasarlanmamıştır ve temas dirençleri yüksektir. Motor akımlarını breadboard üzerinden geçirme; motor ve güç kablolarını vida klemenslerine ya da doğrudan sürücü kartına bağla, breadboard'u yalnız sinyaller için kullan. Kondansatörlerin bu işte neden işe yaradığını kondansatör nedir yazısında bulabilirsin.

Gürültüyü ölçmek: Arduino ile basit GND testi

Topraklamanın ne kadar iyi olduğunu tahmin etmek yerine ölçebilirsin. İki adet 10 kΩ dirençle 5V ile GND arasında bir gerilim bölücü kur ve orta noktasını A0'a bağla; bu nokta sabit 2,5 V olmalıdır. Aşağıdaki kod A0'dan art arda 200 ölçüm alır ve en büyük ile en küçük değer arasındaki farkı tepe-tepe gürültü olarak milivolt cinsinden yazar. Önce motor kapalıyken, sonra motor çalışırken ölç; ardından GND kablolarını yıldız topraklamaya göre düzenleyip tekrar ölç.

C++ (Arduino IDE)
1// Basit GND gürültü ölçer / simple ground noise meter
2const int SENSOR_PIN = A0;   // ölçülen sinyal / signal under test
3const int SAMPLES = 200;     // yaklaşık 22 ms'lik örnek / about 22 ms of samples
4const float VREF = 5.0;      // Uno ADC referansı / Uno ADC reference
5
6void setup() {
7  Serial.begin(115200);
8}
9
10void loop() {
11  int minV = 1023, maxV = 0;
12  long sum = 0;
13  for (int i = 0; i < SAMPLES; i++) {
14    int v = analogRead(SENSOR_PIN);
15    if (v < minV) minV = v;
16    if (v > maxV) maxV = v;
17    sum += v;
18  }
19  float avgVolt = sum / (float)SAMPLES * VREF / 1023.0;
20  float ripplemV = (maxV - minV) * VREF / 1023.0 * 1000.0;   // tepe-tepe / peak-to-peak
21
22  Serial.print("ortalama / average: ");
23  Serial.print(avgVolt, 3);
24  Serial.print(" V   tepe-tepe / peak-to-peak: ");
25  Serial.print(ripplemV, 0);
26  Serial.println(" mV");
27  delay(500);
28}

İyi kurulmuş bir devrede tepe-tepe gürültü 1–2 ADC birimi, yani 5–10 mV civarındadır. Motor çalışınca bu değer 50 mV'un üstüne çıkıyorsa GND yolunu motorla paylaşan bir kablo vardır. 200 mV ve üzeri ise genellikle gevşek bir GND bağlantısını, breadboard üzerinden geçen motor akımını ya da hiç birleştirilmemiş bir harici kaynağı gösterir. Bu basit test, "sensör saçmalıyor" şikâyetlerinin çoğunda sorunun sensörde değil topraklamada olduğunu birkaç dakikada kanıtlar.

Ne zaman GND'ler bilerek ayrı tutulur?

"Her şeyin GND'sini birleştir" kuralının tek istisnası yalıtımdır. Bir optokuplör ya da röle, sinyali ışık ya da manyetik alanla taşır ve iki tarafın arasında elektriksel bağlantı bırakmaz. Bu durumda iki tarafın GND'leri bilerek ayrı tutulur: biri Arduino tarafı, öbürü 220 V ya da gürültülü motor tarafıdır. JD-VCC atlamalı röle modüllerinde atlama çıkarılıp bobin ayrı bir kaynakla beslendiğinde, o kaynağın GND'si Arduino'ya bağlanmaz; yalıtımın bütün amacı budur. Ayrıntılar için optokuplör nedir ve röle modülü nedir yazılarına bakabilirsin. Yalıtım yoksa, sinyal alışverişi yapan her iki devre ortak GND ister.

Şebeke toprağı ile devre GND'si aynı şey mi?

Hayır. Evdeki prizlerin sarı-yeşil kablosu koruma toprağıdır ve gerçekten toprağa gömülü bir elektrota gider. Görevi can güvenliğidir: metal kasalı bir cihazda faz kablosu kasaya değerse akım bu yoldan akar ve sigorta ya da kaçak akım rölesi devreyi keser. Arduino devresindeki GND ise yalnız o devrenin kendi referansıdır ve pil ya da adaptörle beslenen bir projede dünyayla hiçbir bağlantısı yoktur. Bazı adaptörlerde ve bilgisayarlarda devre GND'si koruma toprağına bağlanmış olabilir; toprak döngülerinin bir nedeni de budur. Hobi projelerinde devre GND'sini şebekenin nötr ya da toprak kablosuna kendin bağlamaya çalışma.

220 V şebeke gerilimi öldürücüdür. Röle ya da optokuplörle şebekeye bağlanan projelerde düşük gerilim tarafının GND'si ile şebeke tarafı asla birleştirilmez; iki taraf arasında en az birkaç milimetrelik yalıtım mesafesi bırakılır. Emin değilsen şebeke tarafını bir elektrikçiye yaptır.

ESP32 ve Pico ile 5 V modüllerde ortak GND

ESP32 ve Raspberry Pi Pico 3,3 V ile çalışır; 5 V'luk bir modülü bağlarken araya bir seviye dönüştürücü koyarsın. Seviye dönüştürücünün düşük (LV) ve yüksek (HV) taraflarının GND pinleri de vardır ve ikisi birden bağlanmalıdır; dönüştürücü iki tarafın sinyalini ancak ortak bir referansa göre çevirebilir. Aynı şey ESP32'yi USB'den, 12 V'luk LED şeridi ise ayrı bir adaptörden beslediğin durumda da geçerlidir: MOSFET'in source ucu, adaptörün eksisi ve ESP32'nin GND'si tek noktada buluşmalıdır. Dönüştürücülerin çalışma mantığını lojik seviye dönüştürücü yazısında bulabilirsin.

GND kontrol listesi

  • Sinyal alışverişi yapan her iki cihazın GND'si birbirine bağlı mı?
  • Harici kaynaklarda yalnız GND'ler mi birleşik, artı uçlar ayrı mı?
  • Motor, röle ve LED şeridi akımları Arduino'nun GND pininden geçmeden kaynağa dönüyor mu?
  • Analog sensörler motor akımı taşımayan bir GND yoluna mı bağlı?
  • GND kabloları sinyal kablolarından kalın ve mümkün olduğunca kısa mı?
  • Yalıtım için kullanılan optokuplör ve JD-VCC'li rölelerde iki taraf gerçekten ayrı mı?
  • Şüphe varsa multimetreyi süreklilik (bip) konumunda kullanarak GND noktaları arasında bağlantıyı doğruladın mı?

GND, devrenin en sessiz ama en önemli kablosudur: doğru kurulduğunda kimse fark etmez, unutulduğunda her şey bozulur. Multimetreyle süreklilik ölçmeyi bilmiyorsan multimetre nasıl kullanılır yazısı işini kolaylaştırır. BlueGrays uygulamasında servo motor, L298N ile robot araba, engelden kaçan robot, röle ile 220 V lamba ve akıllı sulama gibi harici güç kaynağı gerektiren projeleri devre şemaları ve kodlarıyla adım adım bulabilir, GND bağlantılarını şema üzerinde tek tek takip edebilirsin.

Sıkça sorulan sorular

GND nedir, ne işe yarar?

GND (ground), devredeki tüm gerilimlerin ölçüldüğü 0 voltluk referans noktasıdır. Akımın kaynağa geri döndüğü yolu da oluşturur. Arduino'da 5V ya da 3,3V dendiğinde her zaman GND'ye göre değer kastedilir.

GND ile toprak aynı şey mi?

Elektronikte GND devrenin kendi referansıdır ve gerçek toprakla bağlantısı olmak zorunda değildir. Prizdeki sarı-yeşil koruma toprağı ise can güvenliği için yere gömülü bir elektroda gider. Pil ya da adaptörle çalışan bir Arduino projesinde GND'nin şebeke toprağıyla bağlantısı yoktur.

Harici güç kaynağının GND'si Arduino'ya bağlanmalı mı?

Evet, harici kaynakla beslenen cihaz Arduino'dan sinyal alıyorsa iki GND birleştirilmelidir. Yalnız GND'ler birleşir, artı uçlar ayrı kalır. Aksi halde sinyalin ortak referansı ve dönüş yolu olmaz; servo titrer ya da hiç çalışmaz.

GND bağlanmazsa ne olur?

Sinyal alan cihaz gerilimi doğru yorumlayamaz; servolar rastgele hareket eder, seri haberleşmede anlamsız karakterler görülür, sensörler kararsız değer okur. Bazı durumlarda akım beklenmedik yollardan dönerek pinlere zarar verebilir.

Eksi (-) ile GND aynı mı?

Tek beslemeli devrelerin çoğunda güç kaynağının eksi ucu GND olarak kullanılır, bu yüzden pratikte aynı noktadır. Ancak ±12 V gibi simetrik beslemelerde GND iki kaynağın orta noktasıdır ve eksi uç -12 V'tur. Bu yüzden şemadaki GND sembolüne bakmak en doğrusudur.

Toprak döngüsü nasıl önlenir?

İki cihaz arasında yalnız bir GND yolu bırak, büyük akım taşıyan motor kablolarını hassas sensör GND'lerinden ayır ve hepsini tek bir yıldız noktasında birleştir. Gerekirse optokuplör ya da yalıtımlı modüllerle iki tarafı elektriksel olarak ayır.

Tüm projeleri gör
Servo Motor Kullanım
#35Başlangıç
Premium

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

4.7(48)
67
Potansiyometre İle Servo Motor Kullanım
#36Başlangıç
Premium

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

4.6(37)
53
L298N ile Bluetooth Kontrollü Araba
#80İleri
Premium

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

5.0(38)
65
Engelden Kaçan Robot
#81İleri
Premium

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

5.0(38)
49
220V Ampülü Buton(Push) İle Yakma
#19İleri
Premium

220V Ampülü Buton(Push) İle Yakma

Butona bastığın sürece 220 voltluk gerçek bir ampul yanar, bıraktığın anda söner. Arduino'nun küçük sinyali ampulü doğrudan yakamaz; araya röle denen elektrikli bir anahtar girer ve ampulün devresini

4.4(30)
38
Akıllı Sulama İstasyonu
#83İleri
Premium

Akıllı Sulama İstasyonu

Tatile gidince çiçeklerin kurumasın diye kendi kendine sulayan bir bahçıvan. Toprak nem sensörü toprağın ne kadar ıslak olduğunu ölçer; toprak kuruyunca Arduino su pompasını birkaç saniye çalıştırır v

5.0(42)
57
Ldr İle Işık Şiddeti Okuma
#11Başlangıç

Ldr İle Işık Şiddeti Okuma

Odanın ne kadar aydınlık olduğunu sayıyla görmek ister misin? Işığa duyarlı küçük bir parça olan LDR ortam ışığını ölçer ve Arduino bu değeri yarım saniyede bir bilgisayar ekranına yazar. Elinle üstün

4.6(81)
141
LCD Ekran ile Dijital Voltmetre
#56Orta
Premium

LCD Ekran ile Dijital Voltmetre

Pilin ya da adaptörün ne kadar gerilim verdiğini kendi yaptığın ölçü aletiyle öğren. İki dirençten oluşan bir bölücü yüksek gerilimi kartın okuyabileceği seviyeye indirir, Arduino da gerçek değeri hes

4.5(27)
36