● online
- LED 3mm Lampu LED 3 mm....
- Sensor Api Flame detector sensor....
- TP5100 4.2v 8.4v 1S 2S Single / Double Cell Lithiu....
- Modul Sensor Tegangan AC Bolak balik 220V Listrik ....
- Kabel Jumper Arduino Dupont 20 cm Female to Male P....
- Breadboard 400 titik lubang Bread board Projectboa....
- 10X RESISTOR 1K 1KOHM 1/4W 1% METAL FILM....
- Kabel Jumper Dupont Pelangi 30 cm female to Female....
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
- Selamat Datang di Indomaker ❯ Silahkan pesan produk sesuai kebutuhan anda, kami siap melayani.
Bikin Stabilizer 1-Axis Low Budget Pakai Arduino dan PID
Sobat Maker, pernah nggak sih lagi asik merekam video pakai robot atau drone, eh hasilnya malah goyang-goyang kayak jelly? Masalah kestabilan memang sering bikin pusing, tapi tenang, kita nggak perlu keluar uang jutaan rupiah buat beli gimbal mahal. Kita bisa banget rakit sendiri stabilizer 1-axis yang responsif cuma dengan modal di bawah 100 ribu! Dengan memanfaatkan Arduino dan algoritma PID, kita bakal bikin platform yang tetap anteng meski digoyang-goyang dengan cara yang sangat teknis tapi tetap ramah di kantong.
Kenalan dengan Alat dan Bahannya
Proyek ini benar-benar efisien karena kita cuma butuh beberapa komponen kunci yang gampang banget dicari. Berikut rincian biayanya:
| No. | Alat dan Bahan | Jumlah | Estimasi Harga |
|---|---|---|---|
| 1 | Arduino Uno R3 (Kompatibel CH340) | 1 buah | – |
| 2 | Modul Sensor MPU6050 (Gyro & Accelerometer) | 1 buah | Rp37.000 |
| 3 | Motor Servo SG90 Micro 9g | 1 buah | – |
| 4 | Kabel Jumper | 1 set | Rp10.000 |
| 5 | Protoboard atau Breadboard Mini | 1 buah | Rp8.000 |
Kalau dijumlahkan, total biayanya cuma sekitar Rp 55.000 (asumsi kamu sudah punya Arduino dan servo sendiri). Sangat ekonomis untuk sebuah sistem kendali otomatis yang canggih, kan?
Cara Kerja Sistem Stabilizer
Sistem ini bekerja dengan arsitektur closed-loop control atau sistem kendali loop tertutup. Artinya, ada aliran umpan balik yang terus-menerus terjadi, di mana sensor membaca kondisi sistem, kemudian controller memberikan koreksi berdasarkan hasil pembacaan tersebut. Konsep ini merupakan dasar dari banyak sistem kendali otomatis dan juga menjadi bagian penting dalam pembahasan PID Controller & Theory Explained dari National Instruments.

Setelah data diterima, Arduino akan menghitung seberapa besar simpangan yang terjadi dari titik setimbang. Hasil perhitungan ini kemudian dikonversi menjadi sinyal PWM untuk memerintahkan Motor Servo sebagai “otot” bergerak melawan arah kemiringan tersebut. Konsep kendali otomatis ini sebenarnya mirip banget dengan cara kita jaga tanaman tetap happy dengan sistem irigasi pintar berbasis PID dan Arduino yang memastikan variabel tetap berada di titik yang diinginkan secara konsisten.
Skematik Rangkaian
Menyusun rangkaiannya tergolong simpel. Sensor MPU6050 dihubungkan ke jalur I2C pada Arduino Uno, yaitu Pin A4 untuk SDA dan Pin A5 untuk SCL. Untuk penggeraknya, kabel sinyal Motor Servo SG90 disambungkan ke pin PWM, tepatnya Pin 9 pada Arduino.
Hal yang sangat krusial adalah memastikan jalur power terpasang dengan benar. Pastikan VCC dan GND pada sensor serta Motor Servo terhubung ke pin 5V dan GND pada Arduino. Jalur power yang stabil ini penting banget supaya pembacaan sensor nggak ngaco dan motor servo punya tenaga yang cukup buat melakukan koreksi posisi dengan secepat kilat.

Langkah Langkah Kalibrasi dan Persiapan
Saat alat pertama kali dinyalakan, sistem akan masuk ke fase kalibrasi dinamis selama 3 detik. Di sini, kamu harus pastikan sensor tetap diam dan nggak bergerak sama sekali. Sistem bakal merekam sudut awal kemiringan sebagai nilai offset supaya titik referensi keseimbangannya benar-benar murni berada di angka 0 derajat.
Uniknya, sistem ini juga dilengkapi antarmuka HMI sederhana lewat Serial Monitor. Motor servo nggak akan langsung bergerak liar saat dicolokkan ke listrik. Ia bakal berada di posisi siaga (90 derajat) dan baru akan mulai melakukan aksi stabilisasi setelah kita kirim perintah “START” lewat komputer. Nggak cuma itu, sistem ini juga mendukung real-time PID tuning, jadi kamu bisa langsung update parameter kendali lewat Serial Monitor tanpa perlu bolak-balik upload ulang kode program.
Bikin Sinyal Makin Halus dengan Filter EMA dan Deadband
Data mentah dari sensor biasanya punya banyak gangguan atau noise yang bikin gerakan motor jadi kasar dan getar. Untuk mengatasinya, kita pakai algoritma Exponential Moving Average (EMA). Algoritma ini bertugas menyaring sinyal supaya data orientasi yang diterima sistem jadi lebih halus dan stabil.

Selain filter, ada juga konsep deadband atau zona toleransi sebesar 0,8 derajat. Jadi, kalau kemiringannya cuma sedikit banget (di bawah batas itu), sistem menganggapnya sudah seimbang. Ini penting supaya motor servo nggak bergetar halus terus-menerus atau hunting saat posisinya sudah sangat dekat dengan titik setimbang, sehingga motor kamu jadi lebih awet.
Rahasia Keseimbangan Algoritma PID Diskrit

Kunci utama dari keandalan stabilizer ini ada pada algoritma PID (Proportional, Integral, Derivative) yang dijalankan dalam waktu diskrit:
- Proporsional (P) berperan sebagai reaksi langsung. Makin miring alat kita, makin besar pula gaya koreksi yang diberikan oleh servo.
- Integral (I) bertugas menghapus sisa kesalahan atau error yang nggak bisa diselesaikan oleh P. Di sini kita pakai fitur “Anti-Windup” (dibatasi di rentang -20 sampai 20) biar sistem nggak “kaget” atau mengalami ketidakstabilan saat terjadi guncangan ekstrem.
- Derivatif (D) adalah reaksi “anti-lebay”. Dia berfungsi sebagai peredam yang memprediksi gerakan dan memberikan efek ngerem agar posisi berhenti tepat di titik setimbang tanpa bergoyang berlebihan (osilasi).
Bedah Kode Program Arduino
Berikut adalah kode program utama yang bisa kamu gunakan untuk menjalankan sistem stabilizer 1-axis ini:
#include <Wire.h>
#include <MPU6050_tockn.h>
#include <Servo.h>
MPU6050 mpu6050(Wire);
Servo servo;
// PID Parameters
float Kp = 1.2;
float Ki = 0.0;
float Kd = 0.15;
float error = 0;
float lastError = 0;
float integral = 0;
float derivative = 0;
float output = 0;
// Filter & Sensor
float offsetX = 0;
float setpoint = 0;
float filteredAngle = 0;
float alpha = 0.1;
// Servo & System State
int servoCenter = 90;
int servoPos = 90;
bool systemRun = false;
unsigned long lastTime;
String serialBuffer = "";
void setup() {
Serial.begin(115200);
Wire.begin();
mpu6050.begin();
servo.attach(9);
servo.write(90);
Serial.println("Kalibrasi...");
delay(3000);
mpu6050.update();
offsetX = mpu6050.getAngleX();
lastTime = millis();
}
void loop() {
bacaSerial();
if (!systemRun) {
servo.write(90);
return;
}
mpu6050.update();
float angle = mpu6050.getAngleX() - offsetX;
// EMA Filter
filteredAngle =
alpha * angle +
(1.0 - alpha) * filteredAngle;
unsigned long now = millis();
float dt = (now - lastTime) / 1000.0;
if (dt <= 0) {
dt = 0.01;
}
lastTime = now;
// PID Calculation
error = setpoint - filteredAngle;
// Deadband
if (abs(error) < 0.8) {
error = 0;
}
// Integral
integral += error * dt;
// Anti-Windup
integral = constrain(integral, -20, 20);
// Derivative
derivative = (error - lastError) / dt;
// PID Output
output =
(Kp * error) +
(Ki * integral) +
(Kd * derivative);
// Actuating Servo
servoPos = servoCenter + output;
servoPos = constrain(servoPos, 0, 180);
servo.write(servoPos);
lastError = error;
// Kirim data ke Serial
Serial.print(setpoint);
Serial.print(",");
Serial.println(filteredAngle);
delay(20);
}
void bacaSerial() {
while (Serial.available()) {
char c = Serial.read();
if (c == '\n') {
serialBuffer.trim();
if (serialBuffer == "START") {
systemRun = true;
integral = 0;
lastError = 0;
}
else if (serialBuffer == "STOP") {
systemRun = false;
servo.write(90);
}
else if (serialBuffer.startsWith("PID")) {
// Format:
// PID,Kp,Ki,Kd
int p1 = serialBuffer.indexOf(',');
int p2 = serialBuffer.indexOf(',', p1 + 1);
int p3 = serialBuffer.indexOf(',', p2 + 1);
if (p1 > 0 && p2 > 0 && p3 > 0) {
Kp = serialBuffer.substring(p1 + 1, p2).toFloat();
Ki = serialBuffer.substring(p2 + 1, p3).toFloat();
Kd = serialBuffer.substring(p3 + 1).toFloat();
}
}
serialBuffer = "";
}
else {
serialBuffer += c;
}
}
}
Dalam kode tersebut, fungsi setup() mengurus inisialisasi sensor dan kalibrasi otomatis. Di bagian loop(), kalkulasi PID dilakukan dengan menghitung selisih waktu (dt) yang sangat presisi. Penggunaan fungsi constrain di sana sangat vital untuk membatasi pergerakan servo agar nggak melebihi batas fisik 0-180 derajat, sehingga hardware kamu tetap aman dari kerusakan mekanis.
Kesimpulan
Proyek stabilizer 1-axis ini jadi bukti kalau teknologi keren nggak harus mahal. Cuma dengan Rp 55.000, kita sudah bisa bikin sistem penyeimbang yang responsif berkat perpaduan sensor MPU6050, filter EMA, dan algoritma PID diskrit. Buat kamu yang baru mau belajar dunia kendali otomatis, proyek ini adalah titik awal yang pas banget. Jangan ragu buat bereksperimen gonta-ganti nilai Kp, Ki, dan Kd lewat Serial Monitor supaya kamu bisa lihat langsung gimana pengaruhnya ke gerakan stabilizer kamu!
Bikin Stabilizer 1-Axis Low Budget Pakai Arduino dan PID
Setelah sebelumnya kamu belajar menyalakan LED, sekarang saatnya Arduino mulai menerima perintah langsung dari kamu. Salah satu cara paling sederhana... selengkapnya
Pada pembahasan sebelumnya kita sudah pernah membahas tentang penggunaan relay silahkan yang belum bisa lihat di sini. Pada artikel... selengkapnya
LCD 128×64 merupakan sebuah display yang diatur berdasarakn graphic (pixel) bukan karakter. Jadi kita bisa memposisikan pada setiap titik... selengkapnya
Pada komponen tertentu dibutuhkan sebuah library agar komponen tersebut dapat berjalan sebagaimana mestinya. Apa itu library? library adalah sekumpulan... selengkapnya
Motor servo adalah salah satu jenis motor listrik yang memiliki feedback berupa sensor posisi. Dengan adanya feedback tersebut, motor... selengkapnya
Sensor suhu DS18b20 digunakan untuk mendeteksi suhu ruangan namun dapat juga digunakan untuk mendeteksi suhu air. Suhu yang dapat... selengkapnya
Halo Sobat! Punya tanaman kesayangan di rumah atau lagi berniat mencoba proyek smart garden? Sering kali kita merasa bingung menentukan... selengkapnya
Arduino tidak hanya bisa digunakan untuk menyalakan LED atau membaca input dari tombol, tetapi juga dapat dimanfaatkan untuk membuat simulasi... selengkapnya
Hari ini kita akan mencoba untuk menampilkan data sensor ldr ke web server dengan koneksi WIFI menggunakan board NodeMCU.... selengkapnya
Dalam dunia fotografi, mengambil foto yang bagus merupakan suatu keahlian yang harus di kuasai oleh seorang fotografer. Karena dengan... selengkapnya
Kabel Jumper Dupont Pelangi 10 cm male to male 1 lembar = 40 kabel
Rp 13.000Menerima jasa cetak PCB FR2 (pertinax) / FR4 (double) single / double layer. Silahkan ke web kalkulator biaya cetak pcb… selengkapnya
Rp 1.000The power supply is isolated industrial power modules, with a temperature protection, overcurrent and short circuit full protection, high and… selengkapnya
Rp 15.900Ini yang Seri SN – DS3231 I2C RTC Module khusus DS3231SN – Include Baterai – Module jam digital – Keperluan… selengkapnya
Rp 34.900Compatibility: USB v2.0 standard Interface: Network: USB Series: RS-485 Port: an independent RS-485 Connector: Network: USB type A connector Series:… selengkapnya
Rp 38.800Mini Solderless Breadboard 400 Tie Points adalah breadboard 400 titik lubang, dengan ukuran yang compact sangat cocok untuk anda yang… selengkapnya
Rp 7.800Spesifikasi: 50mm Kapton Tape Polymide Film Gold High Temp isolasi Tahan Panas Harga Tertera: 1 Roll Kapton Tape Polymide Film… selengkapnya
Rp 75.000Spesifikasi : – 16×2 – Warna Biru – Tegangan kerja : 5v Digunakan untuk keperluan display project seperti Arduino, Raspberry,… selengkapnya
Rp 17.000Spesifikasi: 20mm Kapton Tape Polymide Film Gold High Temp isolasi Tahan Panas Harga Tertera: 1 Roll Kapton Tape Polymide Film… selengkapnya
Rp 219.000Kabel Jumper Dupont Pelangi 10 cm female to female 1 lembar = 40 kabel
Rp 9.000Bikin Stabilizer 1-Axis Low Budget Pakai Arduino dan PID
Kategori
Artikel Terkait
-
Cara Bikin Sistem Monitoring Getaran Gempa dan Stabilitas Kemiringan Pakai ESP32 dan MPU 6050
-
Cara Bikin Sistem Monitoring Kelembapan Tanah Berbasis Arduino Uno dan Sensor YL69
-
Bikin Sistem Monitor Volume Air Tandon Otomatis Pakai Arduino Uno dan Sensor Ultrasonik
-
Cara Bikin Kipas Angin Otomatis Berbasis Suhu Pakai Arduino Uno dan Sensor LM35
-
Bikin Smart Medicine Box Otomatis Pakai Arduino Nano dan Sensor Suhu DHT11

Saat ini belum tersedia komentar.