Anda di halaman 1dari 8

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:

1 #include "HX711.h"

2 #include <EEPROM.h>

4 #define alamatKalibrasiM 0

5 #define alamatKalibrasiC 4

7 //pin

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

10 byte modeKalibrasi = 0;
11 uint16_t beratKalibrasi1Tera;

12 uint16_t beratKalibrasi2Tera;

13 long beratKalibrasi1;

14 long beratKalibrasi2;

15

16 long lastMillis;

17

18 void setup() {

19 Serial.begin(9600);

20 Serial.println("Kalibrasi Loadcell");

21 Serial.println("http://www.semesin.com/project/");

22 Serial.println();

23

24 float m,c;

25 EEPROM.get(alamatKalibrasiM, m);

26 EEPROM.get(alamatKalibrasiC, c);

27 scale.power_up();

28 scale.set_scale(m);

29 scale.set_offset(c);

30 scale.power_down();
31

32 lastMillis = millis();

33 }

34

35 void loop() {

36 if(Serial.available())

37 {

38 if(modeKalibrasi == 0)

39 {

40 if(toupper(Serial.read()) == 'K')

41 {

42 Serial.println("Masukkan beban kalibrasi pertama (gram) :");

43 modeKalibrasi = 1;

44 }

45 }

46 else if (modeKalibrasi == 1)

47 {

48 scale.power_up();

49 delay(100);

50 beratKalibrasi1Tera = Serial.parseInt();
51 beratKalibrasi1 = scale.read_average(10);

52 Serial.println("Beban = " + String(beratKalibrasi1Tera) + " gram,


terukur = " + String(beratKalibrasi1) + " unit");
53
Serial.println("Masukkan beban kalibrasi kedua yang lebih besar (gram)
54 :");

55 modeKalibrasi = 2;

56 scale.power_down();

57 }

58 else if (modeKalibrasi == 2)

59 {

60 scale.power_up();

61 delay(100);

62 beratKalibrasi2Tera = Serial.parseInt();

63 beratKalibrasi2 = scale.read_average(10);

64 Serial.println("Beban = " + String(beratKalibrasi2Tera) + " gram,


terukur = " + String(beratKalibrasi2) + " unit");
65

66
float m = 1.0 * (beratKalibrasi2 - beratKalibrasi1) / (
beratKalibrasi2Tera - beratKalibrasi1Tera);
67
float c = beratKalibrasi2 - (1.0 * m * beratKalibrasi2Tera);
68

69
scale.set_scale(m);
70
scale.set_offset(c);
71 EEPROM.put(alamatKalibrasiM, m);

72 EEPROM.put(alamatKalibrasiC, c);

73

74 Serial.print("Skala = ");

75 Serial.println(m);

76 Serial.print("Ofset = ");

77 Serial.println(c);

78

79 scale.power_down();

80 Serial.println("Kalibrasi berhasil.");

81

82 modeKalibrasi = 0;

83 }

84 }

85

86 if(!modeKalibrasi)

87 {

88 if(millis() - lastMillis > 100)

89 {

90 scale.power_up();
91 delay(10);

92 float berat = scale.get_units(10);

93 scale.power_down();

94 Serial.print("Berat : ");

95 Serial.println(berat);

96 lastMillis = millis();

97 }

98 }

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

Anda mungkin juga menyukai