Conveyor belt + Arduino

Hi everyone, I'm new at this forum and also to the Arduino world. I study electronics engineering and i'm interested in making a conveyor belt of about 3m x 60cm that moves at a very slow speed (don't know exactly how much). The first question that pops into my mind, is this doable with Arduino? (probably yes since from what i've seen Arduino is awesome =) ) but is it too hard for a beginner? Where can i start? I have already read a lot about programming Arduino. But i have no idea how to choose a motor, if i need extra hardware to control it… i've seen theres a motor shield that can control up to two motors. What if i need three? Any suggestions or ideas are welcome! Thanks a lot in advance! Florencia

That's what it is called. XD

I just picked up a motor shield. It's a pretty common one, and it will control two stepper motors or four regular DC motors.

I wouldn't call it a difficult project, but I would suggest you start with an Arduino, a solderless breadboard, and some components. Try some of the simple examples first. Learn what you need to code in order to output digital levels on the digital pins, input digital levels, same for analog, and how to make your program do things it should, when it should.

Baby steps now.. harder stuff later.

A conveyor belt of the dimension you describe will need quite some power(several 100watts) even if geared down heavyly. For that reason i recommend investigating AC motors (230V or preferably 400V if you live in europe). The best solution is a drum motor but that can be a bit costly. To control such a motor you need a contactor. A contactor in turn cannot be driven directly from arduino, it needs either a relay or a suitable transistor.

Building a conveyor belt is straitforward but it takes som experience, Normally it consist of two parallell profiles with a number of rollers between them. One to drive the belt, the rest are idlers. And of course a suitable belt. One option would be to look for a used conveyor with drive.

Here is a code example for a conveyor belt transporting an arbitary number of boxes.

  • If a new box activates the fotocell at the loading end the belt starts
  • If a box on the belt activtes the fotocell at the unloading end the belt stops
  • If a box is removed from the unloading end the belt starts if there are more boxes to come

This behavior can be modeled with two concurrent state machines. One for the loading end and another for the unloading end. The state diagrams are attached.

The code uses my state machine library found here:

#include <SM.h>

SM Loading(WaitBox);
SM Unloading(Stop);
int Counter;

const int LoadingFC = 2;//fotocell at loading end
const int UnloadingFC = 3;//fotocell at unloading end
const int Motor = 10;//motor control output

void setup(){
  pinMode(Motor, OUTPUT);

void loop(){

State WaitBox(){
  if(digitalRead(LoadingFC)) Loading.Set(CountUp, Pass);//loading end waits for box

State CountUp(){

State Pass(){
  if(!digitalRead(LoadingFC)) Loading.Set(WaitBox);//wait for box to go past FC

State Stop(){
  if((Counter>0)&&!digitalRead(UnloadingFC)) Unloading.Set(Run);//wait for boxes to come

State Run(){
  digitalWrite(Motor, 1);//start motor
  if(digitalRead(UnloadingFC)) Unloading.Set(CountDown, Stop);//Box has arrived

State CountDown(){
  digitalWrite(Motor, 0);//stop motor

Conveyor belt state diagram.png

@florencia, you can probably guess from @niton61's post that you need to provide more information.

I agree that a fairly powerful motor is needed. A cheap source of powerful motors is second-hand car windscreen wiper motors. They come with step-down gearing - though still might be too fast for your application and may need further reduction stage. They would be simple to switch on and off with a relay controlled by an Arduino - but don't connect the relay directly to the Arduino unless you are sure it can provide enough current (it probably can't).

If you need to electronically control the speed of a high powered motor you will likely need to buy some expensive interface between it and the Arduino.

You haven't said whether your conveyor will just be a dumb thing that runs continuously or if it will have controls that check whether it is needed.


Hi, thanks a lot for all your answers. Robin2 my conveyor will run continuously the only thing i need is to be able to control the speed the first time i use it in order to calibrate it. Then I will need just a run and stop bottom.

I have a question, how do you know the motors i need have to be that powerful? the speed is slow and i know i haven't mentioned it before but the weight the belt will have to support is not much (lets say 6kg aprox perfectly distributed in all the 60 cm by 3m) . So the ac motors are because of the dimension of the belt ?

Thanks a lot again and sorry for all this questioning. F.

I don't know how to calculate the theoretical motor size for a given conveyor but you seem to be thinking of a non-trivial system, and 6kg is not light - try carrying 3 large bottles of coke from the supermarket. I suspect that conveyors have a lot of friction unless they are expensive.

I am not advocating an AC motor - I suggested trying a 12v windscreen-wiper motor.

AC brings with it all of the problems of handling dangerous mains voltages - and I doubt if there is any point in using a low voltage AC motor.

If a mains electric motor is needed those from the drums of washing machines seem to be popular in DIY circles - again I presume they are available second hand.


Thank you Robin2, I understand now what you meant. if i were to use a motor that needs that amount of voltage, they would need to have an external alimentation right? and the thing about regulating the speed is it possible with those you suggest? would i need extra hardware? thanks again! F.

Commercial conveyors of that size have normally around 1hp. Mostly because the belt adds a significant amount of friction. Im talking normal rubber belts here, they have o have some amopunt of tension in order not to slip. If you can find another solution with a textile belt or some kind of non slip drive the power requirement will be reduced and maybe a windshield or other geared dc motor will do. Adjusting the speed will be much easier but you have to take into account that the speed will be more load dependent than with an ac motor.

I had not been expecting a power requirement of 700w + and, as @nilton61 seems to know something about conveyors I will happily hand over to her/him.

It's beginning to sound like the sort of project where one could make an expensive mistake by underestimating the requirements.


I still believe the best thing would be to get a used conveyor to start with. Have a look at ebay and local online sources. It will give you a price estimate as well

the power depends greatly on the tension of the belt. you will need some feedback as it is hard to keep it this slow and constant. i would make it with a variable transformer and a servo controlling the knob of it. or use a old drilmachine and push the handle in with same servo.

Good idea with the drillmachine. A battery screwdriver can deliver a lot of torque. Or you can use an Ac screwdriver as well, they run fine on dc with considerably lower voltage because they have commutator motors

nilton61: Or you can use an Ac screwdriver as well, they run fine on DC with considerably lower voltage because they have commutator motors

But the speed controller of a mains drill/ driver does not function on DC.

I still say he just needs a motor with the correct gearbox.

This project needs to proceed in several distinct steps: The first is to buy or build the conveyor belt itself, including all drums, idlers and mechanical support. The second is to figure out how much torque and power a motor needs to supply to run the belt at the proper speed. The third is to obtain a suitable motor, gearbox and motor driver, and connect those to the belt drive. Last, switches (first), then a microcontroller (later) to operate the entire belt mechanism. You will always need the switches in case the microcontroller hangs up.

Hi everyone. Thanks a lot for all the suggestions and advice!! Apparently its much more complicated than i thught.. those suggestions you make about buying used components are great but where i live (not usa) is not that easy.. i'll see what i can do. When i have something more concrete I'll let you know. THANKS A LOT. F

Thank you so much for the helpful information you provided me with. I always found it hard to handle work with them and learn about conveyors. But, if you want to you can check out the high-quality conveyors here That is my personal recommendation.

Hey friend if you want any solution regarding conveyor belt you can check this provided link. I checked this and its very good. It explain everything about conveyor belt query and types of conveyor belt.

I would recomend a slightly different approach. you have both a software and hardware problem.

you can get toys, lego or any sort of stuff. you can get pulleys and a flat belt from a car.

put in any motor you like, DC or stepper,

make the conveyor as a desk top, then control it.

once you have the logic, the start/stop/safety/sensors, etc your programming will be well understood.

a large conveyor could be a simple treadmill. they have a motor, and a motor driver that you can control with an arduino.

if you really need to get into huge motors, you will most likly use a variable speed driver and that too will take 0-5 volts and can be controlled by an arduino.

This would appear to be an old, resolved if only by exhaustion, thread resurrected on two occasions by irrelevant postings, essentially spam.