Sistem timbangan digital ini merupakan suatu perangkat elektronik yang dirancang untuk mengukur berat suatu objek secara akurat dengan memanfaatkan sensor load cell berbasis strain gauge. Sistem ini bekerja dengan cara mengubah gaya tekan (beban) menjadi sinyal listrik, kemudian memproses sinyal tersebut menggunakan mikrokontroler sehingga dapat ditampilkan dalam bentuk nilai berat pada LCD 16×4.
Pada sistem ini, load cell tidak bekerja secara langsung dengan mikrokontroler karena sinyal yang dihasilkan sangat kecil (dalam satuan milivolt). Oleh sebab itu digunakan modul HX711 sebagai penguat sinyal sekaligus konverter analog ke digital (ADC) dengan resolusi tinggi hingga 24-bit. Data digital yang dihasilkan HX711 kemudian dibaca oleh Arduino UNO atau ESP32, diolah, dikalibrasi, dan ditampilkan secara real-time pada LCD.
Sistem ini dirancang agar:
- Mudah dirakit
- Mudah dikalibrasi
- Stabil dalam pembacaan
- Fleksibel untuk dikembangkan
Dengan menggunakan LCD 16×4 berbasis I2C, informasi yang ditampilkan menjadi lebih jelas dan rapi, serta menghemat penggunaan pin mikrokontroler.
KEGUNAAN LOAD CELL
1. Pengertian Umum
Load cell adalah sensor elektronik yang digunakan untuk mengukur gaya tekan atau berat suatu objek. Load cell bekerja dengan mengubah gaya mekanik menjadi sinyal listrik yang kemudian dapat diproses oleh sistem elektronik atau mikrokontroler.
Dalam dunia elektronika dan instrumentasi, load cell menjadi komponen utama dalam sistem penimbangan digital karena memiliki tingkat akurasi dan kestabilan yang tinggi.
2. Fungsi Utama Load Cell
2.1 Mengukur Berat Suatu Objek
Fungsi utama load cell adalah mengukur berat benda dengan cara mendeteksi gaya tekan akibat gravitasi. Ketika sebuah objek diletakkan di atas load cell, sensor akan mengalami deformasi kecil yang sebanding dengan berat objek tersebut.
Perubahan deformasi ini kemudian diubah menjadi sinyal listrik yang nilainya proporsional terhadap berat benda.
2.2 Mengubah Gaya Mekanik Menjadi Sinyal Listrik
Load cell bekerja berdasarkan prinsip strain gauge, yaitu perubahan nilai resistansi ketika terjadi tekanan atau tarikan.
Proses ini memungkinkan sistem elektronik membaca besaran fisik (gaya) dalam bentuk data listrik, sehingga dapat diolah lebih lanjut oleh mikrokontroler.
2.3 Menjadi Sensor Utama pada Timbangan Digital
Load cell merupakan komponen inti pada:
- Timbangan digital
- Timbangan industri
- Timbangan laboratorium
- Timbangan UMKM
Tanpa load cell, sistem timbangan digital tidak dapat bekerja dengan baik karena tidak ada sensor yang mendeteksi berat secara langsung.
3. Kegunaan Load Cell Berdasarkan Aplikasi
3.1 Timbangan Digital Rumah Tangga
Digunakan pada:
- Timbangan dapur
- Timbangan badan
- Timbangan paket
Load cell memungkinkan pengukuran berat yang cepat, akurat, dan mudah dibaca melalui layar digital.
3.2 Industri dan Manufaktur
Dalam dunia industri, load cell digunakan untuk:
- Penimbangan bahan baku
- Kontrol berat produk
- Pengisian otomatis (filling system)
- Conveyor timbang
Load cell membantu menjaga konsistensi kualitas produk dan mengurangi kesalahan manusia.
3.3 Sistem Otomasi dan Kontrol
Load cell sering digunakan sebagai input sensor pada sistem otomatis, seperti:
- Mesin pengemas otomatis
- Mesin pencampur bahan
- Sistem kontrol beban motor
- Monitoring beban tangki
Data dari load cell digunakan sebagai dasar pengambilan keputusan oleh sistem kontrol.
3.4 Laboratorium dan Penelitian
Dalam penelitian, load cell digunakan untuk:
- Pengujian material
- Analisis gaya tekan dan tarik
- Eksperimen fisika dan teknik
Akurasi tinggi load cell sangat dibutuhkan dalam pengukuran ilmiah.
3.5 Aplikasi IoT dan Smart System
Dengan bantuan mikrokontroler seperti ESP32, load cell dapat digunakan pada:
- Timbangan IoT
- Monitoring stok otomatis
- Sistem logistik pintar
- Smart farming (penimbangan pakan, hasil panen)
4. Kegunaan Load Cell dalam Sistem Arduino & ESP32
Dalam sistem berbasis Arduino atau ESP32, load cell digunakan untuk:
- Mengukur berat secara real-time
- Menyediakan data sensor ke mikrokontroler
- Menjadi input utama dalam sistem pengambilan keputusan
- Menampilkan hasil pengukuran pada LCD atau aplikasi
Load cell memungkinkan mikrokontroler membaca data fisik yang sebelumnya tidak bisa diukur secara langsung.
5. Kelebihan Penggunaan Load Cell
✔ Akurasi tinggi
✔ Respon cepat
✔ Stabil untuk penggunaan jangka panjang
✔ Mudah diintegrasikan dengan mikrokontroler
✔ Cocok untuk berbagai skala pengukuran
6. Keterbatasan Load Cell
Membutuhkan kalibrasi
Sensitif terhadap getaran
Pemasangan mekanik harus presisi
7. Contoh Implementasi Nyata Load Cell
- Timbangan digital toko
- Timbangan buah dan sayur
- Mesin packing otomatis
- Sistem hitung harga per kilogram
- Timbangan berbasis IoT
PRINSIP KERJA LOAD CELL
1. Pengertian Umum
Load cell adalah sensor yang bekerja berdasarkan prinsip perubahan resistansi listrik akibat deformasi mekanik. Sensor ini digunakan untuk mengukur gaya atau berat dengan cara mengubah gaya mekanik menjadi sinyal listrik yang dapat diproses oleh sistem elektronik.
Prinsip kerja load cell memanfaatkan strain gauge, yaitu elemen sensor yang akan berubah nilai resistansinya ketika mengalami tekanan atau tarikan.
2. Komponen Utama Load Cell
Sebuah load cell terdiri dari:
- Elemen elastis (logam)
Berfungsi sebagai struktur yang akan mengalami deformasi saat diberi beban. - Strain gauge
Sensor resistif yang ditempel pada elemen elastis. - Jembatan Wheatstone
Rangkaian listrik untuk mendeteksi perubahan resistansi kecil. - Kabel output
Menghubungkan load cell ke modul penguat (HX711).
3. Proses Kerja Load Cell Secara Bertahap
3.1 Pemberian Beban
Ketika suatu benda diletakkan di atas load cell, gaya berat akibat gravitasi akan bekerja pada elemen elastis load cell.
3.2 Terjadinya Deformasi
Elemen elastis load cell akan mengalami deformasi sangat kecil (mikroskopis).
Deformasi ini:
- Tidak merusak struktur
- Bersifat elastis (kembali ke bentuk semula)
3.3 Perubahan Resistansi Strain Gauge
Strain gauge yang menempel pada elemen elastis akan ikut meregang atau menekan.
Akibatnya:
- Panjang kawat strain gauge berubah
- Nilai resistansi listrik berubah
📌 Semakin besar beban → semakin besar perubahan resistansi
3.4 Jembatan Wheatstone
Strain gauge disusun dalam rangkaian Wheatstone Bridge.
Rangkaian ini berfungsi untuk:
- Mengubah perubahan resistansi kecil menjadi perubahan tegangan
- Meningkatkan sensitivitas pengukuran
Tanpa jembatan Wheatstone, perubahan resistansi sulit dideteksi.
3.5 Sinyal Tegangan Kecil (mV)
Perubahan resistansi menghasilkan tegangan keluaran sangat kecil (dalam satuan millivolt).
📌 Tegangan ini belum bisa langsung dibaca oleh mikrokontroler.
3.6 Penguatan dan Konversi (HX711)
Sinyal mV dari load cell masuk ke HX711, yang berfungsi untuk:
- Menguatkan sinyal
- Menghilangkan noise
- Mengonversi sinyal analog ke digital (ADC 24-bit)
3.7 Pemrosesan oleh Mikrokontroler
Data digital dari HX711 dibaca oleh:
- Arduino atau
- ESP32
Data ini kemudian:
- Dikalkulasi
- Dikalibrasi
- Dikonversi ke satuan berat (gram atau kilogram)
3.8 Penampilan Data
Hasil akhir ditampilkan pada:
- LCD 16×4
- Serial Monitor
- Aplikasi atau sistem IoT
4. Prinsip Fisika yang Digunakan
4.1 Hukum Hooke
Load cell bekerja dalam batas elastis sesuai Hukum Hooke:F=k⋅x
Dimana:
- F = gaya (N)
- k = konstanta pegas
- x = perubahan panjang
Selama bekerja di zona elastis, hasil pengukuran akan linier.
4.2 Hubungan Gaya dan Berat
Berat dihitung dari gaya:W=m⋅g
Dimana:
- W = berat
- m = massa
- g = percepatan gravitasi
5. Diagram Alur Prinsip Kerja (Narasi)
Beban → Deformasi Logam → Perubahan Resistansi → Tegangan mV → HX711 → Data Digital → Arduino/ESP32 → LCD
6. Faktor yang Mempengaruhi Prinsip Kerja
- Pemasangan mekanik
- Suhu lingkungan
- Getaran
- Tegangan catu daya
- Kualitas kalibrasi
Contoh Program menggunakan arduino uno

| Pin | Digunakan untuk |
|---|---|
| 5V | HX711 & LCD |
| GND | HX711 & LCD |
| D2 | HX711 SCK |
| D3 | HX711 DT |
| A4 | LCD SDA |
| A5 | LCD SCL |
#include <HX711.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DT 3
#define SCK 2
HX711 scale;
LiquidCrystal_I2C lcd(0x27, 16, 2);
// GANTI SESUAI HASIL KALIBRASI KAMU
float calibration_factor = -7050;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Timbangan");
lcd.setCursor(0,1);
lcd.print("Init...");
delay(1500);
lcd.clear();
scale.begin(DT, SCK);
scale.set_scale(calibration_factor);
scale.tare(); // nolkan timbangan
lcd.setCursor(0,0);
lcd.print("Siap Digunakan");
delay(1000);
lcd.clear();
}
void loop() {
float berat = scale.get_units(10);
if (berat < 0) berat = 0;
lcd.setCursor(0,0);
lcd.print("Berat: ");
lcd.setCursor(0,1);
lcd.print(berat, 1);
lcd.print(" gram ");
Serial.print("Berat: ");
Serial.print(berat, 1);
Serial.println(" gram");
delay(300);
}
PERHATIAN SEBELUM MENGGUNAKAN PROGRAM UTAMA
(KHUSUS ARDUINO UNO)
Sebelum sistem timbangan digital dijalankan menggunakan Arduino UNO, load cell WAJIB dikalibrasi terlebih dahulu.
Kalibrasi bertujuan untuk menyesuaikan pembacaan sensor load cell dengan berat sebenarnya. Setiap load cell memiliki karakteristik yang berbeda, sehingga nilai kalibrasi tidak boleh disamakan, meskipun kapasitas dan tipe sensornya sama.
Jika proses kalibrasi tidak dilakukan, maka:
- Nilai berat yang ditampilkan tidak akurat
- Pembacaan dapat melenceng jauh dari nilai sebenarnya
- Sistem timbangan tidak dapat digunakan secara valid
Oleh karena itu, program kalibrasi harus dijalankan terlebih dahulu, dan nilai calibration_factor yang dihasilkan WAJIB dimasukkan ke dalam program utama timbangan.
Kesimpulan penting:
Jangan lanjut ke program utama sebelum kalibrasi selesai dan hasilnya benar.
PROGRAM KALIBRASI LOAD CELL
Arduino UNO + HX711
Konfigurasi Pin Arduino UNO
| HX711 | Arduino UNO |
|---|---|
| VCC | 5V |
| GND | GND |
| DT | D3 |
| SCK | D2 |
Cara Menggunakan Program Kalibrasi
- Upload program kalibrasi ke Arduino UNO
- Buka Serial Monitor
- Atur baud rate ke 9600
- Pastikan timbangan kosong
- Tekan:
t+ Enter → TARE (nol)+→ menambah nilai kalibrasi-→ mengurangi nilai kalibrasi
- Letakkan beban yang diketahui (contoh: 500 gram)
- Atur sampai nilai terbaca sesuai
- Catat nilai
calibration_factor
CODING PROGRAM KALIBRASI (ARDUINO UNO)
#include <HX711.h>
// PIN HX711 ke Arduino UNO
#define DT 3
#define SCK 2
HX711 scale;
// nilai awal (akan disesuaikan)
float calibration_factor = -100.0;
void setup() {
Serial.begin(9600);
Serial.println("================================");
Serial.println(" PROGRAM KALIBRASI LOAD CELL ");
Serial.println(" ARDUINO UNO + HX711 ");
Serial.println("================================");
Serial.println("Pastikan TIMBANGAN KOSONG");
Serial.println("Ketik 't' lalu ENTER untuk TARE");
Serial.println("Gunakan '+' atau '-' untuk kalibrasi");
Serial.println();
scale.begin(DT, SCK);
scale.set_scale(); // tanpa faktor dulu
scale.tare(); // nol awal
}
void loop() {
if (Serial.available()) {
char data = Serial.read();
if (data == 't') {
scale.tare();
Serial.println(">> TARE SELESAI");
}
else if (data == '+') {
calibration_factor += 1;
}
else if (data == '-') {
calibration_factor -= 1;
}
scale.set_scale(calibration_factor);
}
float berat = scale.get_units(5);
Serial.print("Calibration Factor: ");
Serial.print(calibration_factor);
Serial.print(" | Berat Terbaca: ");
Serial.print(berat);
Serial.println(" gram");
delay(500);
}
Cara Menentukan Nilai yang BENAR
- Beban asli 500 gram
- Jika terbaca 450 gram → tekan
+ - Jika terbaca 550 gram → tekan
- - Lakukan sampai terbaca ±500 gram
Lakukan beberapa kali angkat–taruh untuk memastikan stabil.
SETELAH KALIBRASI SELESAI
Misalnya nilai akhir:
float calibration_factor = -106.3;
Nilai ini yang dipakai di program utama timbangan, bukan program kalibrasi lagi.
Contoh Program menggunakan ESP32

| Pin ESP32 | Digunakan untuk |
|---|---|
| 3.3V | HX711 |
| 5V | LCD |
| GND | Semua |
| GPIO 32 | HX711 DT |
| GPIO 33 | HX711 SCK |
| GPIO 21 | LCD SDA |
| GPIO 22 | LCD SCL |
PERHATIAN SEBELUM MASUK KE PROGRAM UTAMA
(WAJIB DIBACA & DILAKUKAN)
Sebelum sistem timbangan digital digunakan, load cell WAJIB dikalibrasi terlebih dahulu.
Kalibrasi bertujuan untuk menyesuaikan nilai pembacaan sensor dengan berat sebenarnya. Setiap load cell memiliki karakteristik yang berbeda, sehingga nilai kalibrasi tidak bisa disamakan, meskipun tipe dan kapasitasnya sama.
Jika kalibrasi tidak dilakukan, maka:
- Nilai berat akan melenceng
- Hasil tidak konsisten
- Timbangan tidak akurat
- Program utama menjadi tidak valid
Oleh karena itu, jalankan program kalibrasi terlebih dahulu, catat nilai calibration_factor yang dihasilkan, baru setelah itu nilai tersebut dimasukkan ke dalam program utama timbangan.
Ingat:
Program utama TIDAK AKAN AKURAT tanpa proses kalibrasi.
PROGRAM KALIBRASI LOAD CELL
(Arduino UNO & ESP32)
Fungsi Program Ini:
- Membaca nilai mentah HX711
- Menyesuaikan faktor kalibrasi
- Menampilkan hasil di Serial Monitor
- Menentukan nilai
calibration_factoryang tepat
Pin yang Digunakan
- Arduino UNO
- DT → D3
- SCK → D2
- ESP32
- DT → GPIO 32
- SCK → GPIO 33
LANGKAH KALIBRASI (SINGKAT & JELAS)
- Upload program kalibrasi
- Buka Serial Monitor (9600 baud)
- Pastikan timbangan tanpa beban
- Tekan t lalu Enter → tare
- Letakkan beban yang diketahui (misal 500 gram)
- Ubah nilai kalibrasi sampai hasil sesuai
- Catat nilai
calibration_factor - Masukkan ke program utama
CODING PROGRAM KALIBRASI
#include <HX711.h>
#define DT 32 // ESP32: 32 | Arduino UNO: 3
#define SCK 33 // ESP32: 33 | Arduino UNO: 2
HX711 scale;
float calibration_factor = -100.0; // nilai awal (akan diubah)
void setup() {
Serial.begin(9600);
Serial.println("=== PROGRAM KALIBRASI LOAD CELL ===");
Serial.println("Pastikan TIMBANGAN KOSONG");
Serial.println("Ketik 't' lalu ENTER untuk TARE");
Serial.println("Gunakan '+' atau '-' untuk kalibrasi");
scale.begin(DT, SCK);
scale.set_scale();
scale.tare(); // tare awal
}
void loop() {
if (Serial.available()) {
char input = Serial.read();
if (input == 't') {
scale.tare();
Serial.println(">> TARE SELESAI");
}
else if (input == '+') {
calibration_factor += 1;
}
else if (input == '-') {
calibration_factor -= 1;
}
scale.set_scale(calibration_factor);
}
float berat = scale.get_units(5);
Serial.print("Calibration Factor: ");
Serial.print(calibration_factor);
Serial.print(" | Berat Terbaca: ");
Serial.print(berat);
Serial.println(" gram");
delay(500);
}
CARA MENENTUKAN NILAI KALIBRASI YANG BENAR
- Jika berat terbaca lebih kecil dari beban asli
tekan+ - Jika berat terbaca lebih besar dari beban asli
tekan- - Ulangi sampai hasil sesuai dengan berat referensi
Contoh:
- Beban asli: 500 gram
- Terbaca: 480 gram → tekan
+ - Terbaca: 520 gram → tekan
- - Sampai mendekati 500 gram
SETELAH KALIBRASI SELESAI
Catat nilai terakhir, contoh:
float calibration_factor = -106.3;
Nilai inilah yang WAJIB dimasukkan ke program utama timbangan.
