Sensor berat Load cell adalah jenis transduser (sensor) yang digunakan untuk mengukur gaya atau beban.Berikut ini adalah code untuk memprogramnya :
#include <Arduino.h>
#include "HX711.h"
const int pinDT_loadcell = 16;
const int pinSCK_loadcell = 4;
HX711 scale_loadcell;
float baca_loadcell() {
return scale_loadcell.get_units(1);
}
void setup()
{
Serial.begin(9600);
scale_loadcell.begin(pinDT_loadcell, pinSCK_loadcell);
scale_loadcell.set_scale(2280.f);
scale_loadcell.tare();
}
void loop(){
float loadcell = baca_loadcell();
Serial.println("Berat: " + (String)loadcell + " gram");
}
Berikut ini adalah penjelasan dari kode di atas :
1. Inklusi Library dan Deklarasi Objek
C++
#<strong>include</strong> <Arduino.h>
#<strong>include</strong> "HX711.h"
const int pinDT_loadcell = 16;
const int pinSCK_loadcell = 4;
HX711 scale_loadcell;
#include <Arduino.h>: Ini adalah library standar yang wajib ada di setiap program Arduino.#include "HX711.h": Ini adalah library khusus yang sangat penting untuk berkomunikasi dengan modul HX711. Modul HX711 berfungsi sebagai Analog-to-Digital Converter (ADC) yang sangat presisi, khusus dirancang untuk membaca perubahan tegangan yang sangat kecil dari load cell.const int pinDT_loadcell = 16;: Mendeklarasikan sebuah konstanta integer bernamapinDT_loadcelldan menetapkannya ke pin digital 16. Pin ini adalah pin Data (DT) dari modul HX711, yang akan terhubung ke pin digital 16 pada mikrokontroler Anda (misalnya ESP32, karena pin 16 dan 4 umum pada ESP32, bukan Arduino Uno standar).const int pinSCK_loadcell = 4;: Mendeklarasikan konstanta integerpinSCK_loadcelldan menetapkannya ke pin digital 4. Pin ini adalah pin Clock (SCK) dari modul HX711.HX711 scale_loadcell;: Ini membuat sebuah objek (instance) dari kelasHX711yang diberi namascale_loadcell. Objek inilah yang akan kita gunakan untuk memanggil semua fungsi yang berhubungan dengan modul HX711 dan load cell.
2. Fungsi baca_loadcell()
C++
float baca_loadcell() {
return scale_loadcell.get_units(1);
}
float baca_loadcell(): Ini adalah fungsi kustom yang Anda buat untuk membaca berat dari load cell. Fungsi ini akan mengembalikan nilai berat dalam format floating-point.return scale_loadcell.get_units(1);: Ini adalah baris kunci dalam fungsi ini.scale_loadcell.get_units(1): Memanggil metodeget_units()dari objekscale_loadcell. Metode ini akan membaca nilai mentah dari HX711, mengaplikasikan faktor kalibrasi (yang akan kita atur disetup), dan mengembalikan nilai berat dalam satuan yang telah dikalibrasi. Argumen1berarti fungsi akan mengambil satu pembacaan dan mengembalikan nilainya. Anda bisa menggunakan angka yang lebih besar (misalnya10) untuk merata-ratakan beberapa pembacaan guna mendapatkan hasil yang lebih stabil.
3. Fungsi setup()
C++
void setup()
{
Serial.begin(9600);
scale_loadcell.begin(pinDT_loadcell, pinSCK_loadcell);
scale_loadcell.set_scale(2280.f);
scale_loadcell.tare();
}
Serial.begin(9600);: Menginisialisasi komunikasi serial pada baud rate 9600. Ini memungkinkan Anda untuk melihat data berat yang dibaca di Serial Monitor.scale_loadcell.begin(pinDT_loadcell, pinSCK_loadcell);: Ini adalah langkah inisialisasi modul HX711. Fungsi ini memberi tahu library pin digital mana yang terhubung ke pin DT dan SCK pada modul HX711 Anda.scale_loadcell.set_scale(2280.f);: Ini adalah bagian kalibrasi yang sangat penting.set_scale(): Fungsi ini mengatur “faktor skala” atau “faktor kalibrasi” yang digunakan HX711 untuk mengubah nilai mentah menjadi satuan berat yang bermakna (misalnya, gram, kilogram).- Nilai
2280.fadalah contoh faktor kalibrasi. Nilai ini harus ditentukan melalui proses kalibrasi aktual dengan load cell Anda. Untuk mencari nilai ini, Anda biasanya akan:- Memulai tanpa kalibrasi (atau dengan nilai 1.0f).
- Mencetak nilai mentah.
- Meletakkan beban yang diketahui (misalnya 100 gram) di atas load cell.
- Mencatat selisih nilai mentah dari nilai
tare()dengan nilai mentah saat ada beban. - Faktor skala = (nilai mentah beban diketahui) / (berat beban diketahui).
- Misalnya, jika beban 100 gram menghasilkan 228000 unit mentah, maka faktor skala adalah 228000/100=2280. (Angka
fsetelah 2280 menunjukkan bahwa ini adalah angka floating-point).
scale_loadcell.tare();: Fungsi ini melakukan tare (penimbangan nol) pada load cell. Ini berarti sensor akan mengabaikan berat benda yang ada di atasnya saat ini (misalnya, berat wadah kosong) dan mengaturnya sebagai “nol”. Jadi, semua pembacaan berikutnya akan relatif terhadap titik nol ini. Penting untuk memanggil fungsi ini saat load cell kosong.
4. Fungsi loop()
C++
void loop(){
float loadcell = baca_loadcell();
Serial.println("Berat: " + (String)loadcell + " gram");
}
float loadcell = baca_loadcell();: Memanggil fungsibaca_loadcell()yang telah kita buat untuk mendapatkan nilai berat yang sudah dikalibrasi, dan menyimpannya dalam variabel floating-pointloadcell.Serial.println("Berat: " + (String)loadcell + " gram");: Mencetak nilai berat ke Serial Monitor."Berat: "adalah teks literal.(String)loadcell: Mengkonversi nilai floating-point dariloadcellmenjadi tipe dataString, sehingga bisa digabungkan dengan teks." gram": Teks literal untuk satuan berat.Serial.println(): Mencetak seluruh string dan kemudian menambahkan baris baru, sehingga setiap pembacaan akan muncul di baris terpisah di Serial Monitor.
Cara Kerja Keseluruhan
Secara keseluruhan, kode ini akan melakukan hal berikut:
- Persiapan (
setup): Mengaktifkan komunikasi serial, menginisialisasi modul HX711 dengan pin yang benar, mengatur faktor kalibrasi yang telah ditentukan, dan melakukan penimbangan nol (tare) pada load cell. - Pengulangan (
loop): Terus-menerus membaca berat dari load cell menggunakan faktor kalibrasi yang sudah diatur, dan kemudian mencetak nilai berat tersebut (dalam gram) ke Serial Monitor.
Penting:
- Kalibrasi adalah Kunci: Nilai
2280.fhanyalah contoh. Anda wajib mengkalibrasi load cell Anda sendiri untuk mendapatkan pembacaan berat yang akurat. Proses kalibrasi melibatkan menempatkan beban yang diketahui (misalnya 100 gram, 500 gram) dan menyesuaikan faktor skala hingga HX711 menghasilkan nilai yang benar. - Koneksi: Pastikan Anda menghubungkan pin DT dan SCK dari modul HX711 ke pin yang benar di mikrokontroler Anda (pin 16 dan 4 seperti yang didefinisikan dalam kode). Pin VCC dan GND modul HX711 harus dihubungkan ke sumber daya yang sesuai.
untuk diskusi bisa kontak dibawah ini :

Sosial media :





