As part of my 3D printer project, one of the big electronics hurdles to overcome was a motor controller for a BLDC (BrushLess Direct Current) motor. Searching for a cheap, off the shelf controllers that would interface easily with a microcontroller turned up fruitless, so I took the opportunity to design my own circuit. It was a major project in itself, and while there's still a few hardware tweaks to make I'm quite happy with how it has turned out.
Showing posts with label quadrature. Show all posts
Showing posts with label quadrature. Show all posts
May 4, 2014
January 12, 2014
3D Printer Motor Control - Part 1
So I've been moving forward with my 3D printer plans slowly but surely. I've mainly been focusing on the drive axes up to this point, more specifically the details of controlling the motor. As outlined in my 3D printer post, I am planning on using closed loop position control with brushless DC (BLDC) motors, rather than the standard open loop control with stepper motors.
August 20, 2013
Building a 3D Printer
I've decided to do it. I'm going to join the ranks of those who have a 3D printer in their homes. While having the ability to print custom parts for future projects will be a definite benefit, I must say that the lion's share of the fun will be in the making of it.
Now, I know there is no shortage of plans and designs available for DIY 3D printers contributed to by a community of makers, hackers, hobbyists, etc., I've decided not to go with an existing design. My schooling focused on robotic kinematics and control as well as mechanical design. It seems a shame not to put that learning to good use. Perhaps I'll blaze some new trails in the process.
Now, I know there is no shortage of plans and designs available for DIY 3D printers contributed to by a community of makers, hackers, hobbyists, etc., I've decided not to go with an existing design. My schooling focused on robotic kinematics and control as well as mechanical design. It seems a shame not to put that learning to good use. Perhaps I'll blaze some new trails in the process.
February 10, 2013
Efficiently Reading Quadrature With Interrupts
Once you start wanting to control the position of a motor through feedback control, you will likely end up using a rotary encoder as the feedback device. Encoders can be broadly categorized as:
- Absolute position
- Incremental position
Absolute position encoders will tell you what the angular position is all the time, even between power cycles. Most use "grey code" (a modified form of binary) with several "tracks" (bits) to read position.
Incremental position encoders will tell you what the angular position is, but only relative to where it was when you started paying attention (usually on power-up). Two common types of incremental outputs are:
- Incremental (clever name)
- Quadrature
Incremental is rather useless for position control because it doesn't give you any information about what direction you are turning, just that you are turning. Quadrature encoders give you direction as well as incremental position. This article deals with efficiently reading quadrature output on an Arduino by utilizing external interrupts and some AVR bare-bones code.
Subscribe to:
Posts (Atom)