MEMBUAT TIMBANGAN DIGITAL DAN PENGUKUR TINGGI / PANJANG BADAN ATAU BENDA
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang digunakan untuk mengukur berat badan bayi atau lainnya dengan menggunakan mikrokontroller arduino. Alat ini menggunakan loadcell sehingga membutuhkan amplifier untuk merubah nilai tegangan menjadi data digital sehingga mudah untuk dibaca arduino, amplifier yang dipakai yaitu modul hx711 yang mana memiliki harga yang terjangkau. untuk lebih jelasnya berikut adalah komponen dan kodingnya.
a. Arduino Uno
b. Timbangan loadcell dan HX711
c. Program Arduino IDE
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include "HX711.h"
// HX711.DOUT - pin #4
// HX711.PD_SCK - pin #5
#define trigPin 6
#define echoPin 7
HX711 scale(4, 5);
long duration, distance;
float tera = 0;
int berat;
float fix;
int x;
int jarak;
int sp = 30;
void setup() {
Serial.begin(9600);
lcd.begin();
lcd.clear();
lcd.noCursor();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
scale.set_scale(2280.f); // this value is obtained by calibrating the scale with known weights; see the README for details
scale.tare(); // reset the scale to 0
lcd.setCursor (0,0);
lcd.print ("LOADING... ");
delay(5000);
lcd.clear();
}
void loop() {
digitalWrite(trigPin, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
jarak = sp - distance;
berat = scale.get_units(10) * -1;
fix = (berat - 0.4233)/0.1586;
if (fix < 0 ) {
fix = 0;
}
if(jarak < 0){
jarak = 0;
}
lcd.setCursor (0,0);
lcd.print ("Berat= ");
lcd.print (fix);
lcd.print (" gr ");
lcd.setCursor (0,1);
lcd.print ("Tinggi= ");
lcd.print (distance);
lcd.print (" cm ");
scale.power_down();
delay(200);
scale.power_up();
}
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include "HX711.h"
// HX711.DOUT - pin #4
// HX711.PD_SCK - pin #5
#define trigPin 6
#define echoPin 7
HX711 scale(4, 5);
long duration, distance;
float tera = 0;
int berat;
float fix;
int x;
int jarak;
int sp = 30;
void setup() {
Serial.begin(9600);
lcd.begin();
lcd.clear();
lcd.noCursor();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
scale.set_scale(2280.f); // this value is obtained by calibrating the scale with known weights; see the README for details
scale.tare(); // reset the scale to 0
lcd.setCursor (0,0);
lcd.print ("LOADING... ");
delay(5000);
lcd.clear();
}
void loop() {
digitalWrite(trigPin, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
jarak = sp - distance;
berat = scale.get_units(10) * -1;
fix = (berat - 0.4233)/0.1586;
if (fix < 0 ) {
fix = 0;
}
if(jarak < 0){
jarak = 0;
}
lcd.setCursor (0,0);
lcd.print ("Berat= ");
lcd.print (fix);
lcd.print (" gr ");
lcd.setCursor (0,1);
lcd.print ("Tinggi= ");
lcd.print (distance);
lcd.print (" cm ");
scale.power_down();
delay(200);
scale.power_up();
}
d. Hasil Kalibrasi
e. VIDEO HASILNYA
No comments:
Post a Comment