You are on page 1of 35

LAPORAN PRAKTIKUM ELEKTRONIKA

LANJUT
TIMBANGAN DIGITAL

Dosen : Mada Sanjaya WS, Ph.D


Asisten Lab : Lailiana Salsabila
(1217030018)

Disusun oleh :
Gilang Pratama Putra Siswanto
(1227030017)

JURUSAN FISIKA
FAKULTAS SAINS DAN TEKNOLOGI
UIN SUNAN GUNUNG DJATI BANDUNG
2024
Abstract

Along with technological advancements, various sensors and electronic devices have
been developed to manipulate measurements, enabling the overall measurement of physi-
cal quantities to be carried out digitally, utilizing programming or general electronic circuit
manipulation. Specifically, the measurement of mass or weight can be digitized and then
applied to perform functions similar to the manual operation of scales. The purpose of this
laboratory experiment is to understand the HX711 module as an Amplifier, comprehend
the working principle of a load cell sensor, and be able to create and assemble a digital
weighing circuit. This research was conducted on March 27, 2024, from 07:00 to 09:00
AM WIB in the Basic Physics Laboratory, Solahuddin Sanusi Building, UIN Sunan Gu-
nung Djati Bandung. The HX711 module is a precision 24-bit analog-to-digital converter
(ADC) amplifier specifically designed to interact with load cell sensors in industrial control
applications. A load cell sensor is a device that converts force or load applied to it into a
measurable electrical signal. Its principle is based on the deformation of resistive material
inside it when force is applied. As an implementation, a digital weighing circuit has been
constructed using a load cell sensor, HX711 amplifier module, LCD I2C, and Arduino Uno
R3.

Keywords: Arduino Uno, load cell, LCD I2C, HX711

Abstrak

Seiring dengan kemajuan teknologi, banyak dikembangkan berbagai sensor maupun pi-
ranti elektronika yang dapat memanipulasi pengukuran sehingga keseluruhan pengukuran
besaran fisis ini dijalankan secara digital, baik memanfaatkan pemrograman maupun ma-
nipulasi rangkaian elektronika secara umum. Secara spesifik, pengukuran massa atau berat
dapat dijalankan secara digital untuk kemudian diaplikasikan untuk melakukan fungsi seba-
gaimana prinsip kerja timbangan secara manual. Tujuan dari praktikum ini yaitu memaha-
mi modul HX711 sebagai Amplifier, mengetahui prinsip kerja sensor load cell, serta ampu
membuat dan merangkai rangkaian timbangan digital. Penelitian ini dilaksanakan pada
tanggal 27 Maret 2024 pukul 07.00 hingga 09.00 WIB di Laboratorium Basic Physics, Ge-
dung Laboratorium Solahuddin Sanusi UIN Sunan Gunung Djati Bandung. Modul HX711
merupakan penguat dan konverter analog-ke-digital (ADC) 24-bit presisi yang dirancang
khusus untuk berinteraksi dengan sensor load cell dalam aplikasi kontrol industri. Sensor
load cell, merupakan perangkat yang mengubah gaya atau beban yang diterapkan padanya
menjadi sinyal listrik yang dapat diukur. Prinsip kerjanya didasarkan pada deformasi ma-
terial resistif yang terdapat di dalamnya saat gaya diterapkan. Sebagai implementasinya,
telah disusun rangkaian timbangan digital dengan memanfaatkan sensor load cell, modul
amplifier HX711, LCD I2C, dan Arduino Uno R3.

Kata Kunci : Arduino Uno , load cell, LCD I2C, HX711

i
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Fisika sangat erat kaitannya terhadap besaran fisis, besaran-besaran yang dapat ditinjau dari
setiap karakteristik entitas fisik di kehidupan sehari-hari. Tidak diragukan bahwa salah satu
besaran fisis yang paling fundamental adalah besaran-besaran pokok, mencakup di dalamnya
adalah besaran massa suatu objek fisis. Dalam kehidupan sehari-hari, sangat umum diaplika-
sikan beragam alat ukur untuk memproyeksikan besaran-besaran fisis tersebut dalam berbagai
aplikasi dalam kehidupan, baik dalam skala profesional seperti industri maupun terkait peneli-
tian, juga dalam aplikasi perangkat sederhana yang dimanfaatkan manusia. Kemudian, dalam
penggunaan alat ukur besaran pokok massa, alat yang sangat lazim adalah timbangan. Tim-
bangan menjadi alternatif yang lebih fleksibel dan efektif dalam mengukur massa dalam ber-
bagai kondisi keseharian. Timbangan ini pada awalnya diaplikasikan dalam bentuk timbangan
analog/manual yang memanfaatkan pemberat untuk kemudian menjadi tolok ukur pengukuran
yang ditampilkan secara analog -umumnya dalam tinjauan jarum penunjuk nilai besaran-. Se-
iring dengan kemajuan teknologi, banyak dikembangkan berbagai sensor maupun piranti elek-
tronika yang dapat memanipulasi pengukuran sehingga keseluruhan pengukuran besaran fisis
ini dijalankan secara digital, baik memanfaatkan pemrograman maupun manipulasi rangkaian
elektronika secara umum. Secara spesifik, pengukuran massa atau berat ini dapat dijalankan
secara digital untuk kemudian diaplikasikan untuk melakukan fungsi sebagaimana prinsip ker-
ja timbangan secara manual. Dengan mengaplikasikan persamaan fisika dan penerapan dalam
instrumentasi seperti pemanfaatan mikrokontroler, serta pemanfaatan sensor juga modul yang
menyokong eksekusi pengukuran, maka fungsi timbangan konvensional ini kemudian dapat
dijalankan secara optimal dalam bentuk timbangan digital. Untuk mengamati bagaimana prin-
sip kerja daripada timbangan digital serta analisis efektivitasnya menggunakan mikrokontroler,
maka dilaksanakan Praktikum Elektronika Lanjut Modul Timbangan Digital.

1.2 Tujuan
Adapun tujuan dari praktikum ini adalah sebagai berikut.

1. Memahami modul HX711 sebagai Amplifier.

2. Mengetahui prinsip kerja sensor load cell.

3. Mampu membuat dan merangkai rangkaian timbangan digital.

1
BAB 2
LANDASAN TEORI
2.1 Liquid Crystal Display (LCD)
Liquid Crystal Display (LCD) merupakan salah satu jenis media display yang menggunak-
an kristal cair untuk menciptakan gambar yang terlihat. Teknologi LCD telah menjadi standar
pada berbagai produk elektronik seperti laptop, ponsel, kalkulator, jam digital, multimeter, mo-
nitor komputer, televisi, game portabel, termometer digital, dan banyak lagi. Keunggulan utama
teknologi LCD adalah ketipisannya jika dibandingkan dengan teknologi sebelumnya seperti Ta-
bung Sinar Katoda (CRT). Selain itu, LCD juga lebih hemat daya karena menggunakan prinsip
pemblokiran cahaya daripada pemancaran cahaya seperti CRT. Meskipun begitu, LCD memer-
lukan lampu backlight sebagai sumber cahaya tambahan karena tidak memancarkan cahaya
sendiri. Backlight umumnya menggunakan teknologi seperti CCFL (Cold Cathode Fluorescent
Lamps) atau LED (Light-emitting Diodes).
LCD terdiri dari dua bagian utama: backlight dan liquid crystal. Backlight memberikan ca-
haya yang diperlukan untuk liquid crystal, yang merupakan cairan organik di antara dua lapisan
kaca konduktif. Liquid crystal memfilter cahaya backlight dan merefleksikannya sesuai sudut
yang diinginkan untuk menghasilkan warna yang diinginkan. Perubahan sudut liquid crystal
dapat dikontrol dengan pemberian tegangan, sehingga menghasilkan berbagai warna. Misal-
nya, untuk menghasilkan warna putih, liquid crystal dibuka sepenuhnya untuk memungkinkan
cahaya backlight berwarna putih menembusnya. Sebaliknya, untuk warna hitam, liquid crystal
ditutup rapat sehingga tidak ada cahaya yang dapat melewatinya. Untuk warna lainnya, su-
dut refleksi liquid crystal diatur sesuai kebutuhan. Teknologi ini memungkinkan LCD untuk
menampilkan berbagai warna dengan tingkat kontrol yang tinggi.

Gambar 2.1: Liquid Crystal Display LCD

Terdapat berbagai jenis terkait LCD. Di antaranya adalah sebagai berikut.

1. LCD Karakter: LCD karakter adalah pilihan yang populer untuk proyek Arduino karena
kemampuannya dalam menampilkan teks sederhana dengan jelas. Tersedia dalam variasi
ukuran, yang paling umum adalah 16x2 atau 20x4, yang menunjukkan jumlah karakter

2
per baris dan jumlah baris. Dengan kemampuan ini, LCD karakter cocok untuk menam-
pilkan data sensor, status sistem, atau pesan teks singkat dalam proyek-proyek DIY.

2. LCD Grafik: Berbeda dengan LCD karakter, LCD grafik memberikan fleksibilitas lebih
dalam menampilkan informasi karena dapat menampilkan gambar dan teks dengan lebih
bebas. LCD grafik hadir dalam berbagai ukuran dan resolusi, dengan menggunakan tek-
nologi seperti STN atau TFT untuk kualitas gambar yang lebih baik. Ini memungkinkan
penggunaan dalam proyek-proyek yang memerlukan tampilan visual yang lebih kaya dan
interaktif.

3. OLED Display: OLED Display sangat dihargai karena keunggulannya dalam ketebalan
yang sangat tipis dan kontras yang tinggi. Cocok untuk proyek yang membutuhkan tam-
pilan berkualitas tinggi dalam ruang kecil, OLED Display biasanya hadir dalam ukuran
kecil seperti 0.96 inci. Meskipun ukurannya kecil, OLED Display mampu menampilkan
teks dan gambar dengan jelas dan tajam.

4. TFT LCD: TFT LCD menawarkan warna penuh dan resolusi yang lebih tinggi daripada
LCD biasa atau bahkan LCD grafik. Ini membuatnya ideal untuk proyek-proyek yang
membutuhkan antarmuka pengguna grafis yang kompleks, seperti tampilan menu inte-
raktif atau tampilan data yang lebih detail dalam proyek IoT.

5. LED Matrix: LED Matrix terdiri dari susunan LED dan digunakan untuk menampilkan
pola, teks, dan animasi sederhana. Tersedia dalam berbagai ukuran dan warna, mulai dari
matriks LED monokrom hingga RGB penuh, LED Matrix cocok untuk proyek-proyek
yang memerlukan tampilan yang mencolok dan dinamis.

6. Seven Segment Display: Seven Segment Display adalah pilihan yang tepat untuk menam-
pilkan angka dan beberapa karakter khusus. Dengan kemampuannya yang khusus untuk
menampilkan angka, Seven Segment Display sering digunakan dalam aplikasi seperti jam,
penghitung, dan tampilan data numerik lainnya.

7. E-Paper Display: E-Paper Display menggunakan teknologi yang sama dengan e-reader,
memberikan konsumsi daya yang sangat rendah dan kemampuan untuk dibaca di bawah
sinar matahari. Cocok untuk aplikasi yang memerlukan tampilan yang stabil dan tidak
memerlukan refresh layar yang sering, seperti tampilan informasi cuaca atau status.

8. Nextion HMI: Nextion HMI merupakan layar sentuh yang dilengkapi dengan prosesor
sendiri untuk mengelola UI dan grafik. Ini memudahkan pembuatan antarmuka peng-
guna yang kompleks tanpa membebani prosesor utama Arduino. Dengan Nextion HMI,
pengguna dapat membuat tampilan yang interaktif dan dinamis dengan mudah.

LCD (Liquid Crystal Display) yang sering digunakan dalam proyek-proyek Arduino adalah
komponen kritis untuk menampilkan informasi. LCD ini bekerja dengan menggunakan kristal
cair di antara dua lapisan kaca konduktif. Ketika arus listrik diterapkan, kristal cair tersebut

3
mengatur cahaya yang melewatinya, sehingga menciptakan teks atau gambar yang terlihat di
layar. Terdapat berbagai jenis LCD yang bisa digunakan dengan Arduino, namun yang paling
umum adalah tipe 16x2. Ini berarti layarnya mampu menampilkan 16 karakter dalam 2 baris.
LCD ini biasanya memiliki pin untuk power, ground, input data, dan beberapa kontrol lainnya.
Untuk menghubungkan LCD ke Arduino, Anda perlu menyambungkan pin-pin pada LCD ke
pin I/O pada papan Arduino. Skema pengkabelan dan kode program yang digunakan akan
bervariasi tergantung pada jenis LCD yang dipilih dan kebutuhan spesifik proyek. LCD Arduino
digunakan dalam berbagai aplikasi seperti menampilkan data sensor, pesan teks, dan informasi
status dalam proyek-proyek DIY, robotik, dan sistem otomasi. Ini memberikan fleksibilitas
yang besar dalam mengkomunikasikan informasi visual dalam proyek-proyek elektronik.

2.2 Inter-Integrated Circuit (I2C)


Protokol I2C adalah protokol komunikasi seri yang digunakan untuk mengirim dan mene-
rima data antara perangkat master dan slave. I2C merupakan singkatan dari Inter-Integrated
Circuit, yang disebut dengan I-squared-C atau I-two-C. Protokol ini digunakan pada bus kom-
puter multi-master yang diciptakan oleh Philips dan digunakan untuk saling berkomunikasi
dengan perangkat low-speed lainnya yang diaplikasikan pada motherboard, embedded system,
atau cellphone.
Cara kerja I2C melibatkan langkah-langkah sebagai berikut:

• Master mengirimkan start sequence.

• Master mengirimkan alamat perangkat slave dengan bit R/W low.

• Master mengirimkan (write) command register yang diinginkan.

• Master mengirimkan start sequence kembali (repeated start).

• Master mengirimkan alamat perangkat slave dengan bit R/W high.

• Master membaca (read) data byte dari perangkat slave.

• Master membaca (read) data bytes lainnya.

• Master mengirimkan stop sequence.

I2C (Inter-Integrated Circuit) adalah sebuah protokol komunikasi yang digunakan untuk
menghubungkan berbagai komponen dalam sistem elektronik, seperti mikrokontroler, sensor,
dan perangkat lainnya. Protokol ini beroperasi dengan menggunakan struktur master-slave, di
mana satu perangkat bertindak sebagai master yang memulai dan mengendalikan proses ko-
munikasi, sedangkan perangkat lainnya berperan sebagai slave yang merespons perintah dari
master. Komunikasi dalam I2C terjadi melalui dua jalur, yaitu SDA (Serial Data Line) dan
SCL (Serial Clock Line). Proses dimulai saat master mengirimkan sinyal start ke SDA, diikuti
dengan alamat slave yang dituju beserta bit kendali operasi (baca/tulis). Setiap byte data yang

4
dikirimkan diikuti dengan bit ACK (Acknowledge) dari slave untuk memastikan bahwa data te-
lah diterima. Komunikasi diakhiri dengan sinyal stop yang dikirimkan oleh master. Kecepatan
transfer data pada I2C berkisar antara 100 kHz hingga 400 kHz, namun dapat mencapai hingga
3.4 MHz dalam mode Fast Mode Plus. Protokol ini juga memiliki mekanisme arbitrase yang
menangani konflik yang mungkin timbul jika dua atau lebih perangkat mencoba mengakses bus
secara bersamaan. Selain itu, I2C mendukung berbagai mode transfer data, termasuk transfer
dengan addressing 7-bit atau 10-bit, transfer secara sequential, dan transfer byte tunggal. Proses
kerja I2C dimulai dengan inisialisasi master yang mengirimkan sinyal start ke bus I2C. Selan-
jutnya, master mengirimkan alamat slave yang dituju dan operasi yang akan dilakukan (baca
atau tulis). Slave yang sesuai akan merespon dengan mengirimkan sinyal acknowledge. Setelah
proses pengiriman atau pembacaan data selesai, master mengirimkan sinyal stop untuk meng-
akhiri transaksi. Spesifikasi I2C mencakup kecepatan transfer data, yang bervariasi mulai dari
100 kHz untuk mode standar hingga 3.4 MHz untuk mode tinggi. Selain itu, spesifikasi juga
menetapkan jumlah perangkat yang dapat terhubung dalam satu bus, yakni maksimal 127 per-
angkat. Masing-masing pin pada LCD 16x2 I2C memiliki fungsi yang spesifik dalam mengatur
komunikasi dan daya. Berikut adalah penjelasan rinci untuk setiap pin:

• Vcc (Tegangan Positif). Pin ini digunakan untuk menyediakan tegangan positif ke mo-
dul LCD 16x2 I2C. Biasanya, tegangan yang diberikan adalah 5V dari sumber daya mik-
rokontroler atau papan pengembangan seperti Arduino. Tegangan ini diperlukan untuk
mengoperasikan modul LCD dan komponen lainnya yang ada di dalamnya.

• GND (Tegangan Negatif). Pin ini adalah ground atau titik referensi tegangan negatif. Ini
harus terhubung ke ground pada sumber daya mikrokontroler atau papan pengembangan
yang sama dengan pin Vcc. Ground adalah referensi nol untuk sinyal dan arus listrik,
dan penting untuk menghasilkan jalur kembali untuk arus listrik yang mengalir melalui
modul.

• SDA (Serial Data). Pin ini digunakan untuk mentransmisikan dan menerima data secara
serial dua arah antara modul LCD 16x2 dan perangkat I2C master (biasanya mikrokon-
troler seperti Arduino). Ini adalah jalur komunikasi yang digunakan untuk mentransfer
informasi seperti perintah tampilan atau data karakter dari mikrokontroler ke LCD, serta
menerima tanggapan atau status dari LCD.

• SCL (Serial Clock). Pin ini adalah jalur clock serial yang digunakan untuk mengatur
kecepatan komunikasi antara modul LCD 16x2 dan perangkat I2C master. Ini merupakan
sinyal clock yang disediakan oleh master dan digunakan untuk menentukan waktu untuk
mentransfer data antara perangkat. Semua perangkat dalam bus I2C menggunakan clock
yang sama untuk sinkronisasi komunikasi.

5
2.3 Sensor Load Cell
Sensor beban adalah sebuah perangkat yang mengubah gaya atau beban menjadi output
yang dapat diukur. Salah satu jenis sensor beban yang umum digunakan adalah strain gauge
load cell, yang dapat dijelaskan sebagai perangkat yang mengonversi gaya atau beban menjadi
sinyal listrik yang setara. Sensor beban strain gauge dirancang khusus untuk mengukur berat
statis dengan akurasi tinggi. Ketika gaya diberikan pada sensor beban, gaya tersebut diubah
menjadi tegangan yang sesuai dengan perubahan resistansi pada strain gauge. Banyak sensor
beban menggunakan strain gauge dengan konfigurasi jembatan Wheatstone empat lengan.

Gambar 2.2: Sensor Ultrasonik HC SR 04

Sebuah sel beban adalah perangkat yang digunakan untuk mengukur gaya. Sebagai tang-
gapan terhadap gaya yang diterapkan, ia menghasilkan sinyal listrik pada outputnya. Salah
satu jenis sel beban yang paling umum adalah strain gauge, yang digunakan untuk mengukur
berat. Dalam artikel ini, kita akan melihat bagaimana sebuah sel beban bekerja dan berbagai
spesifikasinya. Sebuah sel beban adalah transduser gaya. Transduser adalah perangkat yang
mengonversi bentuk energi menjadi sinyal listrik yang dapat dibaca. Dalam hal ini, sel beban
mengonversi gaya menjadi tegangan yang dapat dibaca oleh perangkat listrik. Salah satu sel
beban yang paling sering digunakan dalam kehidupan sehari-hari adalah strain gauge, yang da-
pat ditemukan di hampir semua perangkat yang mengukur berat. Sebuah sel beban mengandung
bahan resistif yang sangat halus pada backing fleksibel. Ketika gaya diterapkan pada tubuh sel
beban, bahan resistif dipaksa untuk berdeformasi dengan backing fleksibel. Karena dimensi
strip resistif berubah, resistansinya juga berubah. Namun, perubahan dalam resistansi sangat
kecil dibandingkan dengan resistansi total bahan - biasanya dalam rentang 1:100. Hal ini mem-
buat pengukuran resistansi absolut sulit. Untuk alasan ini, resistor yang terbentuk oleh bahan
resistif pada backing fleksibel ditempatkan dalam konfigurasi yang disebut jembatan Wheats-
tone. Sebuah tegangan yang disebut tegangan eksitasi diterapkan pada dua sudut berlawanan
dari berlian, dan keluaran dibaca antara sepasang sudut berlawanan lainnya. Biasanya, ketika
tidak ada gaya yang diterapkan, semua resistor memiliki nilai yang sama. Setiap ’kaki’ jembat-
an Wheatstone adalah pembagi tegangan, dan karena semua resistor sama, tegangan keluaran
dari setiap kaki adalah sama - yang berarti bahwa keluaran adalah 0V, karena keluaran berada
di tengah setiap pembagi tegangan. Ketika gaya diterapkan, nilai salah satu resistor berubah,
yang mengubah tegangan pada kaki jembatan itu. Ini menyebabkan perbedaan tegangan kecil

6
muncul pada keluaran. Sensor beban strain gauge memiliki kemampuan untuk diaplikasikan
dalam berbagai situasi yang berbeda, menunjukkan fleksibilitas dan kegunaannya yang luas.
Salah satu aplikasi yang umum adalah dalam memonitor perubahan berat suatu objek seiring
waktu. Misalnya, sensor beban ini dapat digunakan dalam skala industri atau laboratorium un-
tuk memastikan berat suatu bahan atau produk tetap konsisten atau mengalami perubahan yang
dapat diidentifikasi. Selain itu, sensor beban juga berguna untuk mengukur berat suatu objek
secara langsung. Contohnya adalah penggunaan dalam timbangan industri, yang memungkink-
an pengukuran berat dengan akurasi tinggi. Selain mengukur berat, sensor beban juga dapat
digunakan untuk mendeteksi keberadaan suatu objek. Ini dapat diterapkan dalam sistem oto-
matisasi, seperti sensor berat pada platform konveyor untuk mendeteksi apakah suatu objek
telah tiba atau tidak. Selanjutnya, sensor beban juga dapat digunakan untuk memperkirakan
level cairan dalam suatu wadah. Dengan menempatkan sensor beban di bawah wadah yang ber-
isi cairan, perubahan berat yang diukur dapat diinterpretasikan sebagai perubahan level cairan
dalam wadah tersebut. Secara keseluruhan, aplikasi-aplikasi ini menegaskan kegunaan sensor
beban strain gauge dalam berbagai konteks, memperlihatkan fleksibilitasnya dalam pengukuran
berat dan deteksi objek.

• Merah (VCC/E+): Kabel merah biasanya dihubungkan ke tegangan positif atau sumber
daya positif (VCC atau E+). Fungsi kabel merah ini adalah untuk menyediakan daya atau
tegangan positif kepada sensor beban.

• Hitam (GND/E-): Kabel hitam biasanya terhubung ke ground atau titik referensi tegang-
an negatif (GND atau E-). Kabel hitam ini bertanggung jawab untuk menutup sirkuit
dengan ground, sehingga menyeimbangkan potensial dan memungkinkan aliran arus lis-
trik.

• Putih (Output – / A-): Kabel putih adalah output negatif (Output – atau A-) dari sensor
beban. Ini adalah sinyal keluaran yang membawa informasi tentang perubahan beban
atau gaya yang diterapkan pada sensor.

• Hijau (Output + / A+): Kabel hijau merupakan output positif (Output + atau A+) dari
sensor beban. Ini adalah sinyal keluaran yang membawa informasi tentang perubahan
beban atau gaya yang diterapkan pada sensor.

2.4 Modul HX711


Modul HX711 merupakan sebuah modul penguat dan konverter analog-ke-digital (ADC)
24-bit presisi yang dirancang untuk interfacing dengan sensor load cell (sel beban) dalam ber-
bagai aplikasi kontrol industri. Modul ini menawarkan solusi ringkas dan mudah digunakan
untuk membangun sistem pengukuran berat digital yang akurat dan andal. Tegangan output
yang dihasilkan oleh sensor beban sangat rendah, sehingga memerlukan penguat khusus. Sa-
lah satu penguat yang sering digunakan adalah modul HX711. HX711 adalah konverter ADC
24-bit yang didesain khusus untuk aplikasi timbangan dan kontrol industri. Pada HX711, input

7
Gambar 2.3: Sensor Ultrasonik HC SR 04

multiplexer memilih saluran input diferensial A atau B untuk diproses oleh penguat PGA (Pro-
grammable Gain Amplifier). Saluran A dapat diprogram dengan gain penguatan 128 atau 64,
yang sesuai dengan tegangan input diferensial skala penuh masing-masing sekitar 20 mV atau
40 mV. Sementara itu, saluran B memiliki gain penguatan tetap sebesar 32. HX711 juga me-
nyediakan power supply on-chip yang menghilangkan kebutuhan akan regulator eksternal untuk
menyediakan daya bagi ADC dan sensor. Fleksibilitas input clock pada HX711 memungkinkan
pengguna untuk menggunakan sumber clock eksternal, kristal, atau osilator on-chip.

• Penguat 24-bit ADC presisi tinggi: HX711 menyediakan pengukuran konversi ADC
24-bit yang presisi, menghasilkan pembacaan berat yang akurat dan stabil.

• Gain yang dapat diprogram: Modul ini menawarkan pengaturan gain yang dapat dip-
rogram melalui pin Gain, memungkinkan pengguna untuk menyesuaikan sensitivitas pe-
ngukuran sesuai dengan rentang berat sensor load cell yang digunakan.

• Filter digital internal: HX711 dilengkapi dengan filter digital internal yang memban-
tu meredam noise dan gangguan, menghasilkan pembacaan yang lebih stabil dan bebas
fluktuasi.

• Komunikasi I2C: Modul ini menggunakan antarmuka komunikasi I2C dua arah yang
populer, memungkinkan integrasi yang mudah dengan berbagai mikrokontroler dan pla-
tform pengembangan.

2.5 Arduino Uno


Arduino Uno, yang berbasis pada mikrokontroler ATMega328, menyajikan 14 pin input/o-
utput digital. Dari jumlah tersebut, enam pin berfungsi sebagai output PWM dan enam lainnya
sebagai input analog. Dilengkapi dengan osilator kristal 16 MHz, koneksi USB, jack power,
ICSP header, dan tombol reset, Arduino Uno dapat diaktifkan dengan menghubungkannya ke
komputer melalui kabel USB atau sumber listrik AC melalui adaptor DC atau baterai. Setiap
dari 14 pin digital dapat berperan sebagai input atau output melalui fungsi seperti pinMode(),
digitalWrite(), dan digitalRead(), beroperasi pada tegangan 5 volt. Masing-masing pin dapat
menangani arus maksimum 40 mA, dilengkapi dengan resistor pull-up 20-50 kOhm. Arduino
Uno juga memiliki fasilitas komunikasi dengan komputer dan mikrokontroler lain, termasuk
UART TTL (5V) komunikasi serial yang terdapat pada pin digital 0 (RX) dan 1 (TX).

8
Arduino Uno mendukung berbagai metode daya, baik melalui koneksi USB maupun sum-
ber daya eksternal. Adaptor DC atau baterai dapat digunakan sebagai power supply dengan
menghubungkannya ke jack adaptor pada port input supply. Dengan 32 KB flash memory un-
tuk menyimpan kode, 2 KB untuk bootloader, 2 KB SRAM, dan 1 KB EEPROM, Arduino
Uno menawarkan beragam kemampuan untuk pengembangan program dan komunikasi serial
dengan kecepatan eksekusi program yang optimal. Mikrokontroler ATMega328P, bagian dari
keluarga AVR, merupakan perangkat CMOS 8-bit dengan arsitektur RISC. Dengan 8 Kbyte
In-System Programmable Flash melalui Serial Peripheral Interface (SPI), ATMega328P me-
mungkinkan pemrograman ulang memori program. Keunggulan mikrokontroler AVR terletak
pada kecepatan eksekusi program yang tinggi, mendekati 1 MIPS per MHz, dengan konsumsi
daya yang rendah. ATMega328P dapat dengan mudah diprogram dan diprogram ulang melalui
platform seperti Prototype Arduino dan Aplikasi Arduino IDE. Fitur-fitur ATMega328P terma-
suk 130 instruksi dalam satu siklus clock, kecepatan eksekusi hingga 16 MIPS pada clock 16
MHz, Flash Memory 32 Kb, EEPROM 1 Kb, SRAM 2 Kb, dan 23 pin I/O digital.

Gambar 2.4: Arduino UNO

Menurut Abdul Kadir, Arduino Uno adalah salah satu produk berlabel Arduino yang beru-
pa papan elektronik dengan mikrokontroler Atmega328, berfungsi sebagai komputer. Menurut
Feri Djuandi, Arduino Uno adalah board mikrokontroler berbasis Atmega328 dengan 14 pin
input/output, 6 output PWM, 6 input analog, osilator 16 MHz, port USB, power jack, ICSP
header, dan tombol reset. Fungsi Arduino Uno pada dasarnya mirip dengan jenis Arduino lain-
nya, mempermudah pengendalian komponen elektronika seperti LED, motor DC, relay, servo,
modul, dan berbagai sensor melalui program. Manfaat Arduino Uno umumnya digunakan un-
tuk menciptakan produk canggih yang bermanfaat sehari-hari, seperti alat otomatis, perangkat
pemantauan, dan pengontrolan, dengan kemudahan, biaya terjangkau, dan kegembiraan dalam
kreasi. Pin Arduino Uno dilengkapi dengan 14 pin input/output digital (6 dapat digunakan se-
bagai output PWM), 6 pin input analog, serta pin reset, ground, VCC, IOREF, AREF, SDA,
dan pin SCL, masing-masing memiliki fungsi khusus. Arduino Uno merupakan papan sirkuit
dengan berbagai komponen seperti kristal osilator 16 MHz, port USB, power jack, header ICSP,
dan tombol reset, yang saling berhubungan untuk memastikan kinerja Arduino. Setiap pembe-
lian Arduino Uno umumnya termasuk kabel USB berwarna biru cerah dengan konektor tipe A
ke tipe B, mirip dengan kabel printer inkjet, digunakan untuk mengupload sketch dari komputer

9
ke Arduino atau sebagai penghubung ke sumber daya. Adapun bahasa pemrograman Arduino
Uno yaitu menggunakan bahasa pemrograman C yang disederhanakan dan dilengkapi dengan
library. Arduino IDE berperan sebagai teks editor dan media untuk meng-upload program dari
komputer ke Arduino, dapat diinstal di Windows, Macintosh, dan Linux.

2.6 Integrated Development Environment (IDE) Arduino

Gambar 2.5: Tampilan Interface Arduino IDE

Arduino Integrated Development Environment (IDE) v1 membawa pemahaman tentang ber-


bagai aspek, mulai dari penyusunan dan pengunggahan sketsa hingga manajemen file, pema-
sangan dependensi, dan sejumlah fungsi penting lainnya. Dalam Arduino Integrated Develo-
pment Environment - atau Arduino Software (IDE) - terdapat editor teks untuk menulis kode,
area pesan, konsol teks, serta toolbar yang dilengkapi dengan tombol untuk fungsi umum. Sela-
in itu, terdapat serangkaian menu yang mendukung proses pengembangan. IDE ini berinteraksi
secara langsung dengan perangkat keras Arduino, memungkinkan pengguna untuk mengunggah
program dan berkomunikasi dengan perangkat Arduino mereka.
Program yang dikembangkan menggunakan Arduino Software (IDE) disebut sketsa, yang
ditulis di editor teks dan disimpan dengan ekstensi file .ino. Editor ini menyediakan fitur poto-
ng/salin dan pencarian/penggantian teks. Area pesan memberikan umpan balik saat menyimp-
an dan mengekspor, sementara konsol menampilkan output teks dari Arduino Software (IDE),
termasuk pesan kesalahan lengkap dan informasi lainnya. Pada sudut kanan bawah jendela,
terdapat papan dan port serial yang terkonfigurasi. Toolbar menyediakan tombol untuk memve-
rifikasi dan mengunggah program, membuat, membuka, dan menyimpan sketsa, serta membuka
pemantauan serial.

10
BAB 3
METODOLOGI PENELITIAN
3.1 Waktu dan Tempat Penelitian
Adapun penelitian ini dilaksanakan pada tanggal 27 Maret 2024 pukul 07.00 hingga 09.00
WIB di Laboratorium Basic Physics, Gedung Laboratorium Solahuddin Sanusi UIN Sunan
Gunung Djati Bandung.

3.2 Alat dan Bahan


Adapun alat dan bahan yang digunakan pada percobaan ini adalah sebagai berikut.

Tabel 3.1: Alat dan Bahan yang dibutuhkan pada rangkaian Timbangan Digital

No. Alat dan Bahan Kuantitas


1. Arduino Uno R3 1 buah
2. Liquid Crystal Display (LCD) 1 buah
3. Modul I2C 1 buah
4. SensorLoad Cell 1 buah
5. Kabel Jumper Secukupnya
6. Modul HX711 1 buah
7. Software Arduino IDE -
8. Tutup Toples (Bentuk Serupa) 2 buah
9. Kabel Serial 1 buah
10. Spacer 4 buah
11. Beban bercelah Secukupnya
12. Solder 1 buah
13. Timah Secukupnya

11
3.3 Diagram Alir
3.3.1 Kalibrasi Modul HX711 dan Sensor Load Cell

Mulai

Menyiapkan alat dan bahan

Menyiapkan kode program kalibrasi sensor Load Cell dan Modul HX711

Menghubungkan modul HX711 dan sensor secara hardware

Menghubungkan rangkaian dengan laptop menggunakan kabel serial

Mengunggah kode program terhadap Arduino Uno

Apakah kalibrasi yang dilakukan sesuai? Mengecek rangkaian dan kode program
Tidak Berhasil

Berhasil

Nilai kalibrasi beban pada program sesuai dengan beban nyata

Selesai

12
3.3.2 Diagram Alir Rangkaian Timbangan Digital

Mulai

Menyiapkan alat dan bahan

Menyiapkan kode program Timbangan Digital

Menghubungkan rangkaian Timbangan Digital secara hardware

Menghubungkan rangkaian dengan laptop menggunakan kabel serial

Mengunggah kode program terhadap Arduino Uno

Apakah rangkaian bekerja dengan baik? Mengecek rangkaian dan kode program
Tidak Berhasil

Berhasil

Terbaca nilai beban pada LCD dan sesuai dengan beban nyata

Mencatat data yang didapatkan dan menganalisis data

Selesai

13
BAB 4
DATA DAN PEMBAHASAN
4.1 Data

Tabel 4.1: Tabel Data Pengukuran Berat Beban Timbangan Digital

Nilai Pembacaan Berat Beban


Beban
Nilai Berat oleh Sensor Nilai Berat Secara Real
1. 10 gram 10 gram
2. 20 gram 20 gram
3. 30 gram 30 gram
4. 50 gram 50 gram
5. 80 gram 79 gram

4.2 Pembahasan
Rangkaian Timbangan Digital terdiri atas 4 komponen utama, di antaranya yaitu sensor load
cell, modul HX711, LCD I2C, dan Arduino Uno R3. Pada sensor load cell, dihubungkan kabel
merah terhadap pin E+ modul HX711. Selanjutnya, kabel hitam dihubungkan terhadap pin E-
modul HX711. Kemudian, kabel putih sensor dihubungkan terhadap pin A- dan kabel hijau
sensor dihubungkan terhadap pin A+ modul HX711. Selanjutnya, pada modul HX711, pin Vcc
sensor dihubungkan terhadap pin 5V Arduino Uno R3 sebagai sumber tegangan untuk meng-
aktifkan sensor dan modul HX711. Kemudian, pin GND pada modul HX711 dihubungkan ter-
hadap pin GND Arduino sebagai ground modul dan sensor. Selanjutnya, dihubungkan pin DT
modul terhadap pin digital 4 Arduino untuk pengiriman dan penerimaan data dari sensor terha-
dap mikrokontroler dan mengirimkannya kembali secara berulang. Kemudian, pin SCK modul
dihubungkan terhadap pin digital 5 Arduino untuk sinkronisasi transfer data terhadap Arduino
dan sensor. Untuk visualisasi data terukur, digunakan LCD I2C dengan pin Vcc dihubungkan
terhadap pin 5V Arduino sebagai sumber tegangan, kemudian pin GND LCD dihubungkan ter-
hadap pin GND Arduino sebagai ground tegangan, pin SDA LCD yang dihubungkan dengan
pin analog A4 Arduino sebagai serial data, dan pin SCL LCD yang dihubungkan terhadap pin
analog A5 Arduino sebagai serial clock. Rangkaian Timbangan Digital ini memiliki prinsip
kerja utama yaitu transduser gaya yang mengubah tekanan pada sensor menjadi sinyal listrik,
untuk kemudian dikirimkan dan diproses hingga dibaca melalui mikrokontroler dan divisua-
lisasikan terhadap LCD. Pada rangkaian ini, sensor load cell menerima tekanan atau beban
sehingga mengubah nilai resistansi dengan mengacu pada konsep jembatan Wheatstone. Per-
ubahan nilai resistansi ini turut diiringi transformasi tekanan atau beban yang didapat menjadi
sinyal listrik. Karena sinyal yang dikirmkan terhadap Arduino dari sensor terlampau kecil, ma-
ka sinyal yang dikirimkan ini dikuatkan dengan amplifier. Di antara amplifier yang selaras dan

14
dapat diaplikasikan untuk sensor adalah modul HX711. Sinyal yang dikirimkan oleh sensor ini
kemudian diolah dan diproses pada modul. Sinyal digital yang diproses pada modul kemudian
dikirimkan memanfaatkan pin SCK dan DT untuk transfer sinyal serta diproses pada mikrokon-
troler sesuai dengan kode program yang disusun. Selanjutnya, sinyal yang diterima ini diolah
dan ditampilkan secara output berupa nilai berat atau massa yang terukur pada rangkaian. Ou-
tput ini kemudian divisualisasikan pada LCD yang terintegrasi dengan I2C untuk protokol LCD
sehingga memudahkan dan meningkatkan efektivitas pembacaan dan penerimaan data terproses
dari mikrokontroler. Ketika sensor (penampang timbangan) diberi beban, sesuai dengan hasil
kalibrasi yang dilakukan sebelumnya, maka perubahan tekanan yang dikonversikan menjadi
sinyal listrik dan diproses menjadi besaran fisis massa ditampilkan pada LCD sesuai dengan
massa beban sesungguhnya.
Load cell memainkan peran kunci dalam operasi dan akurasi timbangan digital. Saat diberi
beban, load cell mengalami deformasi yang disebabkan oleh gaya yang diterapkan. Deformasi
ini mengubah resistansi dalam strain gauge yang terpasang di dalam load cell. Dengan me-
manfaatkan konsep jembatan Wheatstone, deformasi atau perubahan resistansi ini beriringan
dengan berubahnya input berupa tekanan menjadi sinyal listrik. Perubahan ini kemudian dikon-
versi menjadi sinyal listrik yang proporsional dengan besar gaya yang diterapkan. Sinyal listrik
ini kemudian diolah oleh rangkaian penguat dan prosesor sinyal dalam timbangan digital. Pada
level mikrokontroler, sinyal listrik dari load cell diambil dan diolah oleh penguat sinyal yai-
tu modul HX711 untuk meningkatkan kekuatan sinyal dan menghilangkan noise yang mung-
kin terjadi. Setelah itu, sinyal yang telah dikuatkan dikonversi menjadi digital menggunakan
konverter analog-ke-digital (ADC). Nilai digital yang dihasilkan oleh ADC menggambarkan
besar gaya atau berat yang diterapkan pada load cell. Selanjutnya, nilai digital ini diproses
oleh mikrokontroler atau prosesor dalam timbangan digital. Mikrokontroler akan memproses
nilai digital ini sesuai dengan kode program yang disusun, yaitu menghitung berat kemudian
menampilkan hasil pengukuran pada layar LCD. Pengaruh load cell pada akurasi timbangan
digital sangat penting. Ketidakseimbangan dalam load cell atau deformasi yang tidak merata
dapat menyebabkan kesalahan pengukuran yang signifikan.
Rangkaian Timbangan Digital ini tersusun atas 4 komponen utama, yaitu sensor load cell,
modul amplifier HX711, kemudian LCD I2C, dan Arduino Uno. Sensor load cell adalah kom-
ponen inti dalam timbangan digital. Fungsinya adalah untuk mendeteksi dan mengukur gaya
atau beban yang diterapkan pada timbangan. Ketika beban ditempatkan pada timbangan, sensor
load cell mengalami deformasi yang berubah menjadi perubahan dalam resistansi strain gauge
yang terpasang di dalamnya. Perubahan ini kemudian dikonversi menjadi sinyal listrik yang
dapat diukur, yang akan diteruskan ke komponen berikutnya dalam rangkaian. Modul amplifier
HX711 bertanggung jawab untuk memperkuat dan mengolah sinyal listrik yang dihasilkan oleh
sensor load cell. Fungsi utama dari HX711 adalah untuk memperkuat sinyal yang lemah dari
sensor load cell sehingga dapat diinterpretasikan oleh mikrokontroler. Selain itu, HX711 juga
memiliki peran dalam menghilangkan noise yang mungkin terjadi dalam sinyal dan menyedi-
akan antarmuka yang sesuai dengan mikrokontroler untuk mengonversi sinyal analog menjadi

15
digital. LCD I2C (Liquid Crystal Display dengan komunikasi I2C) adalah komponen yang
digunakan untuk menampilkan hasil pengukuran berat atau informasi lainnya kepada penggu-
na. Fungsinya adalah untuk memberikan antarmuka visual yang jelas dan mudah dibaca bagi
pengguna timbangan. Dengan menggunakan protokol komunikasi I2C, LCD dapat terhubung
dengan Arduino Uno dengan menggunakan jumlah pin yang minimum. Ini memungkinkan
penghematan pin pada Arduino Uno dan menyederhanakan koneksi antara komponen dalam
rangkaian. Kemudian, komponen selanjutnya yang menjadi komponen utama pada rangkaian
timbangan digital adalah mikrokontroler Arduino Uno. Arduino Uno adalah otak dari rangkaian
timbangan digital. Mikrokontroler ini bertanggung jawab untuk mengontrol operasi keseluruh-
an sistem, mulai dari membaca sinyal dari sensor load cell, mengolah data pengukuran, hingga
menampilkan hasilnya pada LCD. Arduino Uno juga menyediakan antarmuka untuk berbagai
komponen lain dalam rangkaian, seperti HX711 dan LCD I2C. Dengan menggunakan program
yang sesuai, Arduino Uno dapat melakukan pengukuran berat secara akurat, mengatur opera-
si timbangan, dan memberikan respons sesuai pada input dari pengguna atau sistem eksternal.
Sebagai pusat kontrol, Arduino Uno memastikan integrasi dan fungsionalitas yang lancar dari
seluruh rangkaian timbangan digital.
Pada pengukuran massa beban menggunakan timbangan digital, digunakan 5 variasi beban
yaitu beban bercelah dengan massa sesungguhnya berturut-turut yaitu 10 gram, 20 gram, 30
gram, 50 gram, dan beban 80 gram. Pada pengukuran nilai massa beban yang terbaca oleh
rangkaian dengan acuan nilai terukur pada LCD, didapatkan nilai massa atau berat terukur pada
beban 10 gram yaitu 10 gram. Kemudian, pada beban 20 gram, nilai massa terukur pada rang-
kaian menunjukkan nilai yang sama yaitu sebesar 20 gram. Selanjutnya, pada pengujian massa
beban 30 gram didapatkan nilai massa terukur pada rangkaian timbangan sebesar 30 gram. Pada
massa beban bercelah 50 gram, terukur massa pada rangkaian timbangan digital yaitu sebesar
50 gram. Pada variasi beban terakhir yaitu sebesar 80 gram, didapatkan nilai massa terukur pa-
da rangkaian sebesar 79 gram. Berdasarkan data yang didapatkan atau terukur pada timbangan
digital, nilai massa menunjukkan nilai yang sesuai dan sama dengan nilai massa sesungguh-
nya dari beban. Adapun perbedaan nilai massa yang terukur ditunjukkan pada massa beban 80
gram dengan perbedaan nilai massa terukur dengan massa sesungguhnya yaitu sebesar 1 gram.
Perbedaan nilai massa ini dapat dipengaruhi oleh beberapa faktor, di antaranya kalibrasi massa
yang dilakukan pada rangkaian timbangan digital serta input nilai kalibrasi pada kode program
memungkinkan adanya perbedaan nilai massa meski perbedaan tersebut tidak signifikan. Se-
lanjutnya, perbedaan nilai massa tersebut turut dapat dipengaruhi pada peletakkan massa pada
penampang timbangan. Penempatan massa yang kurang presisi memungkinkan perbedaan pu-
sat tekanan atau massa yang dibaca oleh sensor sehingga memungkinkan adanya perbedaan
massa yang diproses oleh sensor dan rangkaian secara keseluruhan. Kemudian, pada variasi da-
ta lainnya didapatkan nilai yang setara dengan nilai massa sesungguhnya. Hal ini menunjukkan
baik kalibrasi massa maupun rangkaian dan kode program timbangan digital yang diaplikasik-
an dapat berjalan dengan optimal dan presisi. Hal ini kemudian menunjukkan bahwa rangkaian
dapat bekerja dengan baik dan mampu mengukur massa beban dengan tepat dan presisi.

16
Dalam kehidupan sehari-hari, jenis timbangan digital untuk berbagai keperluan di antara-
nya yaitu timbangan digital menggunakan tegangan listrik, pegas, maupun elektronik seperti
menggunakan mikrokontroler. Timbangan digital berbasis tegangan listrik (Load Cell), umum-
nya digunakan dalam timbangan industri, seperti timbangan truk di jalan raya. Load cell pada
timbangan truk ini berfungsi untuk mengukur berat kendaraan dan muatan yang dibawa. Ketika
truk melewati timbangan, beban truk akan diterjemahkan menjadi sinyal tegangan listrik oleh
load cell, dan kemudian sinyal ini akan diolah oleh sistem elektronik untuk menampilkan berat
total kendaraan. Timbangan digital berbasis pegas (Spring Scale) juga banyak digunakan da-
lam kehidupan sehari-hari, terutama untuk mengukur berat benda kecil di rumah atau di toko.
Contohnya, ketika berbelanja di pasar atau toko, timbangan pegas digunakan untuk mengukur
berat buah atau sayuran. Pergeseran pegas yang dihasilkan oleh beban benda akan menghasilk-
an perubahan dalam sinyal listrik yang kemudian akan ditampilkan sebagai berat benda pada
layar timbangan. Timbangan digital berbasis elektronik (Electronic Scale) juga sering ditemui
dalam kehidupan sehari-hari, terutama di rumah atau di dapur untuk mengukur berat bahan ma-
kanan atau bahan masakan. Misalnya, ketika memasak dan membutuhkan jumlah yang tepat
dari bahan tertentu, seperti tepung atau gula, digunakan timbangan elektronik. Timbangan ini
menggunakan sensor elektronik seperti strain gauge atau piezoelektrik untuk mengukur beb-
an benda, dan hasil pengukuran tersebut ditampilkan langsung pada layar digital timbangan.
Dengan demikian, timbangan ini membantu untuk memastikan proporsi yang akurat dalam
memasak dan mengolah bahan makanan. Dalam contoh konkret yang umum ditemui dalam
kehidupan sehari-hari, timbangan digital diaplikasikan pada aktivitas terkait industri, logistik,
makanan, hingga farmasi. Di rumah atau di pusat kebugaran, timbangan digital menjadi alat
yang tak tergantikan untuk mengetahui berat badan seseorang. Dengan desain yang sederhana
dan penggunaan yang mudah, individu dapat dengan cepat mengetahui perubahan berat bad-
an mereka dari waktu ke waktu, membantu mereka dalam memantau kesehatan dan progres
kebugaran mereka secara efektif. Ketika berurusan dengan pengiriman paket, presisi dalam
menentukan berat adalah kunci untuk memastikan biaya pengiriman yang akurat. Kantor pos
dan jasa pengiriman menggunakan timbangan digital untuk menimbang paket sebelum pengi-
riman. Dalam industri makanan, di mana setiap gram bahan memiliki dampak pada kualitas
dan konsistensi produk akhir, timbangan digital adalah alat yang tak tergantikan. Dari mengu-
kur bahan mentah seperti tepung dan gula hingga mencampurkan bahan-bahan dengan presisi
tertentu, timbangan digital memastikan bahwa setiap produk memenuhi standar kualitas yang
ketat. Dalam industri farmasi, kebutuhan akan akurasi mutlak dalam pengukuran bahan-bahan
kimia sangat penting. Timbangan digital digunakan untuk menimbang bahan-bahan yang dibu-
tuhkan dalam pembuatan obat-obatan, memastikan bahwa setiap dosis obat diproduksi dengan
ketepatan yang sangat tinggi untuk keamanan dan efektivitas pasien. Di toko-toko, penggunaan
timbangan digital sangat umum dalam menimbang buah, sayuran, daging, dan produk lainnya
sebelum dijual kepada pelanggan. Dengan kemampuan untuk memberikan hasil yang konsisten
dan akurat, timbangan digital membantu dalam menghitung harga dengan benar berdasarkan
berat produk, memastikan transaksi yang adil dan transparan bagi pelanggan.

17
BAB 5
KESIMPULAN
Berdasarkan penelitian yang telah dilaksanakan, diperoleh kesimpulan sebagai berikut.

1. Modul HX711 merupakan penguat dan konverter analog-ke-digital (ADC) 24-bit presisi
yang dirancang khusus untuk berinteraksi dengan sensor load cell dalam aplikasi kontrol
industri. Dengan kemampuan presisi tinggi, modul ini menghasilkan pembacaan ber-
at yang akurat dan stabil. Fitur pengaturan gain yang dapat diprogram memungkinkan
pengguna untuk menyesuaikan sensitivitas pengukuran sesuai dengan karakteristik sen-
sor load cell yang digunakan. Dilengkapi dengan filter digital internal, HX711 dapat
meredam noise dan gangguan, memastikan pembacaan yang lebih stabil dan terhindar
dari fluktuasi.

2. Sensor load cell, merupakan perangkat yang mengubah gaya atau beban yang diterapk-
an padanya menjadi sinyal listrik yang dapat diukur. Prinsip kerjanya didasarkan pada
deformasi material resistif yang terdapat di dalamnya saat gaya diterapkan. Saat beban
diterapkan pada sensor load cell, material resistif mengalami deformasi, menyebabkan
perubahan dalam resistansinya. Namun, perubahan ini sangat kecil dan sulit untuk diukur
secara langsung. Oleh karena itu, sensor load cell menggunakan konfigurasi jembatan
Wheatstone. Ketika tidak ada beban yang diterapkan, tegangan keluaran dari setiap su-
dut jembatan Wheatstone adalah sama, sehingga keluaran bersih adalah 0V. Namun, saat
beban diterapkan, perubahan resistansi di salah satu sudut jembatan mengubah tegangan
pada sudut tersebut, menghasilkan perbedaan tegangan kecil yang dapat diukur sebagai
output.

3. Telah disusun rangkaian timbangan digital dengan memanfaatkan sensor load cell, modul
amplifier HX711, LCD I2C, dan Arduino Uno R3. Pada sensor load cell, kabel merah
terhubung ke pin E+ dan kabel hitam ke pin E- pada modul HX711. Kabel putih dari
sensor terhubung ke pin A-, sementara kabel hijau ke pin A+ pada modul HX711. Modul
HX711 ditenagai melalui pin Vcc yang terhubung ke pin 5V Arduino Uno R3, sedangkan
pin GND modul terhubung ke pin GND Arduino. Untuk transfer data, pin DT modul ter-
hubung ke pin digital 4 Arduino, dan pin SCK modul terhubung ke pin digital 5 Arduino.
Visualisasi data menggunakan LCD I2C, dengan pin Vcc dan GND terhubung ke pin 5V
dan GND Arduino secara berurutan. Pin SDA LCD terhubung ke pin analog A4 Arduino
sebagai serial data, dan pin SCL LCD terhubung ke pin analog A5 Arduino sebagai serial
clock. Dengan pengaturan ini, sensor load cell dapat mengirim dan menerima data dari
mikrokontroler Arduino, yang kemudian ditampilkan pada LCD untuk visualisasi.

18
Daftar Pustaka
[1] Arduino. (n.d.).Arduino Integrated Development Environment (IDE) v1. Retrie-
ved from: https://docs.arduino.cc/software/ide-v1/tutorials/
arduino-ide-v1-basics

[2] Avia Semiconductor. (2020). HX711 Datasheet.

[3] Components 101. (2021, 1 November). What is a Load Cell How Does it Work?.
Components 101. Retrieved from https://components101.com/articles/
load-cell

[4] Kho, D. Pengertian LCD (Liquid Crystal Display) dan Prinsip Kerja LCD.
Teknik Elektronika. Retrieved from https://teknikelektronika.com/
pengertian-lcd-liquid-crystal-display-prinsip-kerja-lcd/

[5] N. Patel, P. S. Prajapati. (2016). Interfacing of PIC Microcontroller with I2C (Inter-
Integrated Circuit). International Journal of Computer Applications, vol 139(8): 11-14.

[6] Prastyo, E.A. (2020, 30 Agustus). Arduino UNO ATMega328P. Arduino Indo-
nesia. Retrieved from https://www.arduinoindonesia.id/2022/08/
pengertian-dan-penjelasan-arduino-uno.html

[7] Prastyo, E.A. (n.d.). Sensor Berat (Load Cell). Edukasi Elektronika. Re-
trieved from https://www.edukasielektronika.com/2020/10/
sensor-berat-load-cell.html

[8] Random Nerd Tutorial. (n.d.). Arduino with Load Cell and HX711 Amplifier (Digital Sca-
le). Random Nerd Tutorial. Retrieved from https://randomnerdtutorials.com/
arduino-load-cell-hx711/

[9] Razor, A. (2021, 25 Februari). Arduino Uno Adalah: Pengertian, Fungsi, Pemro-
graman, dan Harga. Retrieved from: https://www.aldyrazor.com/2020/04/
arduino-uno-adalah.html

[10] Razor, A. (2021, 25 Februari). Arduino Uno Adalah: Pengertian, Fungsi, Pemro-
graman, dan Harga. Retrieved from: https://www.aldyrazor.com/2020/04/
arduino-uno-adalah.html

19
[11] Smith, J., Jones, A.(2020). A Study on the Inter-Integrated Circuit (I2C) Protocol for
Embedded Systems. Journal of Embedded Systems, 10(2), 45-56.

[12] SparkFun Electronics. (n.d.). HX711 Load Cell Amplifier Datasheet.

[13] SparkFun Electronics. (n.d.). LCD 16x2 I2C/I2C Backpack Datasheet. Retrieved from
https://www.sparkfun.com/datasheets/LCD/HD44780.pdf

[14] Surya, F. (2007). I2C Protokol. Jakarta: BINUS University.

[15] Virtualab IoT. Display. Retrieved from: https://te.eng.uho.ac.id/


virtualab/manager/display.html#:˜:text=Pengertian%20Display,
antara%20dua%20lapisan%20kaca%20konduktif

20
BAB 6
LAMPIRAN
6.1 Lampiran
6.1.1 Kode Program Arduino

Adapun kode program yang digunakan pada praktikum Timbangan Digital adalah sebagai
berikut.

Kode Program 1: Kode Program Kalibrasi Sensor Load Cell dan Modul HX711
1
2 /*
3
--------------------------------------------------------------------------------

4 HX711_ADC
5 Arduino library for HX711 24-Bit Analog-to-Digital Converter for
Weight Scales
6 Olav Kallhovd sept2017
7
--------------------------------------------------------------------------------

8 */
9
10 /*
11 This example file shows how to calibrate the load cell and optionally
store the calibration
12 value in EEPROM, and also how to change the value manually.
13 The result value can then later be included in your project sketch or
fetched from EEPROM.
14
15 To implement calibration in your project sketch the simplified
procedure is as follow:
16 LoadCell.tare();
17 //place known mass
18 LoadCell.refreshDataSet();
19 float newCalibrationValue = LoadCell.getNewCalibration(known_mass)
;
20 */
21
22 #include <HX711_ADC.h>
23 #if defined(ESP8266)|| defined(ESP32) || defined(AVR)
24 #include <EEPROM.h>
25 #endif
26

21
27 //pins:
28 const int HX711_dout = 4; //mcu > HX711 dout pin
29 const int HX711_sck = 5; //mcu > HX711 sck pin
30
31 //HX711 constructor:
32 HX711_ADC LoadCell(HX711_dout, HX711_sck);
33
34 const int calVal_eepromAdress = 0;
35 unsigned long t = 0;
36
37 void setup() {
38 Serial.begin(57600); delay(10);
39 Serial.println();
40 Serial.println("Starting...");
41
42 LoadCell.begin();
43 //LoadCell.setReverseOutput(); //uncomment to turn a negative output
value to positive
44 unsigned long stabilizingtime = 2000; // preciscion right after power-
up can be improved by adding a few seconds of stabilizing time
45 boolean _tare = true; //set this to false if you don't want tare to be
performed in the next step
46 LoadCell.start(stabilizingtime, _tare);
47 if (LoadCell.getTareTimeoutFlag() || LoadCell.getSignalTimeoutFlag()) {
48 Serial.println("Timeout, check MCU>HX711 wiring and pin designations
");
49 while (1);
50 }
51 else {
52 LoadCell.setCalFactor(1.0); // user set calibration value (float),
initial value 1.0 may be used for this sketch
53 Serial.println("Startup is complete");
54 }
55 while (!LoadCell.update());
56 calibrate(); //start calibration procedure
57 }
58
59 void loop() {
60 static boolean newDataReady = 0;
61 const int serialPrintInterval = 0; //increase value to slow down serial
print activity
62
63 // check for new data/start next conversion:
64 if (LoadCell.update()) newDataReady = true;
65
66 // get smoothed value from the dataset:
67 if (newDataReady) {
68 if (millis() > t + serialPrintInterval) {
69 float i = LoadCell.getData();

22
70 Serial.print("Load_cell output val: ");
71 Serial.println(i);
72 newDataReady = 0;
73 t = millis();
74 }
75 }
76
77 // receive command from serial terminal
78 if (Serial.available() > 0) {
79 char inByte = Serial.read();
80 if (inByte == 't') LoadCell.tareNoDelay(); //tare
81 else if (inByte == 'r') calibrate(); //calibrate
82 else if (inByte == 'c') changeSavedCalFactor(); //edit calibration
value manually
83 }
84
85 // check if last tare operation is complete
86 if (LoadCell.getTareStatus() == true) {
87 Serial.println("Tare complete");
88 }
89
90 }
91
92 void calibrate() {
93 Serial.println("***");
94 Serial.println("Start calibration:");
95 Serial.println("Place the load cell an a level stable surface.");
96 Serial.println("Remove any load applied to the load cell.");
97 Serial.println("Send 't' from serial monitor to set the tare offset.");
98
99 boolean _resume = false;
100 while (_resume == false) {
101 LoadCell.update();
102 if (Serial.available() > 0) {
103 if (Serial.available() > 0) {
104 char inByte = Serial.read();
105 if (inByte == 't') LoadCell.tareNoDelay();
106 }
107 }
108 if (LoadCell.getTareStatus() == true) {
109 Serial.println("Tare complete");
110 _resume = true;
111 }
112 }
113
114 Serial.println("Now, place your known mass on the loadcell.");
115 Serial.println("Then send the weight of this mass (i.e. 100.0) from
serial monitor.");
116

23
117 float known_mass = 0;
118 _resume = false;
119 while (_resume == false) {
120 LoadCell.update();
121 if (Serial.available() > 0) {
122 known_mass = Serial.parseFloat();
123 if (known_mass != 0) {
124 Serial.print("Known mass is: ");
125 Serial.println(known_mass);
126 _resume = true;
127 }
128 }
129 }
130
131 LoadCell.refreshDataSet(); //refresh the dataset to be sure that the
known mass is measured correct
132 float newCalibrationValue = LoadCell.getNewCalibration(known_mass); //
get the new calibration value
133
134 Serial.print("New calibration value has been set to: ");
135 Serial.print(newCalibrationValue);
136 Serial.println(", use this as calibration value (calFactor) in your
project sketch.");
137 Serial.print("Save this value to EEPROM adress ");
138 Serial.print(calVal_eepromAdress);
139 Serial.println("? y/n");
140
141 _resume = false;
142 while (_resume == false) {
143 if (Serial.available() > 0) {
144 char inByte = Serial.read();
145 if (inByte == 'y') {
146 #if defined(ESP8266)|| defined(ESP32)
147 EEPROM.begin(512);
148 #endif
149 EEPROM.put(calVal_eepromAdress, newCalibrationValue);
150 #if defined(ESP8266)|| defined(ESP32)
151 EEPROM.commit();
152 #endif
153 EEPROM.get(calVal_eepromAdress, newCalibrationValue);
154 Serial.print("Value ");
155 Serial.print(newCalibrationValue);
156 Serial.print(" saved to EEPROM address: ");
157 Serial.println(calVal_eepromAdress);
158 _resume = true;
159
160 }
161 else if (inByte == 'n') {
162 Serial.println("Value not saved to EEPROM");

24
163 _resume = true;
164 }
165 }
166 }
167
168 Serial.println("End calibration");
169 Serial.println("***");
170 Serial.println("To re-calibrate, send 'r' from serial monitor.");
171 Serial.println("For manual edit of the calibration value, send 'c' from
serial monitor.");
172 Serial.println("***");
173 }
174
175 void changeSavedCalFactor() {
176 float oldCalibrationValue = LoadCell.getCalFactor();
177 boolean _resume = false;
178 Serial.println("***");
179 Serial.print("Current value is: ");
180 Serial.println(oldCalibrationValue);
181 Serial.println("Now, send the new value from serial monitor, i.e.
696.0");
182 float newCalibrationValue;
183 while (_resume == false) {
184 if (Serial.available() > 0) {
185 newCalibrationValue = Serial.parseFloat();
186 if (newCalibrationValue != 0) {
187 Serial.print("New calibration value is: ");
188 Serial.println(newCalibrationValue);
189 LoadCell.setCalFactor(newCalibrationValue);
190 _resume = true;
191 }
192 }
193 }
194 _resume = false;
195 Serial.print("Save this value to EEPROM adress ");
196 Serial.print(calVal_eepromAdress);
197 Serial.println("? y/n");
198 while (_resume == false) {
199 if (Serial.available() > 0) {
200 char inByte = Serial.read();
201 if (inByte == 'y') {
202 #if defined(ESP8266)|| defined(ESP32)
203 EEPROM.begin(512);
204 #endif
205 EEPROM.put(calVal_eepromAdress, newCalibrationValue);
206 #if defined(ESP8266)|| defined(ESP32)
207 EEPROM.commit();
208 #endif
209 EEPROM.get(calVal_eepromAdress, newCalibrationValue);

25
210 Serial.print("Value ");
211 Serial.print(newCalibrationValue);
212 Serial.print(" saved to EEPROM address: ");
213 Serial.println(calVal_eepromAdress);
214 _resume = true;
215 }
216 else if (inByte == 'n') {
217 Serial.println("Value not saved to EEPROM");
218 _resume = true;
219 }
220 }
221 }
222 Serial.println("End change calibration value");
223 Serial.println("***");
224 }

Kode Program 2: Kode Program Timbangan Digital


1
2 #include <LiquidCrystal_I2C.h>
3 #include <EEPROM.h>
4 #include <HX711_ADC.h>
5
6 LiquidCrystal_I2C lcd (0x27,16,2);
7 const int HX711_dout = 4;
8 const int HX711_sck = 5;
9 HX711_ADC LoadCell (HX711_dout, HX711_sck);
10 const int calval_eepromAdress = 0;
11 long t;
12
13
14 void setup() {
15 Serial.begin(9600);
16
17 lcd.begin(16,2);
18 pinMode (HX711_dout, INPUT);
19
20 delay(10);
21
22 Serial.println();
23 Serial.println("Memulai...");
24
25 lcd.begin(16,2);
26 LoadCell.begin();
27 lcd.setCursor(0,0);
28 lcd.print("Brt: ");
29 lcd.setCursor (12,0);
30 lcd.print("0");
31 lcd.setCursor(14,0);

26
32 lcd.print("gr");
33
34 float calibrationValue;
35 calibrationValue = 100.0;
36 EEPROM.get(calval_eepromAdress, calibrationValue);
37 long stabilizingtime = 2000;
38 boolean _tare = true;
39 LoadCell.start(stabilizingtime, _tare);
40
41 if (LoadCell.getTareTimeoutFlag()) {
42 Serial.println("Timeout, cek kabel MCU>HX711 pastikan sudah tepat");
43 while (1);
44 }
45
46 else {
47 LoadCell.setCalFactor(calibrationValue);
48 Serial.println("Startup selesai");
49 }
50 }
51
52
53 void loop(){
54 static boolean newDataReady = 0;
55 const int serialPrintInterval = 0;
56 if (LoadCell.update()) newDataReady = true;
57 if (newDataReady) {
58 if (millis() > t + serialPrintInterval) {
59 int i= LoadCell.getData();
60 if (1<0){
61 i=0;
62 }
63 tampil(i);
64 newDataReady = 0;
65 t = millis();
66 }
67 }
68
69 if (Serial.available() > 0) {
70 float i;
71 char inByte = Serial.read();
72 if (inByte == 't') LoadCell.tareNoDelay();
73 }
74 if (LoadCell.getTareStatus() == true){
75 Serial.println("Selesai");
76 }
77 }
78
79 void tampil (int j){
80 lcd.setCursor(4,0);

27
81 lcd.print(" ");
82
83 if(j<10) {
84 lcd.setCursor (12,0);
85
86 }else if (j<100 && j>=10) {
87 lcd.setCursor(11,0);
88
89 }else if (j<1000 && j>=100) {
90 lcd.setCursor(10,0);
91
92 }else if (j<10000 && j>=1000) {
93 lcd.setCursor(9,0);
94
95 }else if (j<100000 && j>=10000) {
96 lcd.setCursor(8,0);
97
98 }else if (j<1000000 && j>=100000) {
99 lcd.setCursor(7,0);
100
101 }else if (j<10000000 && j>=1000000) {
102 lcd.setCursor(6,0);
103
104 }else if (j<100000000 && j>=10000000) {
105 lcd.setCursor(5,0);
106
107 }else{
108 lcd.setCursor(4,0);
109 }
110 lcd.print(j);
111
112 }

28
6.1.2 Dokumentasi Rangkaian

Gambar 6.1: Rangkaian Timbangan Digital

Gambar 6.2: Tampilan Serial Monitor Untuk Kalibrasi Load Cell Sensor dan HX711

29
Gambar 6.3: Timbangan Digital Mengukur Massa Beban 10 gram

30
Gambar 6.4: Timbangan Digital Mengukur Massa Beban 20 gram

31
Gambar 6.5: Timbangan Digital Mengukur Massa Beban 30 gram

32
Gambar 6.6: Timbangan Digital Mengukur Massa Beban 80 gram

33

You might also like