In almost all the manufacturing industries where ever there is complete assembly line automation like bottling plant, chemical industries, food processing and packaging industries a conveyor belt is ultimate and widely used option. The entire process is carried on single (or multiple) conveyor belt(s). From start to end the items are moving on belt and the processes are done in between, while they are moving.
Just take an example of any bottling plant then in this case the bottles are moving on belt one by one and at one place they are filled, at another place they are sealed, then labeling and finely packaging in a bunch on 10, 20 or 50 likewise. This whole process runs on single conveyor belt.
So here I am explaining one such conveyor belt application. I am taking simulated conveyor belt from multisim 10.0 software to explain this application. In this example at a time only one box moves on belt it is filled with items at the middle of belt and then it moves forward. When it passes through belt another box is available for filling. So actually its very simple application and it illustrate the demo of actual conveyor belt.
Let us first see various controls for this conveyor belt so that we can get better idea that how to control it.
Controls of the Conveyor Unit
As shown in above figure there is a motor that rotates the belt. Various sensors are placed on belt to sense the position of moving container. Various controls are available for motor
Forward – when it is applied positive pulse the motor will start rotating clockwise and the container on belt will move ahead
Reverse – when it is applied positive pulse motor will start rotating anticlockwise and the container will move back
Stop – when it is applied positive pulse motor will stop and container will be steady
Speed – this will change the speed of belt as the voltage applied to this pin is varied from 0 – 5 V
One more control is drop
Drop – the items will drop from the nozzle till this is applied high logic (5V)
So all above are the inputs of this conveyor belt system. Now let us see the outputs. There are four outputs and they are from various sensors placed on belt.
Sensor 1,2 & 3 o/p – it gives high output as container reaches to it.
Sensor 4 o/p – it generates positive pulses as items dropped from nozzle.
So depending upon this input and output we have to design a circuit that will control this conveyor belt. Let us first see the block diagram of system
Because this very small system we don’t require more input output pins. So we are using 20 pin 89C2051 micro controllers. As shown in figure there are inverters, buffers, indicators and a 2 digit counter, the building blocks of the system
89C2051 – it performs following tasks.
- It controls the belt motor by giving fwd and stp pulses.
- Also it gives drop command to fill the container.
- It counts no of items in container and resets the counter with every new container.
- Indicates different actions on LEDs
Inverters – it inverters the positive pulses into negative pulses
Buffers – it provides isolation between digital system (micro controller) and analog system (conveyor belt)
2 digit counters – it counts no of items filled in container up to 99 only
LED indicators – it indicates various events currently going on
Conveyor Belt Controller Circuit Connections & Operation
Connections: – as shown in circuit tab 1 two ports of 89C2051 P1 & P3 controls entire system. Pins P1.0, P1.1, P1.2 are connected to fwd, stop and drop controls through buffers 7407. P1.5, P1.6 & P1.7 drives 3 LEDs as shown. So P1 is completely output port. All four sensor outputs are connected with P3 pins P3.2, P3.4, P3.5 & P3.7 through inverters 74LS04. One LED indicator is also connected with each output. Pin P3.0 is connected with reset input of counter. Also the sensor 4 output is directly connected with clock signal of counter. A 12 MHz crystal along with 2 33 pf capacitors is connected with XTAL pins to provide clock signal. A push button switch along with capacitor C1 forms power on reset circuit.
Above figure shows 2 digit counter using CMOS chip CD4026, that is counter cum 7 segment display driver. Its outputs can be directly connected to common cathode type 7 seven segment display. As shown in figure the clock signal from sensor 4 is given to chip U3. Its carry out signal is connected with clock signal of chip U1. Clock inhibit signal (INH) of both chips are tied to Gnd and display enable signals (DEI) are tied to Vcc. The master reset (MR) of both chips is connected with reset output from 89C2051.
- Controller will apply fwd pulse to motor and motor will start rotating
- At the same time one timer is started. Container will move forward and this is indicated by D1
- As container passes through sensor 1 the timer is reset
- As a container reaches to sensor 2 immediately stop pulse is applied and container is stop. D2 glows to indicates this event
- Now the drop signal is made high to drop items from nozzle to container.
- The counter will display the count and counter will count no of items. It will count 50 items
- Now again fwd pulse is applied.
- As container reaches to sensor 4. Again motor is stopped for 3 sec
- Again this cycle repeats
- Now if there is no container on belt. There is no output from sensor 1.
- So timer overflows and that means there will be no more containers to be filled.
- So motor will be automatically stopped.
Software program: –
Software program is very simple that is written in C language and compiled using KIEL (ODE) cross compiler. Along with main function entire program is a combination of 5 different functions.
Delay function generates random fix amount delay (<10 ms) to provide pulse to LEDs
Bigly function generates fix amount delay of 2 sec to hold the conveyor belt when container reaches sensor 4 positions
Mildly function is again random fix amount delay (<1 ms) provided in between two item counts.
Timer function is interrupt enabled function and it is called automatically when timer overflows from all 1’s to all 0’s. It is called after every 50 ms. It increases the count (b) and calculate up to 200. If this count is reached that means total 10 sec delay is over then it will apply stop pulse and stop rotating motor and belt
Interrupt function is also interrupt enabled function and it is called when the container passes through it. It just resets the count (b) every time as containers are passing through belt.
Main function performs following tasks
- Initializes ports, timer and enables interrupts
- Then it applies start pulse to motor and reset pulse to counter
- Indicates motor is running on LED
- Waits for container to reach at sensor 2. When it reaches stops the motor
- Now it applies high logic to drop pin to drop item into container
- Counts number of items to 50. And then stops dropping items.
- Again applies start pulse to motor and now waits for o/p from sensor 3
- As container reaches to sensor 3 position sends stop pulse
- After 2 sec again the same above cycle repeats.
Project Source Code
sbit strt = P1^0; // defining port pins
sbit stp = P1^1;
sbit drop = P1^2;
sbit led1 = P1^7;
sbit led2 = P1^6;
sbit led3 = P1^5;
sbit obj = P3^4;
sbit cntr = P3^5;
sbit end = P3^7;
sbit rst = P3^0;
unsigned int c=0,b=0;
P1=0x00; // P1 as output port
P3=0xFE; // P3 as input port
TMOD=0x01; // timer initilization
TL0 = 0xAF; // load timer vlaue
TH0 = 0x3C;
TR0 = 1; // start timer
IE=0x83; // enable timer and external interrupt
back:strt = 1; // apply start pulse to motor
rst=1; // and reset pulse to 2 digit counter
strt = 0;
led1 = 1; // indicate on LEDs
while(obj==1); // wait until sensor 2 output
stp = 1; // apply stop pulse to motor
stp = 0;
led1=0; // indicate on LEDs
drop = 1; // start dropping items
c++; // count no of items
if(c<50) goto cnt; // till it is 50
drop=0; // stop dropping items
strt = 1; // start motor
strt = 0;
led1 = 1;
while(end==1); // wait until sensor 3 output
stp = 1; // apply stop pulse again
stp = 0;
bigdely(); // wait for 2 second
goto back; // again start process