Implementasi Sensor Berat Pada Lift barang sederhana dengan Arduino dan Visual Basic

video implementasi sensor load cell 5 kg
Judul diatas adalah salah satu projek yang sudah saya selesaikan , cukup simple hanya menggunakan sensor berat load cell , limit switch , servo dan driver motor . Dan data dapat dimonitoring dan dikontrol lewat visual basic melalui serial komunikasi serta dimasukkan ke database.
Berikut ini adalah program sederhananya
sudah ada tambahan bisa diotomasikan seluruhnya dan juga bisa dimanualkan serta dikendalikan lewat visual basic – net


Berikut ini adalah library dari penguat load cell hx711

https://www.dropbox.com/s/spwcaefpmpmvvrh/Q2-HX711-Arduino-Library-master.zip?dl=0

#include <Q2HX711.h>

#include <Servo.h>

Servo myservo;

const byte hx711_data_pin = A2;
const byte hx711_clock_pin = A3;
float nilai;
float positif;
float hasil;

const int pwmbawah = 11 ;
const int enA1 = 12 ;
const int enA2 = 13 ;

const int pwmatas = 10 ;
const int enB1 = 9 ;
const int enB2 = 8 ;

const int up = 7 ;
const int down = 6;
int bacaup = 0;
int bacadown = 0;

int coba = 0 ;
int coba1 = 0 ;

int tunggu = 0 ;

Q2HX711 hx711(hx711_data_pin, hx711_clock_pin);

String inputString = “”; // a string to hold incoming data
boolean stringComplete = false;
boolean req =false;
void setup() {
// put your setup code here, to run once:
inputString.reserve(200);

pinMode(pwmbawah , OUTPUT);
pinMode(pwmatas , OUTPUT);

pinMode(enA1 , OUTPUT);
pinMode(enA2 , OUTPUT);
pinMode(enB1 , OUTPUT);
pinMode(enB2 , OUTPUT);

digitalWrite(enA1 , LOW);
digitalWrite(enA2 , LOW);
digitalWrite(enB1 , LOW);
digitalWrite(enB2 , LOW);

Serial.begin(9600);
myservo.attach(2);

pinMode(up , INPUT);
pinMode(down , INPUT);

digitalWrite(up , HIGH);
digitalWrite(down , HIGH);

analogWrite(pwmbawah , 0);
analogWrite(pwmatas , 0);
}

void loop() {

if (stringComplete)
{
//Serial.println(inputString);
if (inputString[0]==’a’)
{
req= true;
}
else if(inputString[0]==’b’)
{
req=false;
}
//Untuk Aktuator Kipas 1 dan Kipas 2
else if(inputString[0]==’c’)
{
analogWrite(pwmatas , 255); //Motor Atas
digitalWrite(enB1 , HIGH);
digitalWrite(enB2 , LOW);
}
else if(inputString[0]==’d’)
{
analogWrite(pwmatas , 0); //Motor Atas
digitalWrite(enB1 , LOW);
digitalWrite(enB2 , LOW);
}
else if(inputString[0]==’e’)
{
myservo.write(65);
delay(1000);
myservo.write(90);
}
// clear the string:
inputString = “”;
stringComplete = false;
}

//Baca Sensor
bacaup = digitalRead(up);
bacadown = digitalRead(down);

nilai=(((hx711.read()/100.0)-84034.5)/4.328);
positif=(nilai*(-2));
hasil=(positif+nilai);

hasil = hasil – 2 ;

/*
analogWrite(pwmatas , 255); //Motor Atas
digitalWrite(enB1 , HIGH);
digitalWrite(enB2 , LOW);
*/

if (hasil>= 100 && hasil<=170 && bacaup == 1 && tunggu == 0) // Jika Bobot lebih dari 100 maka naik
{
analogWrite(pwmbawah , 255);
digitalWrite(enA1 , HIGH);
digitalWrite(enA2 , LOW);
delay(50);
//Serial.print(” Naik “);
}
if (hasil>= 100 && hasil<=170 && bacaup == 0 && tunggu == 0) // Jika lift sudah sampai diatas maka berhenti dan tunggu
{
analogWrite(pwmbawah , 0);
digitalWrite(enA1 , LOW);
digitalWrite(enA2 , LOW);
delay(50);
//Serial.println(“MATI dan Tunggu”);
tunggu = 1 ;
}

if (tunggu == 1 && hasil<=25 && bacaup == 0 ) // Holding di atas
{
analogWrite(pwmbawah , 0);
digitalWrite(enA1 , LOW);
digitalWrite(enA2 , LOW);
delay(50);
//Serial.println(“MATI dan Masih Tunggu sampai ada data”);
tunggu = 2 ;
}

if (tunggu == 2 && hasil >= 100 && hasil <= 170 && bacaup == 0) // jika data masuk lagi diatas 100 dan dibawah 170 gram maka tetap diatas dan tunggu jadikan ‘0’ lagi
{
digitalWrite(pwmbawah , 0);
digitalWrite(enA1 , LOW);
digitalWrite(enA2 , LOW);
tunggu = 0;
//Serial.println(“Turun”);
delay(50);
}

if (tunggu == 2 && hasil >= 26 && hasil <= 50 && bacadown == 1) // jika data masuk lagi diatas 25 dan dibawah 50 gram maka turunkan dan tunggu jadikan ‘0’ lagi
{
digitalWrite(pwmbawah , 100);
digitalWrite(enA1 , LOW);
digitalWrite(enA2 , HIGH);
tunggu = 0;
//Serial.println(“Turun”);
delay(50);
}

if (hasil >= 26 && hasil <= 50 && bacadown == 1 && bacaup == 0 && tunggu == 0) //apabila bacadown masih ‘1’ dan bacaup masih ‘0’ maka turunkan di lantai bawah
{

digitalWrite(pwmbawah , 100);
digitalWrite(enA1 , LOW);
digitalWrite(enA2 , HIGH);
//Serial.println(“Masih Turun”);
delay(50);
//Serial.print(” Turun “);
}

if (hasil >= 26 && hasil <= 50 && bacadown == 1 && bacaup == 1 && tunggu == 0) //apabila bacadown masih ‘1’ dan bacaup masih ‘1’ maka turunkan di lantai bawah
{

digitalWrite(pwmbawah , 100);
digitalWrite(enA1 , LOW);
digitalWrite(enA2 , HIGH);
delay(50);
//Serial.print(” Turun “);
}

if (hasil >= 26 && hasil <= 50 && bacadown == 0 && bacaup == 1 && tunggu == 0) // apabila sudah sampai dibawah maka matikan pwm
{

digitalWrite(pwmbawah , 0);
digitalWrite(enA1 , LOW);
digitalWrite(enA2 , LOW);
//Serial.println(“Berhenti”);
delay(50);
//Serial.print(” Turun “);
}
if (hasil < 26 && bacadown == 0 && bacaup == 1 && tunggu == 0)
{

digitalWrite(pwmbawah , 0);
digitalWrite(enA1 , LOW);
digitalWrite(enA2 , LOW);
//Serial.println(“Paksa Berhenti”);
delay(50);
//Serial.println(“MATI”);
}
if (req)
{
Serial.println(hasil);
delay(100);
}

// Serial.println(hasil);
// delay(1000);
//Serial.print(“Bobot = “);Serial.print(hasil);Serial.print(” “);Serial.print(“Baca Up = “);Serial.print(bacaup); Serial.print(” “) ;Serial.print(“Baca Down = “); Serial.println(bacadown);
//delay(1000);

}

void serialEvent() {
while (Serial.available()) {
// get the new byte:
char inChar = (char)Serial.read();
// add it to the inputString:
if (inChar == ‘\n’) {
stringComplete = true;
}else{
inputString += inChar;
// if the incoming character is a newline, set a flag
// so the main loop can do something about it:
}
}
}

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s