In a DC motor, the stator is a permanent magnet and the rotor has the windings, which are excited with a current. The current in the rotor is reversed to create a rotating or moving electric field by means of a split commutator and brushes. On the other hand, in a BLDC motor, the windings are on the stator and the rotor is a permanent magnet, hence the term inside-out DC motor is coined.
To make the rotor turn, there must be a rotating electric field, typically a three-phase BLDC motor has three stator phases that are excited two at a time to create a rotating electric field. This method is fairly easy to implement, but to prevent the permanent magnet rotor from getting locked with the stator; the excitation on the stator must be sequenced in a specific manner while knowing the exact position of the rotor magnets. Position information can be gotten by hall effect sensors that detect the rotor magnet position.
The dsPIC30F2010 is a 28-pin 16-bit MCU specifically designed for embedded motor control applications. The six MCPWM pin outputs are connected to three MOSFET driver pairs (IR2101S), which in turn are connected to six MOSFETs (IRFR2407). These MOSFETs are connected in a three-phase bridge format to the three BLDC motor windings. MOSFET drivers also require a higher voltage (15V) to operate, the motor is a 24V BLDC motor so the DC+ to DC- bus voltage is 24V and a regulated 5V is provided to drive the dsPIC30F2010. The three Hall effect sensor inputs are connected to input pins that have Change Notification circuits associated with them. These inputs are enabled along with their interrupt. If a change occurs on any of these three pins, an interrupt is generated. To provide a speed demand, a potentiometer is connected to an ADC input (RB2).
To start and stop the motor, a push button switch is provided at RC14. To provide some current feedback to the motor, a low value resistor (25 milliohms) is connected between the DC- bus voltage and ground or Vss. The voltage generated by this resistor is amplified by an external op amp (MCP6002) and fed to an ADC input (RB1).
Sensored BLDC Motor Control – [Link]
I will start from saying that the board could be replaced by any Arduino plus some(s) its motor driver shield(s). So why I made it you may ask? Well, while I made this tiny tank-robot model presented on below pictures, I wanted to make at least some things by myself, and decide what I need and how I need it instead of only buying prefabricated stuff.
Simple and extensible microprocessor driver for robots – [Link]
I used specialized triple half bridge IC L6234 (~ 8$). You can make the same spending less money (but more time) with MOSFET transistors or other IC.
L6234 datasheet is surprisingly useless. Go straight to Application Note AN1088 instead.
I added current limiting resistors (1kΩ) to all INputs and ENable pins, a bunch of capacitors recommended in application note and current sensing shunt resistor 0.6Ω (big blue one).
Spining BLDC motors at super Slow speeds with Arduino and L6234 – [Link]
3D Printers, CNC Mills, Laser cutters, Pick n Place robots…Brainboard v2 will rule them all!
Brainboard v2 is a modular CNC controller board based on LPC1768/69 Cortex-M3 chip. Due to its modular design it allows easier upgrades as per requirements and easy replacement if there is any broken part. It runs on open source Smoothie modular firmware and is targeted at 3D Printers, Laser cutters, CNC Mills, Pick and Place and other small or Mid-size CNC machines. Upgrade your machines for higher performance and features.
Brainboard v2: Demon of CNC controllers – [Link]
This schematic shows the TI AMC1200 in a motor control application. The motor phase current is measured at the resistor (RSHUNT), and the signal is processed through an RC filter before reaching the AMC1200. Also shown are optional protection capacitors C3 and C4. The TI AMC1200 get its high side power from the power supply of the upper gate driver, and a 5.1V zener diode regulates the voltage. The high transient immunity of the AMC1200 and AMC1200B ensures reliable and accurate operation even in high-noise environments such as the power stages of the motor drives.
Motor Control using TI AMC1200 – [Link]
Davide Gironi writes:
The PWM frequency have to be selected in the way that the switch frequency is much higher than the dynamics of the motor.
To avoid noise from the motor, the choosen PWM frequency is 20Khz. Which is a know to know frequency.
So, with this one, you can drive up to 4 motors independently controlling:
*slow start / stop
Setup parameters are contained in dcmotorpwm.h
This library was developed on Eclipse, built with avr-gcc on Atmega8 @ 8MHz.
Driving a DC motor using PWM with AVR ATmega – [Link]
Drilling holes in homemade PCBs is greatly simplified with an computer-driven coordinate table on a drill press.
The clue is the on-the-fly calibration technique, so it does not matter where exactly the PCB lies on the table. You only need to move to two drill holes by hand, then the computer knows how to drive to the other holes.
(semi) Automated drill press table for PCB manufacture – [Link]
What a CAM Drive can or can not do:
A CAMdrive node must be selected according to the motor.
Stepper motors need a Stepper Controller of CAMDrive.
Normal DC motors need a CAMdrive-BrushedDCMotor controller.
To connect with Bluetooth, only one node needs the Bluetooth module. The remaining nodes are wired via the bus.
There is only one power supply required! No matter which node is connected, it supplies the remaining nodes and motors on the bus
It does not matter on which node the camera is connected, it all work “Camera” jacks simultaneously.
The bus connection is established via a standard network cable (patch cord).
CamDrive – an open source multi-axis control for time-lapse photography – [Link]
by w2aew @ youtube.com:
This video shows a simple circuit that can be used to control the position of an typical remote control (RC) style servo with an analog voltage. The PWM (pulse width modulated) control signal format for an RC servo is reviewed, followed by the presentation of a simple circuit that can be used to control the servo with a simple adjustable DC voltage. The circuit is built with rail-to-rail op amps and a few resistors and capacitors. Note that the schematic presented doesn’t include all of the decoupling on the power supply and reference lines that you would likely want to include. A description of the circuit, as well as a more in depth discussion of each of the building blocks such as an integrator, hysteresis comparator and DC signal conditioner circuit including an attenuator, inverting amplifier and level shifter, is presented.
Circuit Fun: Control an RC Servo with an adjustable DC voltage – [Link]
by Michael Whybray:
Most desk fans I have come across have three speeds: Full Speed, Almost Full Speed, and Off – useless if you want just a gentle air movement, and far too noisy if you are trying to get to sleep (in your bedroom of course, not at your work desk!). The squirrel cage induction motors they use have switches to two or more windings – and possibly a capacitor – to reduce the drive current. But unless the drive frequency is also reduced, the torque and speed stability are poor, so minimal speed reduction is usually available on these fans. Using a triac to provide phase control of the voltage works poorly for the same reason, with the speed very sensitive to the triac firing phase angle and fan load, and has a tendency to stall.
Sleep easy with this desk fan speed reducer – [Link]