Monitoring Timbangan Berat dan Tinggi Badan 4 LoadCell Arduino
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat mengukur tinggi dan berat badan menggunakan 4 buah loadcell dan amplifier modul HX711 dengan Arduino uno. untuk sensor jarak yang dipakai bisa menggunakan HC-SRF04. untuk lebih jelasnya berikut adalah kodingdan skemanya.
1. Skema 4 Loadcell
2. Program Arduino IDE
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include "HX711.h"
// HX711.DOUT - pin #9
// HX711.PD_SCK - pin #8
#define trigPin 7
#define echoPin 6
int counter = 0; //Variabel penghitung nilai
int aState; //Variabel kondisi
int aLastState; //Variabel kondisi terakhir
HX711 scale(9, 8);
long duration, distance;
float tera = 0;
int berat;
float fix;
int x;
int jarak;
int sp = 30;
int tinggi;
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 = 200 - distance;
berat = scale.get_units(10) * -1;
fix = (berat - 2.1036)/8.978;
if(fix < 0){
fix = 0;
}
lcd.setCursor (0,0);
lcd.print ("W/H= ");
lcd.print (fix);
lcd.print (" / ");
lcd.print (jarak);
lcd.print (" ");
Serial.print(berat);
Serial.print(",");
Serial.println(jarak);
scale.power_down();
delay(100);
scale.power_up();
if (Serial.available() > 0) {
String teststr = Serial.readString();
lcd.setCursor(0,1);
lcd.print(teststr);
}
}
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include "HX711.h"
// HX711.DOUT - pin #9
// HX711.PD_SCK - pin #8
#define trigPin 7
#define echoPin 6
int counter = 0; //Variabel penghitung nilai
int aState; //Variabel kondisi
int aLastState; //Variabel kondisi terakhir
HX711 scale(9, 8);
long duration, distance;
float tera = 0;
int berat;
float fix;
int x;
int jarak;
int sp = 30;
int tinggi;
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 = 200 - distance;
berat = scale.get_units(10) * -1;
fix = (berat - 2.1036)/8.978;
if(fix < 0){
fix = 0;
}
lcd.setCursor (0,0);
lcd.print ("W/H= ");
lcd.print (fix);
lcd.print (" / ");
lcd.print (jarak);
lcd.print (" ");
Serial.print(berat);
Serial.print(",");
Serial.println(jarak);
scale.power_down();
delay(100);
scale.power_up();
if (Serial.available() > 0) {
String teststr = Serial.readString();
lcd.setCursor(0,1);
lcd.print(teststr);
}
}
3. VIDEO HASILNYA
No comments:
Post a Comment