Timbangan digital merupakan alat untuk mengetahui berat suatu benda dengan tampilan digital misalnya berupa 7segment maupun LCD character. Untuk kali akan dibahas tentang timbangan digital yang dibuat menggunakan microcontroller arduino dengan sensor load cell.
Penjelasan Singkat
Tipe sensor berat yang banyak digunakan yaitu LoadCell HX711. Biasanya pada saat pembelian sensor ini disertakan dengan module amplifier yang dapat diakses menggunakan arduino.
Modul HX711 menggunakan 24 chip konverter A / D dengan tingkat kepresisian yang tinggi. Dirancang khusus untuk desain perangkat elektronik dengan presisi tinggi, dengan dua saluran input analog dan terintegrasi internal 128 kali gain amplifier yang programmable.
Sirkuit input dapat dikonfigurasikan guna menyediakan sarana untuk tekanan tipe bridge seperti halnya tekanan, mode sensor penimbangan, dan biaya produksi yang rendah sehingga dapat dijangkau oleh semua orang.
Spesifikasi dari Module amplifier HX711 :
- Perbedaan tegangan input : ± 40 mV
- Tingkat keakurasian atau resolusi data : 24 bit
- Frekuensi : 10/80 Hz
- Tegangan kerja input : 2.7 Vdc – 5 Vdc
- Arus kerja : <10 mA
- Dimensi module : 24x16mm
- Komunikasi data dengan microcontroller : two wire interface (Clock and Data)
Sensor Load cell berbentuk batang lurus terbuat dari aluminium dan kali yang akan digunakan mampu membaca kapasitas 5kg. Arti dari kode warna pada kabel pada loadcell :
- Merah = Excitation +
- Hijau = Signal +
- Hitam = Excitation –
- Putih = Signal –
Selain itu, sel-sel beban ini menawarkan peringkat perlindungan IP65 dan memiliki dua lubang ukuran M5 untuk keperluan pemasangan
Cara memrogram dan menjadikan timbangan digital
Hal yang pertama perlu dipersiapakan yaitu bahan – bahan nya antara lain :
- Arduino Nano
- Sensor LoadCell 5 Kg dan Module Amplifier HX711
- LCD 16×2 dan driver lcd pcf8574
- Kabel jumper
- 3d Print support untuk sensor loadcell
Alasan untuk menggunakan arduino nano karena mudah dalam pemrograman dan masih banyak orang menggunakan ini sebagai kontroler berbagai proyek elektronika.
Wiring Schematic
Untuk 3d Print support sensor loadcell, dapat mengambil dari web thing*iverse seperti yang saya lakukan ini. Contohnya seperti ini :
File 3d print biasanya berekstensi .stl, dan kalian dapat mengunduhnya di link ini
Untuk mencetaknya kalian dapat mengunakan jasa 3dprint seperti yang pernah saya lakukan dan saya cari dengan harga yang murah dengan kualitas oke.
Harga yang saya dapatkan yaitu 1000 rupiah/gram dan itu dapat kalian cari pada toko*pedia dengan search nama toko seperti gambar dibawah dan ini rekomendasi saya.
Instalasi Library HX711 di arduino IDE
Langkah – langkah untuk installing library HX711 dan driver PCF8574 dengan catatan terhubung internet :
- Buka Software arduino uno IDE
- Pilih dan klik menu sketch -> include libraries -> manage libraries
- Ketikan “Avia_HX711” pada kolom search
- Pilih libraries HX711 Arduino Library by Bogdan Necula, Andreas Motl
- Klik install
- Selanjutnya ketikan “PCF8574“
- Pilih “LiquidCrystal_PCF8574 by Matthias Hertel“
- Klik install dan closed
Untuk komunikasi LCD nya dapat dicek pada artikel sebelumnya
[irp posts=”4691″ name=”Cara mengakses sensor AHT10 Sensor Suhu dan kelembaban”]
Kode Programming Timbangan Digital
Pertama harus mendapatkan nilai Kalibrasi faktor yang digunakan untuk program utama, karena tiap loadcell memiliki toleransi sendiri.
//www.nyebarilmu.com //2020 //program kalibrasi timbangan digital dengan loadcell 5kg dan HX711 /* Tekan atau a / z untuk menyesuaikan calibration_factor hingga bacaan keluaran sesuai dengan berat yang diketahui Arduino pin 2 -> HX711 CLK Arduino pin 3 -> HX711 DOUT */ #include "HX711.h" HX711 scale; float calibration_factor = -400; //Nilai awal perkiraan float units; float ounces; void setup() { Serial.begin(9600); Serial.println("HX711 Kalibrasi"); Serial.println("Jangan ada benda apapun diatas load cell"); //ini penting Serial.println("Kemudian letakan benda"); //misalnya batu baterai yang sudah diketahui beratnya Serial.println("Tekan + atau a untuk meningkatkan faktor kalibrasi"); Serial.println("Tekan - atau z untuk mengurangi faktor kalibrasi"); scale.begin(3, 2); scale.set_scale(); scale.tare(); long zero_factor = scale.read_average(); Serial.print("Zero factor: "); Serial.println(zero_factor); } void loop() { scale.set_scale(calibration_factor); Serial.print("Pembacaan : "); units = scale.get_units(), 10; if (units < 0) { units = 0.00; } ounces = units * 0.035274; Serial.print(units); Serial.print(" grams"); Serial.print(" calibration_factor: "); Serial.print(calibration_factor); Serial.println(); if(Serial.available()) { char temp = Serial.read(); if(temp == '+' || temp == 'a') calibration_factor += 1; else if(temp == '-' || temp == 'z') calibration_factor -= 1; } }
Hasil dari program diatas :
Dan dari program diatas didapat nilai yang mendekati yaitu -375.00 untuk calibration factor.
Program utama
[sociallocker id=”1344″]
#include "HX711.h" #include <LiquidCrystal_PCF8574.h> LiquidCrystal_PCF8574 lcd(0x27); HX711 scale; float kalibrasi_faktor = -375; float benda; float berat; void setup() { Serial.begin(9600); lcd.begin(16, 2); lcd.setBacklight(255); lcd.setCursor(0,0); lcd.print("Timbangan digital"); lcd.setCursor(0,1); lcd.print("ala nyebarilmu.com"); delay(2000); scale.set_scale(kalibrasi_faktor); scale.tare(); Serial.println("Baca berat :"); lcd.clear(); } void loop() { lcd.setCursor(0,0); lcd.print("Berat benda :"); benda = scale.get_units(),10; if (benda < 0) //jika benda terbaca kurang dari nol maka tertampil 0.00 gr { benda = 0.00; } berat = benda * 0.035274; lcd.print(berat); lcd.print(" gram"); delay(1000); }
[/sociallocker]
Silahkan mencoba, salam nyebarilmu.com!