Dasar · 9 mnt baca

Apa Itu GND? Kenapa Servo dan Sensor Memerlukan Ground Bersama

Apa itu GND dan kenapa ground bersama sangat penting? Tegangan referensi, menghubungkan catu daya eksternal ke GND Arduino, ground loop, grounding bintang, dan pembumian listrik PLN.

Jawaban singkat untuk apa itu GND: GND adalah titik referensi 0 volt yang menjadi acuan pengukuran setiap tegangan dalam rangkaian. Namanya berasal dari “ground”, dan kamu juga akan menjumpai sebutan common, sasis, atau sekadar sisi negatif. Pin 5V Arduino sebenarnya berarti “5 volt terhadap GND”; output sensor 2,5 V juga hanya bermakna jika dibandingkan dengan GND. Sebagian besar gangguan misterius yang ditemui pemula, seperti servo yang bergetar, sensor yang membaca nilai tidak masuk akal, dan board yang reset sendiri, sebenarnya disebabkan oleh satu kabel yang tidak terpasang: ground bersama.

Dalam artikel ini saya akan menjelaskan dengan analogi sederhana mengapa GND merupakan “referensi”, menunjukkan cara menghubungkan ground dengan benar ketika memakai catu daya eksternal, menjelaskan dengan angka asal ground loop dan derau, serta mengajarkan cara memisahkan ground motor dan sensor dengan grounding bintang. Kita juga akan membahas perbedaan GND rangkaian dengan pembumian pada stopkontak dan kondisi ketika ground sengaja dipisahkan. Dasar-dasar pemberian daya ke board bisa kamu baca di Cara Memberi Daya ke Arduino.

Apa itu GND? Kenapa tegangan diukur antara dua titik?

Tegangan bukan sifat satu titik; tegangan adalah beda potensial antara dua titik. Bayangkan seperti ketinggian: ketika kamu mengatakan meja “tingginya 80 cm”, tanpa sadar kamu memakai lantai sebagai referensi. Jika meja yang sama berada di lantai ke-10 sebuah gedung, ketinggiannya di atas permukaan laut lebih dari 30 meter. Dalam elektronika, GND adalah “lantai” tersebut. Ketika kamu menyentuhkan probe hitam multimeter ke GND dan probe merah ke suatu titik, kamu membaca tegangan titik tersebut terhadap GND. Pindahkan probe hitam ke tempat lain dan titik yang sama akan menunjukkan nilai yang benar-benar berbeda. Jadi, ketika kita menyebut “5 V” dalam rangkaian, selalu tersirat maksud “terhadap GND rangkaian ini”.

IstilahArtiTempat kamu menjumpainya
GND / 0VTitik referensi rangkaianArduino, ESP32, Pico, dan setiap modul
Negatif (-)Terminal jalur balik catu daya, biasanya terhubung ke GNDBaterai, adaptor, catu daya lab
VCC / VIN / 5V / 3V3Catu positif terhadap GNDPin daya modul dan board
COMTerminal common; sering berupa GND, tetapi pada relay merupakan kontak common sakelarRelay, tombol, alat ukur
AGND / DGNDGround analog dan digital terpisah, dihubungkan pada satu titikADC, rangkaian audio dan pengukuran presisi
SasisGround yang terhubung ke casing logamPeralatan bercasing, kendaraan
Pembumian pelindung (PE)Kabel hijau-kuning pada stopkontak, untuk keselamatanPengkabelan listrik PLN

Kenapa kamu memerlukan ground bersama?

Ketika Arduino mengirim sinyal ke servo atau modul, sebenarnya Arduino mengatakan “pinku berada pada 5 V terhadap GND-ku”. Penerima membaca sinyal tersebut terhadap GND-nya sendiri. Jika ground kedua perangkat tidak dihubungkan, tidak ada lantai bersama di antara keduanya; bagi servo, 5 V dari Arduino bisa berarti 5 V, 2 V, atau -3 V. Ada juga masalah yang lebih mendasar: arus selalu mengalir dalam loop tertutup. Arus sinyal keluar dari pin Arduino, melewati input penerima, dan harus kembali melalui GND. Tanpa jalur balik, sinyal tidak pernah terbentuk dengan benar, atau kabel bertindak seperti antena dan menangkap interferensi. Singkatnya: jika dua perangkat saling mengirim sinyal, ground keduanya harus dihubungkan.

Catu daya eksternal dan Arduino: menghubungkan ground

Motor servo MG996R
Servo bertenaga besar seperti MG996R menarik arus lebih dari 1 A ketika dibebani; dayanya harus berasal dari catu daya eksternal 5-6 V, bukan dari pin 5V Arduino.

Skenario paling umum: servo, motor, atau LED strip diberi daya dari adaptor terpisah karena menarik arus lebih besar daripada yang bisa disediakan Arduino. Pada pengkabelan yang benar, hanya ground yang dihubungkan dan kabel positif tetap terpisah. Dengan begitu, arus beban berasal dari catu daya eksternal dan kembali ke sana, sementara Arduino hanya menyediakan sinyal. Tabel di bawah menunjukkan pengkabelan servo MG996R yang diberi daya oleh adaptor eksternal 5 V; prinsip yang sama berlaku pada MOSFET yang mengendalikan LED strip 12 V atau pada board driver motor.

KabelTerhubung keAlasannya?
Kabel merah servo (+)+5 V adaptor eksternalMencegah arus motor melewati Arduino
Kabel cokelat servo (-)GND adaptor eksternalJalur balik arus motor
Kabel oranye servo (sinyal)Arduino D9Sinyal posisi PWM
Kabel jumperAntara GND adaptor dan GND ArduinoReferensi bersama untuk sinyal
+5 V adaptor ke 5V ArduinoTidak dihubungkanKedua catu daya bisa saling mendorong arus ke satu sama lain
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}
Jika kamu lupa memasang kabel jumper, kemungkinan besar servo tidak akan bergerak sama sekali atau bergerak menyentak secara acak, karena sinyal PWM tidak memiliki jalur balik. Kebalikannya juga berbahaya: menghubungkan kabel positif dua catu daya membuat salah satunya mendorong arus ke yang lain meskipun tegangannya hanya berbeda beberapa ratus milivolt, dan regulator menjadi panas. Aturannya sederhana: ground dihubungkan, positif tetap terpisah. Rincian kebutuhan arus servo dan pemberian daya yang benar bisa kamu baca dalam panduan motor servo.

Gangguan nyata: “servo tidak berfungsi”, “sensor membaca nilai tidak masuk akal”

GejalaPenyebab terkait groundSolusi
Servo tidak berputar atau bergetarGND catu daya eksternal tidak terhubung ke ArduinoHubungkan kedua ground dengan kabel pendek
Arduino reset ketika motor mulai berputarArus motor kembali melalui GND Arduino dan tegangan merosotHubungkan GND motor langsung ke catu daya, gunakan grounding bintang
Nilai sensor analog melonjak ketika motor berputarJatuh tegangan akibat arus motor pada kabel GND bersamaPisahkan GND sensor dari jalur motor
Karakter sampah pada komunikasi serialGround kedua board tidak terhubungHubungkan GND selain TX dan RX
LED strip tidak pernah menyala dengan MOSFETTerminal negatif catu daya 12 V tidak terhubung ke GND ArduinoHubungkan source MOSFET dan kedua ground
Pembacaan berubah ketika disentuhInput mengambang atau sambungan GND longgarTambahkan pull-up/pull-down, periksa kabel GND

Arduino yang reset ketika motor mulai berputar merupakan gangguan paling membingungkan dalam tabel ini, karena pengkabelannya terlihat “benar”. Untuk diagnosis terperinci, kamu juga bisa mengikuti langkah-langkah dalam Kenapa Arduino-ku terus reset?; pada ESP32, masalah yang sama biasanya muncul sebagai pesan brownout.

Ground loop dan derau: kabel GND juga merupakan resistor

Karena skema rangkaian menggambarkan GND sebagai satu garis, kita menganggap tegangannya tepat 0 V di mana pun. Kenyataannya, jalur breadboard, kabel jumper, dan sambungan solder semuanya memiliki hambatan. Hukum Ohm tetap berlaku tanpa kompromi: V = I × R. Jika arus balik motor 2 A mengalir melalui kabel GND dengan hambatan total 0,1 Ω, terdapat beda tegangan 0,2 V antara kedua ujung kabel tersebut. Jika sensor analog memakai kabel yang sama, “0 V” sensor kini berada 0,2 V lebih tinggi. Pada ADC 10-bit Arduino Uno, itu menghasilkan galat sekitar 41 hitungan (0,2 / 5 × 1023). Jika motor dikendalikan dengan PWM, offset tersebut berayun bolak-balik ratusan kali per detik dan kamu akan melihat pembacaan melonjak-lonjak.

Ground loop muncul ketika ada lebih dari satu jalur GND di antara dua perangkat. Misalnya, jika Arduino terhubung ke komputer melalui USB sekaligus ke catu daya yang dibumikan melalui kabel terpisah, arus ground bisa bersirkulasi melalui dua jalur berbeda, dan lingkaran tertutup tersebut bertindak seperti antena yang menangkap medan magnet di sekitarnya. Hasilnya berupa dengung yang terdengar pada rangkaian audio atau riak 50 atau 60 Hz pada pengukuran. Solusinya bukan memutus GND, melainkan menyisakan satu jalur dan mencegah arus besar memakai kabel yang sama dengan sinyal sensitif.

Grounding bintang: memisahkan ground motor dan sensor

Modul daya breadboard MB102
Modul daya breadboard seperti MB102 memasok 5 V atau 3,3 V ke dua jalur samping; kedua jalur berbagi GND pada modul, sehingga cocok dijadikan titik bintang.

Grounding bintang berarti semua kabel GND bertemu di satu titik pusat, bukan disambung berantai. Arus besar motor kembali ke terminal negatif catu daya melalui kabel tebalnya sendiri, sementara ground Arduino, sensor, dan rangkaian sinyal mencapai titik pusat yang sama melalui kabel tipis terpisah. Dengan begitu, jatuh tegangan akibat arus motor hanya terjadi pada kabel motor dan tidak menggeser referensi sensor. Dalam praktiknya, ikuti langkah-langkah ini:

  1. Pilih terminal negatif catu daya atau terminal sekrup sebagai titik bintang.
  2. Hubungkan GND driver motor (L298N, MOSFET, kumparan relay) langsung ke titik tersebut dengan kabel pendek dan tebal.
  3. Hubungkan GND Arduino ke titik yang sama dengan kabel terpisah; jangan lewatkan melalui GND driver motor.
  4. Hubungkan ground sensor analog ke pin GND Arduino agar sensor dan ADC memakai referensi yang sama.
  5. Tambahkan kapasitor keramik 100 nF di antara terminal motor dan kapasitor elektrolit 100-470 µF pada input catu daya driver.
  6. Pisahkan jalur kabel motor dan sinyal sejauh mungkin, lalu pilin pasangan kabel setiap motor.
Jalur tipis breadboard tidak dirancang untuk arus lebih dari beberapa ratus miliampere dan memiliki hambatan kontak tinggi. Jangan lewatkan arus motor melalui breadboard; hubungkan kabel motor dan daya ke terminal sekrup atau langsung ke board driver, dan gunakan breadboard hanya untuk sinyal. Alasan kapasitor membantu dalam hal ini dijelaskan di Apa Itu Kapasitor?.

Mengukur derau: uji GND sederhana dengan Arduino

Daripada menebak seberapa baik grounding-mu, kamu bisa mengukurnya. Buat pembagi tegangan dari dua resistor 10 kΩ di antara 5V dan GND, lalu hubungkan titik tengahnya ke A0; titik tersebut seharusnya stabil pada 2,5 V. Kode di bawah mengambil 200 pembacaan A0 berturut-turut dan mencetak selisih nilai terbesar dan terkecil sebagai derau puncak-ke-puncak dalam milivolt. Ukur terlebih dahulu ketika motor mati, lalu ketika berputar; setelah itu susun ulang kabel GND dengan pola bintang dan ukur lagi.

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}

Pada rangkaian yang dirakit dengan baik, derau puncak-ke-puncak sekitar 1-2 hitungan ADC, atau 5-10 mV. Jika nilainya naik di atas 50 mV ketika motor berputar, ada kabel yang berbagi jalur GND dengan motor. Nilai 200 mV atau lebih biasanya menunjukkan sambungan GND longgar, arus motor yang melewati breadboard, atau catu daya eksternal yang ground-nya belum pernah dihubungkan. Uji sederhana ini membuktikan dalam beberapa menit bahwa pada sebagian besar kasus “sensor membaca nilai tidak masuk akal”, masalahnya ada pada grounding, bukan sensor.

Kapan ground sengaja dipisahkan?

Satu-satunya pengecualian untuk aturan “hubungkan semua ground” adalah isolasi. Optocoupler atau relay membawa sinyal melalui cahaya atau medan magnet dan tidak menyisakan hubungan listrik antara kedua sisinya. Dalam kondisi tersebut, ground kedua sisi sengaja dipisahkan: satu sisi Arduino, sisi lainnya listrik PLN atau motor yang menghasilkan derau. Pada modul relay dengan jumper JD-VCC, ketika jumper dilepas dan kumparan diberi daya dari catu daya terpisah, GND catu daya tersebut tidak dihubungkan ke Arduino; itulah tujuan isolasi. Untuk rinciannya, baca Apa Itu Optocoupler? dan Apa Itu Modul Relay?. Tanpa isolasi, setiap dua rangkaian yang bertukar sinyal memerlukan GND bersama.

Apakah pembumian listrik PLN sama dengan GND rangkaian?

Tidak. Kabel hijau-kuning pada stopkontak di rumahmu adalah pembumian pelindung dan benar-benar terhubung ke elektroda yang ditanam di tanah. Fungsinya adalah keselamatan: jika kabel fasa menyentuh casing peralatan bercasing logam, arus mengalir melalui jalur ini dan sekring atau pemutus arus bocor memutus rangkaian. GND pada rangkaian Arduino hanyalah referensi rangkaian itu sendiri, dan pada proyek yang diberi daya dari baterai atau adaptor, GND sama sekali tidak terhubung ke bumi. Pada beberapa adaptor dan komputer, GND rangkaian mungkin terhubung ke pembumian pelindung, yang merupakan salah satu penyebab ground loop. Dalam proyek hobi, jangan pernah mencoba menghubungkan sendiri GND rangkaian ke kabel netral atau pembumian listrik PLN.

Tegangan listrik PLN bisa mematikan. Pada proyek yang terhubung ke listrik PLN melalui relay atau optocoupler, GND sisi tegangan rendah tidak pernah dihubungkan ke sisi listrik PLN, dan jarak isolasi minimal beberapa milimeter harus dijaga di antara keduanya. Jika kamu tidak yakin, serahkan pengerjaan sisi listrik PLN kepada teknisi listrik.

GND bersama untuk modul 5 V pada ESP32 dan Pico

ESP32 dan Raspberry Pi Pico bekerja pada 3,3 V; ketika menghubungkan modul 5 V, kamu memasang level shifter di antaranya. Level shifter memiliki pin GND pada sisi rendah (LV) dan tinggi (HV), dan keduanya harus dihubungkan; level shifter hanya bisa mengonversi sinyal kedua sisi terhadap referensi bersama. Hal yang sama berlaku ketika ESP32 diberi daya melalui USB dan LED strip 12 V melalui adaptor terpisah: source MOSFET, terminal negatif adaptor, dan GND ESP32 harus bertemu pada satu titik. Cara kerja level shifter dijelaskan dalam konverter level logika.

Daftar cek GND

  • Apakah ground kedua perangkat yang bertukar sinyal sudah terhubung?
  • Pada catu daya eksternal, apakah hanya ground yang dihubungkan dan terminal positif tetap terpisah?
  • Apakah arus motor, relay, dan LED strip kembali ke catu daya tanpa melewati pin GND Arduino?
  • Apakah sensor analog terhubung ke jalur GND yang tidak membawa arus motor?
  • Apakah kabel GND lebih tebal daripada kabel sinyal dan dibuat sependek mungkin?
  • Jika optocoupler atau relay JD-VCC dipakai untuk isolasi, apakah kedua sisi benar-benar terpisah?
  • Jika ragu, apakah kamu sudah memeriksa hubungan antara titik-titik GND dengan multimeter dalam mode kontinuitas (bip)?

GND merupakan kabel paling senyap tetapi paling penting dalam rangkaian: ketika dipasang dengan benar, tidak ada yang memperhatikannya, dan ketika terlupakan, semuanya bermasalah. Jika kamu belum tahu cara menguji kontinuitas dengan multimeter, Cara Memakai Multimeter akan membantu. Di aplikasi BlueGrays, kamu akan menemukan proyek yang memerlukan catu daya eksternal, seperti motor servo, mobil robot L298N, robot penghindar rintangan, lampu 230 V dengan relay, dan penyiraman pintar, masing-masing dilengkapi skema rangkaian dan kode langkah demi langkah, sehingga kamu bisa menelusuri setiap sambungan GND pada skemanya.

Pertanyaan umum

Apa itu GND dan apa fungsinya?

GND (ground) adalah titik referensi 0 volt yang menjadi acuan pengukuran setiap tegangan dalam rangkaian. GND juga membentuk jalur kembalinya arus ke catu daya. Ketika pin Arduino disebut berada pada 5V atau 3,3V, nilai tersebut selalu mengacu pada GND.

Apakah GND sama dengan pembumian?

Dalam elektronika, GND adalah referensi rangkaian itu sendiri dan tidak harus terhubung ke bumi secara fisik. Kabel pembumian pelindung hijau-kuning pada stopkontak terhubung ke elektroda di tanah demi keselamatan. Pada proyek Arduino yang memakai baterai atau adaptor, GND tidak terhubung ke pembumian listrik PLN.

Apakah GND catu daya eksternal harus dihubungkan ke Arduino?

Ya. Jika perangkat yang diberi daya dari catu daya eksternal menerima sinyal dari Arduino, kedua ground harus dihubungkan. Hanya ground yang dihubungkan; kabel positif tetap terpisah. Jika tidak, sinyal tidak memiliki referensi bersama atau jalur balik dan servo akan bergetar atau sama sekali tidak berfungsi.

Apa yang terjadi jika GND tidak dihubungkan?

Perangkat penerima tidak bisa menafsirkan tegangan dengan benar; servo bergerak secara acak, komunikasi serial menampilkan karakter sampah, dan sensor menghasilkan pembacaan tidak stabil. Dalam beberapa kasus, arus kembali melalui jalur yang tidak terduga dan bisa merusak pin.

Apakah negatif (-) sama dengan GND?

Pada sebagian besar rangkaian catu tunggal, terminal negatif catu daya dipakai sebagai GND, sehingga dalam praktiknya keduanya merupakan titik yang sama. Namun, pada catu simetris seperti ±12 V, GND adalah titik tengah antara kedua catu dan terminal negatif berada pada -12 V. Karena itu, sebaiknya perhatikan simbol GND pada skema rangkaian.

Bagaimana cara mencegah ground loop?

Sisakan hanya satu jalur GND di antara dua perangkat, pisahkan kabel motor berarus besar dari ground sensor yang sensitif, dan hubungkan semuanya pada satu titik bintang. Jika perlu, pisahkan kedua sisi secara listrik dengan optocoupler atau modul berisolasi.

Lihat semua proyek
Menggunakan Motor Servo
#35Pemula
Premium

Menggunakan Motor Servo

Lengan motor servo kecil berputar ke tiga posisi bergantian: penuh ke awal, tepat ke tengah, dan penuh ke akhir, menunggu dua detik di setiap perhentian. Arduino memberi tahu motor sudut mana yang har

4.7(48)
67
Menggerakkan Motor Servo dengan Potensiometer
#36Pemula
Premium

Menggerakkan Motor Servo dengan Potensiometer

Ketika kamu memutar kenop potensiometer, lengan motor servo ikut berputar: satu ujung kenop berarti nol derajat, ujung lainnya berarti setengah putaran. Arduino terus membaca posisi kenop dan servo la

4.6(37)
53
Mobil Kendali Bluetooth dengan L298N
#80Mahir
Premium

Mobil Kendali Bluetooth dengan L298N

Jadikan ponselmu remote dan kendarai mobil robotmu sendiri. Arduino menerima perintah dari aplikasi remote control di ponselmu lewat modul Bluetooth dan memutar roda dengan driver motor; mobil maju, m

5.0(38)
65
Robot Penghindar Rintangan
#81Mahir
Premium

Robot Penghindar Rintangan

Bagaimana kalau membuat kendaraan pintar yang mencari jalannya sendiri? Robot Penghindar Rintangan terus memindai sekelilingnya berkat sensor ultrasonik di depannya. Ketika menemui rintangan, robot be

5.0(38)
49
Menyalakan Bohlam 220V dengan Tombol Tekan
#19Mahir
Premium

Menyalakan Bohlam 220V dengan Tombol Tekan

Selama kamu menahan tombol, bohlam 220 volt sungguhan tetap menyala, dan mati begitu kamu melepasnya. Sinyal kecil Arduino tidak bisa langsung menyalakan bohlam, jadi relay, sakelar yang dikendalikan

4.4(30)
38
Stasiun Penyiraman Pintar
#83Mahir
Premium

Stasiun Penyiraman Pintar

Tukang kebun yang menyiram tanamanmu sendiri, supaya tanaman tidak kering ketika kamu berlibur. Sensor kelembapan tanah mengukur seberapa basah tanahnya; ketika kering, Arduino menyalakan pompa air be

5.0(42)
57
Mengukur Intensitas Cahaya dengan LDR
#11Pemula

Mengukur Intensitas Cahaya dengan LDR

Ingin melihat seberapa terang kamarmu dalam bentuk angka? LDR, komponen kecil yang bereaksi terhadap cahaya, mengukur cahaya di sekitarnya, dan Arduino menulis nilainya ke layar komputermu setiap sete

4.6(81)
141
Voltmeter Digital dengan Layar LCD
#56Menengah
Premium

Voltmeter Digital dengan Layar LCD

Cari tahu berapa tegangan yang diberikan baterai atau adaptor daya dengan alat ukur buatanmu sendiri. Pembagi dari dua resistor menurunkan tegangan tinggi ke tingkat yang bisa dibaca board, dan Arduin

4.5(27)
36