You are on page 1of 8

Conveyor Belt controller

Abstract: - in almost all the manufacturing industries where ever there is a 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 like wise. 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.

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

It controls the belt motor by giving fwd and stp pulses. Sensor 1.it generates positive pulses as items dropped from nozzle. Also it gives drop command to fill the container. buffers. It counts no of items in container and resets the counter with every new container. 2.Speed . Let us first see the block diagram of system Because this very small system we don't require more input output pins. the building blocks of the system 1.it gives high output as container reaches to it.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. 3. indicators and a 2 digit counter. So we are using 20 pin 89C2051 micro controller. There are four outputs and they are from various sensors placed on belt.2 & 3 o/p . As shown in figure there are inverters. Sensor 4 o/p . 5. 4. Now let us see the outputs.this will change the speed of belt as the voltage applied to this pin is varied from 0 . 89C2051 . Indicates different actions on LEDs . So depending upon this input and output we have to design a circuit that will control this conveyor belt.it performs following tasks.

P3. Pins P1.0 is connected with reset input of counter.0. P1.5 & P3.it indicates various events currently going on Conveyor belt controller circuit Connections: .6 & P1.7 through inverters 74LS04. P1. One LED indicator is also connected with each output.Inverters . P1. A 12 MHz crystal along with 2 33 pf capacitors is connected with XTAL pins to provide clock signal.it provides isolation between digital system (micro controller) and analog system (conveyor belt) 2 digit counter .2.as shown in above circuit two ports of 89C2051 P1 & P3 controls entire system.it inverters the positive pulses into negative pulses Buffers . stop and drop controls through buffers 7407. Pin P3. So P1 is completely output port.5.7 drives 3 LEDs as shown.1. All four sensor outputs are connected with P3 pins P3.2 are connected to fwd. A push button switch along with capacitor C1 forms power on reset circuit. P1. .4. P3.it counts no of items filled in container up to 99 only LED indicators . Also the sensor 4 output is directly connected with clock signal of counter.

Now again fwd pulse is applied. Again this cycle repeats . that is counter cum 7 segment display driver. As container passes through sensor 1 the timer is reset 4. Operation:1. 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 are connected with reset output from 89C2051. 6. Its outputs can be directly connected to common cathode type 7 seven segment display.Above figure shows 2 digit counter using CMOS chip CD4026. The counter will display the count and counter will count no of items. As a container reaches to sensor 2 immediately stop pulse is applied and container is stop. As container reaches to sensor 4. As shown in figure the clock signal from sensor 4 is given to chip U3. Again motor is stopped for 3 sec 9. Container will move forward and this is indicated by D1 3. Now the drop signal is made high to drop items from nozzle to container. Its carry out signal is connected with clock signal of chip U1. D2 glows to indicates this event 5. Controller will apply fwd pulse to motor and motor will start rotating 2. At the same time one timer is started. 8. It will count 50 items 7.

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 position Mildly function is again random fix amount delay (<1 ms) provided in between two item counts. After 2 sec again the same above cycle repeats. Now if there is no container on belt.10. Waits for container to reach at sensor 2. So timer overflows and that means there will be no more containers to be filled. It increases the count (b) and calculate up to 200. Counts number of items to 50. Along with main function entire program is a combination of 5 different functions. 12. Indicates motor is running on LED 5. Software program: Software program is very simple that is written in C language and compiled using KIEL (ODE) cross compiler. Timer function is interrupt enabled function and it is called automatically when timer overflows from all 1's to all 0's. There is no output from sensor 1. As container reaches to sensor 3 position sends stop pulse 10. It just resets the count (b) every time as containers are passing through belt. 11. It is called after every 50 ms. So motor will be automatically stopped. 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. Then it applies start pulse to motor and reset pulse to counter 4. timer and enables interrupts 3. Again applies start pulse to motor and now waits for o/p from sensor 3 9. Initializes ports. Now it applies high logic to drop pin to drop item into container 7. When it reaches stops the motor 6. And then stops dropping items. . 1. 8. Main function performs following tasks 2.

// start timer // enable timer and external interrupt // apply start pulse to motor // P1 as output port // P3 as input port // timer initilization // load timer vlaue .Conveyor belt control program #include<reg51. IE=0x83. TMOD=0x01. sbit cntr = P3^5. sbit rst = P3^0. sbit led2 = P1^6. TH0 = 0x3C. back:strt = 1. sbit obj = P3^4. sbit end = P3^7. // defining port pins unsigned int c=0. void main() { P1=0x00. sbit led1 = P1^7. sbit led3 = P1^5. TL0 = 0xAF. sbit stp = P1^1. sbit drop = P1^2.b=0. P3=0xFE. TR0 = 1.h> sbit strt = P1^0.

// wait until sensor 2 output // apply stop pulse to motor // indicate on LEDs // start dropping items cnt:while(cntr==1). led2=0. led2=0. stp = 0. led1=0. led3=0. delay(). smldely(). rst=0. if(c<50) goto cnt. // start motor // till it is 50 // count no of items // stop dropping items . led3=1. strt = 0. delay().rst=1. delay(). stp = 1. led2=1. c++. strt = 1. drop = 1. strt = 0. drop=0. // and reset pulse to 2 digit counter // indicate on LEDs while(obj==1). led1 = 1. cntr=1.

stp = 0. rst=1. delay(). stp = 1. led2=1. led1=0. while(end==1). goto back.led1 = 1. EA=1. end=1. } // again start process // wait for 2 second // wait until sensor 3 output // apply stop pulse again . bigdely(). rst=0. obj=1.