Go Down

Topic: 3D printer using DC motors with encoders (Read 5113 times) previous topic - next topic

ArduinoNoobie

Hi there! I'm trying to make a 3D printer using DC motors with encoders instead of stepper motors and was wondering if there was an arduino board(s) I could use. The motors I plan on using are here http://www.phidgets.com/products.php?category=38&product_id=3259E_0 .

Qdeathstar

#1
Jun 02, 2016, 09:51 pm Last Edit: Jun 02, 2016, 09:53 pm by Qdeathstar
I think it might be possible depending on what resolution you need. You'll need to devote a lot of cycle time to just keeping track of the encoders.....


It's definitely not a job for an Arduino noobie though, since you'll most likely need to write your own firmware
A creaking creeping shadow
stiff against the freezing fog
glares at a tickless watch.

Time has failed him -- all things shall pass.

Delta_G

There's a very good reason why they use steppers for this job.  It's hard to tell a DC motor exactly where to stop.  Inertia and all that... 
|| | ||| | || | ||  ~Woodstock

Please do not PM with technical questions or comments.  Keep Arduino stuff out on the boards where it belongs.

Robin2

I think this project would be very difficult even for a very experienced Arduinoist.

As @Qdeathstar said encoders use up a lot of CPU cycles and as @Delta_G said, even if you can read the encoders effectively it is still not easy (maybe not possible) to get a DC motor to stop firmly at a specific place.

Perhaps you see a parallel between the use of DC motors and encoders in PC ink-jet printers and their potential use in a CNC system? IMHO the two concepts are very different because the carriage on a PC printer spits out ink while it is moving and it only stops at either side of the printer where accurate positioning is irrelevant.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

Grumpy_Mike

#4
Jun 03, 2016, 09:12 am Last Edit: Jun 03, 2016, 09:13 am by Grumpy_Mike
I once had an X-Y plotter that effective used DC motors and feedback to move the pen. If you want to do the same sort of things there are a few points to note.

You need a high degree of gearing between the motor / encoder and the thing you want to move. So the mechanics are a lot harder than using a stepping motor.

You then effectively make a servo system with it, with a PID type control loop.

When stopping at a specific point their is often a slight tremor while the loop holds the position. This is reduced with higher gearing.

Shubham_arduino

You can use arduino UNO for this purpose but be aware to frame code which includes every step of your movement
Secondly use stepper motor if possible, as it easily reads codes and gives output

Grumpy_Mike

Quote
but be aware to frame code which includes every step of your movement
Can you explain what it means to "frame code" please.

Paul__B

Can you explain what it means to "frame code" please.
Probably not. :smiley-lol:


Perhaps you see a parallel between the use of DC motors and encoders in PC ink-jet printers and their potential use in a CNC system?
Do they really?  Must be a recent development for the ultimate in $10 printers.

Picked a mono laser - Ricoh SP112 - up for $AU20 during the week.  After unboxing, I don't like it; It has the form factor of an old MX-80 but worse - paper loads in the top - with difficulty - and comes out the front so it will collect dust apace and occupies the whole depth of a desk.

Robin2

Do they really?  Must be a recent development for the ultimate in $10 printers.
It is worth spending $50,000 on software development to allow you to save $1 each on the price of the motors for 1 million printers.

And I don't think it is all that recent.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

ArduinoNoobie

Sorry again for being so new to all this, but from what I've found, a lot of people use the Arduino Mega and RAMPS 1.4 for 3D printers and CnC machines. I assume this is for the easy stepper drivers, but I don't care about those assuming their strictly for stepper motors.

For testing a single motor and a single rotary encoder, what board would I need? Shubham_arduino says an UNO would work, but how would I wire it up? The encoder has a 5 pin out shown http://www.phidgets.com/docs/Encoder_Primer being a B channel , +5V, A channel, index and ground.

Then could I use the code similar to the one seen in https://www.youtube.com/watch?v=HQuLZHsGZdI which was used for a smaller knob like rotary encoder?

Qdeathstar

#10
Jun 06, 2016, 09:30 pm Last Edit: Jun 06, 2016, 09:34 pm by Qdeathstar
Maybe dc motors and some sort of clutch, to solve the problems associated with inertia.

I might would get a mega for this. Lots of memory and interrupt pins. I don't think polling the encoder will work.
A creaking creeping shadow
stiff against the freezing fog
glares at a tickless watch.

Time has failed him -- all things shall pass.

Robin2

Sorry again for being so new to all this, but from what I've found, a lot of people use the Arduino Mega and RAMPS 1.4 for 3D printers and CnC machines. I assume this is for the easy stepper drivers, but I don't care about those assuming their strictly for stepper motors.
There s no need to apologize for being new to all this.

But, as I said earlier, this would be a complex project for someone with a lot of experience.

Stepper motors are much more suitable.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

Go Up