Model of a Belt Conveyor With Product Counter & Weight Measurement
This Project explains how to build a belt conveyor system with product counter and weight measurement unit.
This system can be used individually as an intermediate secondary system to convey a product (eg: packed cement bags) from one system to another.
Counter(+) & counter(-) buttons are used to adjust the number of products required.
Enter button is used to set the adjusted product count and turn on the system.
In this model project, load cell is used as the weight measuring sensor to detect whether the product is in 800g-1200g range.
If the Product is not within the range, the fourth motor(04) will act as a reject arm(screw linear motion) and push the rejected product from the weight measuring plate to a side.(to an another system or waste bin)
If the product is in the 800g-1200g range, then the product is conveyed to the second belt area using third motor(03), which starts the first belt conveyor.
The product will continue along the second belt area until it gets detected by the IR sensor, which will count the product passing through.
If the set product count and number of products detected by IR sensor is equal; the system will stop after a time delay. (Time delay is used to convey the last counted product to be moved to the next belt area)
Then the third belt will convey the product to the next system.
Tools & Components
1 X Arduino Nano1 X 16x2 LCD with I2C Module
2 X L298N Module
4 X 12V DC Motors
1 X Load Cell(15kg) with HX711 Module
1 X IR Sensor
3 X Push Button
12VDC,3A Power Supply
Connecting Wires
Suitable belt conveyor design
Connecting Components
Connecting i2c module to LCD
Circuit Diagram
L298N Module 01
IN1 Pin - Arduino Pin D12
IN2 Pin - Arduino Pin D11
IN3 Pin - Arduino Pin D10
IN4 Pin - Arduino Pin D09
L298N Module 02
IN1 Pin - Arduino Pin D08
IN2 Pin - Arduino Pin D07
IN3 Pin - Arduino Pin D06
IN4 Pin - Arduino Pin D05
Keep the Jumper in for both modules (ENA & ENB)
Load Cell - HX711
SCK Pin - Arduino Pin D03
DT Pin - Arduino Pin D02
Green Wire to HX711 A+ Pin
White Wire to HX711 A- Pin
Red Wire to HX711 E+ Pin
Black Wire to HX711 E- Pin
IR sensor Sig. Pin - Arduino Pin D13
Counter(+) Push Button - Arduino Pin A2
Counter(-) Push Button - Arduino Pin A1
Enter Push Button - Arduino Pin A0
I2C Module
SDA Pin - Arduino Pin A4
SCL Pin - Arduino Pin A5
01 ,02 & 03 motors are used to operate belt conveyors.(Rotational Motion)
04th motor is used as a push arm (Linear Motion)
Arduino Code
//2020 Craftybin.blogspot.com//Author : Chathura H.
#include "HX711.h"
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;
HX711 scale;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define plus A2
#define minus A1
#define enter A0
const int motorPin1 = 5;
const int motorPin2 = 6;
const int motorPin3 = 7;
const int motorPin4 = 8;
const int motorPin5 = 9;
const int motorPin6 = 10;
const int motorPin7 = 11;
const int motorPin8 = 12;
int IR = 13;
int count1 = 0;
int count2 = 0;
int detect1 = HIGH;
int detect2 = LOW;
int detect3 = LOW;
int detect4 = LOW;
void setup()
{
lcd.begin();
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
pinMode(motorPin5, OUTPUT);
pinMode(motorPin6, OUTPUT);
pinMode(motorPin7, OUTPUT);
pinMode(motorPin8, OUTPUT);
pinMode(IR,INPUT);
pinMode(plus,INPUT);
pinMode(minus,INPUT);
pinMode(enter,INPUT);
Serial.begin(9600);
delay(100);
Serial.println("Product Weight ");
Serial.println("Measuring...");
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
scale.set_scale(2280.f);
scale.tare();
lcd.backlight();
lcd.print("Product Weight");
delay(1000);
lcd.clear();
}
void loop()
{
detect1 = digitalRead(IR);
detect2 = digitalRead(plus);
detect3 = digitalRead(minus);
detect4 = digitalRead(enter);
Serial.print("one reading:\t");
Serial.print(scale.get_units(), 1);
Serial.print("\t| average:\t");
Serial.println(scale.get_units(10), 1);
scale.power_down();
delay(100);
scale.power_up();
if (detect1 == LOW) {
if(count1 < 10)
count1++;
else
count1 = 0;
lcd.backlight();
lcd.print("COUNTER =");
delay(500);
lcd.clear();
lcd.print(count1);
delay(500);
lcd.clear();
}
if (detect2 == HIGH) {
if(count2 < 10)
count2++;
else
count2 = 0;
lcd.backlight();
lcd.print("Set Count");
delay(500);
lcd.clear();
lcd.print(count2);
delay(500);
lcd.clear();
}
if (detect3 == HIGH) {
if(count2 < 10)
count2--;
else
count2 = 0;
lcd.backlight();
lcd.print("Set Count");
delay(500);
lcd.clear();
lcd.print(count2);
delay(500);
lcd.clear();
}
if (detect4 == HIGH){
if (count2 > count1){
digitalWrite(motorPin1,HIGH);
digitalWrite(motorPin2,HIGH);
digitalWrite(motorPin3,HIGH);
digitalWrite(motorPin4,HIGH);
lcd.backlight();
lcd.print(" Counting =");
delay(500);
lcd.clear();
lcd.print(count1);
delay(500);
lcd.clear();
}
else if (count2 <= count1){
digitalWrite(motorPin1,LOW);
digitalWrite(motorPin2,LOW);
digitalWrite(motorPin3,LOW);
digitalWrite(motorPin4,LOW);
lcd.backlight();
lcd.print("Count Completed");
delay(500);
lcd.clear();
lcd.print(count1);
delay(500);
lcd.clear();
}
}
else {
digitalWrite(motorPin1,LOW);
digitalWrite(motorPin2,LOW);
digitalWrite(motorPin3,LOW);
digitalWrite(motorPin4,LOW);
}
if (scale.get_units() > 1200 || scale.get_units() < 800)
{
digitalWrite(motorPin4,LOW);
digitalWrite(motorPin5,LOW);
digitalWrite(motorPin6,HIGH);
digitalWrite(motorPin7,LOW);
delay(1000);
digitalWrite(motorPin6,LOW);
digitalWrite(motorPin7,HIGH);
delay(1000);
lcd.backlight();
lcd.print(" Weight Unmatched");
delay(500);
lcd.clear();
lcd.print("Rejecting");
delay(500);
lcd.clear();
}
else {
digitalWrite(motorPin6,HIGH);
digitalWrite(motorPin7,LOW);
digitalWrite(motorPin6,LOW);
digitalWrite(motorPin7,LOW);
}
}
Safety First !Always Connect the power supply if you are absolutely sure that the components are connected correctly without changing polarity and short circuited the wiring.Even if it seems nothing is wrong : DOUBLE CHECK EVERYTHING !!Your Feedback is very important to us.Please Leave a comment about how you feel about this project.
♥️
ReplyDeleteI would like to know the software you used for simulating those circuit diagrams above, thank you.
ReplyDeleteCoralDraw X7 & Fritzing
DeleteFor Simulation - Proteus 8.6
DeleteCan you share HX711 library file for proteus 8.6 ?
DeleteHi !
ReplyDeleteYour project seems very nice !
I have a similar project but I have some issues with the weighing.
My load cell is placing just below the upside belt. Depending on the "tense" of the belt the weigh can vary a lot.
How did you figured this issue out ? How do you deal with the belt's weight itself ? what is the placement of your loadcell ?
Many thanks in advance for your help.
Regards
PS : sorry for my bad english...
Thanks for the useful information.I have been reading a lot of stuff about it. but the way in it is presented is nice.
ReplyDeleteHand Sanitiser Station
You have worked nicely with your insights. Lots of valuable data can be taken from your article. Genuinely it is a significant article for us.Blasting Equipment Suppliers Pan India
ReplyDeleteAmazing article, good content delivery. Thanks for sharing the wonderful information.
ReplyDeleteBest Quality uPVC windows and Doors in Chennai
Best Upvc Windows and doors dealers in chennai
Aluminum windows in Chennai
The delightful article you have posted here. This is a good way to increase our knowledge. Continue sharing this kind of articles, Thank you.fuse box switches up or down
ReplyDeleteThe information in the post you posted here is useful because it contains some of the best information available. solar panel maintenance and repair service martin county. Thanks for sharing it. Keep up the good work.
ReplyDeleteYou have given great content here. I am glad to discover this post as I found lots of valuable data in your article. Thanks for sharing an article like this.Commercial Electric Services Oregon
ReplyDeleteThis article contains a lot of valuable info. I am amazed by the quality of the info and also it is a beneficial article for us, Thanks for share it.Commercial Electrical Contractors Oregon
ReplyDeleteGreat job for publishing such a nice article. Your article isn’t only useful but it is additionally really informative. Read more info about Buy Arduino Compatible Boards Online. Thank you because you have been willing to share information with us.
ReplyDeletePost a Comment