Kalibrasi sensor loadcell interaktif dengan Serial USB TTL Arduino

Sebelum digunakan, timbangan wajib ditera atau di kalibrasi. Proses kalibrasi timbangan dilakukan dengan membandingkan hasil terukurnya dengan berat diketahui sebuah beban pengkalibrasinya.

Loadcell digunakan sebagai sensor berat digital. Proses kalibrasi loadcell dengan arduino menggunakan metode dua beban menggunakan formula :

cara mengkalibrasi loadcell dengan metode dua beban ini menghasilkan dua variabel yaitu skala dan ofset.

Timbangan digital dengan sensor loadcell memiliki karakteristik akurasi berikut :

  1. Skala
  2. Ofset
  3. Linearitas
  4. Diferensial linearitas
  5. Kuantisasi
  6. Transisi akurasi

Setiap loadcell memiliki karakteristik yang berbeda-beda. cara memperoleh nilai skala dan offset yang baik adalah dengan menetapkan nilai beban pengkalibrasi antara 25% – 75% dari kapasitas loadcell.

skema / rangkaian kalibrasi loadcell arduino:

Setting kalibrasi ini akan disimpan di EEPROM, dan akan diambil kembali saat perangkat mulai dihidupkan.

koding /program kalibrasi loadcell menggunakan arduino:

#include "HX711.h"
#include <EEPROM.h>

#define alamatKalibrasiM 0
#define alamatKalibrasiC 4

//pin
HX711 scale(A0, A1); // (DT, SCK)

byte modeKalibrasi = 0;
uint16_t beratKalibrasi1Tera;
uint16_t beratKalibrasi2Tera;
long beratKalibrasi1;
long beratKalibrasi2;

long lastMillis;

void setup() {
  Serial.begin(9600);
  Serial.println("Kalibrasi Loadcell");
  Serial.println("https://www.project.semesin.com/");
  Serial.println();
  
  float m,c;
  EEPROM.get(alamatKalibrasiM, m);
  EEPROM.get(alamatKalibrasiC, c);
  scale.power_up();
  scale.set_scale(m);
  scale.set_offset(c);
  scale.power_down();

  lastMillis = millis();
}

void loop() {
  if(Serial.available())
  {
    if(modeKalibrasi == 0)
    {
      if(toupper(Serial.read()) == 'K')
      {
        Serial.println("Masukkan beban kalibrasi pertama (gram) :");
        modeKalibrasi = 1;
      }
    }
    else if (modeKalibrasi == 1)
    {
      scale.power_up();
      delay(100);
      beratKalibrasi1Tera = Serial.parseInt();
      beratKalibrasi1 = scale.read_average(10);
      Serial.println("Beban = " + String(beratKalibrasi1Tera) + " gram, terukur = " + String(beratKalibrasi1) + " unit");
      Serial.println("Masukkan beban kalibrasi kedua yang lebih besar (gram) :");
      modeKalibrasi = 2;
      scale.power_down();
    }
    else if (modeKalibrasi == 2)
    {
      scale.power_up();
      delay(100);
      beratKalibrasi2Tera = Serial.parseInt();
      beratKalibrasi2 = scale.read_average(10);
      Serial.println("Beban = " + String(beratKalibrasi2Tera) + " gram, terukur = " + String(beratKalibrasi2) + " unit");
      
      float m = 1.0 * (beratKalibrasi2 - beratKalibrasi1) / ( beratKalibrasi2Tera - beratKalibrasi1Tera);
      float c = beratKalibrasi2 - (1.0 * m * beratKalibrasi2Tera);

      scale.set_scale(m);
      scale.set_offset(c);
      EEPROM.put(alamatKalibrasiM, m);
      EEPROM.put(alamatKalibrasiC, c);

      Serial.print("Skala = ");
      Serial.println(m);
      Serial.print("Ofset = ");
      Serial.println(c);

      scale.power_down();
      Serial.println("Kalibrasi berhasil.");
      
      modeKalibrasi = 0;
    }
  }

  if(!modeKalibrasi)
  {
    if(millis() - lastMillis > 100)
    {
      scale.power_up();
      delay(10);
      float berat = scale.get_units(10);
      scale.power_down();
      Serial.print("Berat : ");
      Serial.println(berat);
      lastMillis = millis();
    }
  }
}

Cara kalibrasi loadcell melalui serial monitor:

Prosedur kalibrasi loadcell dengan arduino melalui serial monitor:

  1. Input ‘K’ atau ‘k’ untuk masuk mode kalibrasi.
  2. Naikkan beban pengkalibrasi pertama
  3. Inputkan berat tera beban pengkalibrasi pertama – Enter
  4. Naikkan beban pengkalibrasi kedua
  5. Inputkan berat tera beban pengkalibrasi kedua – Enter
  6. Selesai

Library : HX711.zip

33 thoughts on “Kalibrasi sensor loadcell interaktif dengan Serial USB TTL Arduino

  1. bang gua kalibrasi loadcell 10kg pake beban hp sama powerbank yang beratnya ga sampe 25%-75%. kok default (posisi tanpa beban) nya 20 gram ya, ga sampe 0? tolong pencerahannya

  2. bang mau tanya klo load cell di sambungin bukan di arduino, melainkan ke nodemcu itu gimana ya, mohon jawabannya terimakasih

  3. bang saya melakukan pengujian tegangan pada hx711, seharusnya nilai tegangan akan berubah jika beratnya berbeda, tp punya saya tidak berubah gimana yah ?

    1. kemungkinan belum kalibrasi, lakukan kalibrasi sesuai petunjuk.

      inf muncul jika saya coba

      scale.set_scale(0);

      hasilnya

      HX711 Demo
      Before setting up the scale:
      read: -91915
      read average: -91133
      get value: -91654.00
      get units: inf
      After setting up the scale:
      read: -92335
      read average: -91487
      get value: 142.00
      get units: inf
      Readings:
      one reading: inf | average: inf
      one reading: inf | average: inf
      one reading: inf | average: inf
      one reading: inf | average: inf
      one reading: inf | average: inf
      one reading: inf | average: inf
      one reading: inf | average: inf

      jadi kemungkinannya:
      1. scale di set 0, jika menggunakan sketch ini, lakukan kalibrasi dengan benar sesuai petunjuk, atau solusinya ganti dengan nilai kalibrasi nya (nilai kalibrasi != 0)
      2. modul hx711 tidak mengeluarkan data yang benar (cek rangkaian dan kemungkinan terbalik)

  4. tanya bang gimana caranya supaya hasil pembacaan loadcell dihitung rata-ratanya dulu baru ditampilkan hasil pembacaan nilainya, supaya nilainya gak gampang ubah ubah..

  5. Bang saya kan menggunakan 4 loadcell, dan nanti hasil pembacaannya rata2 dari keempat loadcell itu. Gimana ya bang cara kalibrasi langsung 4 loadcell. Mohon pencerahannya🙏🏻 . Soalnya saya sudah coba kalibrasi 1 1 loadcell hasilnya bagus tapi setelah digabung 4 hasilnya ga bagus

Leave a Reply

Your email address will not be published. Required fields are marked *