Archive for the ‘Arduino’ Category

Brushless DC (BLDC) motor with Arduino. Part 3 – The Stroboscope Project

It has been all dry theory in the Brushless DC (BLDC) motor with Arduino series up to this point. This is where it gets to be more fun. If you’ve just arrived, please check out the previous two installments:

  1. Driving a three-phase brushless DC motor with Arduino – Part 1. Theory
  2. Brushless DC (BLDC) motor with Arduino – Part 2. Circuit and Software

In this final part of the trilogy I am describing the hardware part of the stroboscope project and the making of the zoetrope animations themselves, in hopes that my visitors can take this further and come up with their own animations, which I would absolutely love to see. More details below! Read the rest of this entry »

Brushless DC (BLDC) motor with Arduino – Part 2. Circuit and Software

In this post I will describe the hardware and the software part of a project involving the use of BLDC (Brushless DC) motor salvaged from a broken XBox 360. This is a second installment in the series of posts related to Arduino and brushless DC motors. Please see the first part for a bit of info on the theory behind the commutation sequence. Once you understand the commutation sequence for the particular design of the BLDC motor, the circuit design for the BLDC driver becomes pretty clear. It is not much different from a bipolar stepper driver in that we need the be able to both source and sink current at all ends of the windings, except of course in this case there are only three ends whereas the bipolar stepper has four.
Read the rest of this entry »

Driving a three-phase brushless DC motor with Arduino – Part 1. Theory

Typical CD/DVD Spindle BLDC Motor With 12 Magnetic Poles and 9 Wound Cogs

Typical CD/DVD Spindle BLDC Motor With 12 Magnetic Poles and 9 Wound Cogs

This is the first part of what will probably be two (or more) posts describing one of my latest projects – an Arduino Stroboscope based on the spindle motor of a broken Xbox 360 DVD drive. I will save some practical information (like why I chose Xbox’s drive) for the second post. Here I wanted to concentrate on the theory behind using Arduino or another MCU to drive a three-phase Brushless DC electric motor such as a CD or DVD drive (or HDD for that matter) spindle motor, such as the one pictured further in the text. Read the rest of this entry »

Arduino Code Tidbits – #1 – Declaring an Array with Pin Values

Arduino Code - simple yet sometimes so challenging!

Arduino Code - simple yet sometimes so challenging!

Every once in a while you come to a point in writing a software program where you spend unexpectedly long time trying to write just one line of code correctly. Has it ever happened to you?

I had one of those forehead slapping moments a couple of days ago writing a program controlling a brushless DC motor. I’ll post the full program that came out later as a part of the description of an upcoming project. Just wanted to say that ironically, the Arduino code tidbit I want to describe here did not actually make it into the final version of the sketch! But I was surprised by having to spend so much time researching such a simple issue and finding it mentioned in neither official Arduino references nor elsewhere online.
Read the rest of this entry »

Serial OLED display and Arduino – a perfect combination

Demo application for Seetron GLO-416Y serial OLED display

Demo application for Seetron GLO-416Y serial OLED display

Every once in awhile your MCU, such as Arduino, needs to output some text and this is where you normally start bumping up against its limitations. Unless the MCU is exclusively serving a conventional LCD or other type of display capable of showing text, the display is pretty seriously taxing MCU’s available instructions cycles, memory as well as the number of output ports left after producing the useful work the device was designed for in the first place – move servos, scan inputs etc.

Enter the serial LCD Alternative – Seetron 4-line, 16-character Serial OLED Display which I recently had an opportunity to work with, thanks to Scott of Scott Edwards Electronics Inc., the manufacturer of this great device.
I will be using the display in a couple of projects I’m working on but I could not resist to check it out as soon as possible and that’s how the demo application you see below came about Read the rest of this entry »

Arduino Code Syntax Highlighting Plugin for your WordPress Blog

Arduino Brush for SyntaxHighlighter Plugin - sample of output

Arduino Brush for SyntaxHighlighter Plugin - sample of output

Ever since I published the first lines of Arduino code on this site I was not satisfied with the way it looked. I’ve been using various IDEs (Integrated Development Environment) and advanced text editors for programming for a very long time and have gotten quite used to the software marking various important parts of my programs with different colors and bold fonts. Indeed, Arduino’s own IDE does exact same thing although I have to admit I would love to change the way it marks things a little bit, whenever I get time for it. Nevertheless, Arduino IDE’s color-marked up code is very useful and makes for an easier read, especially for someone not familiar with its specialized functions such as digitalWrite() and such.
It this kind of color markup that I wanted for the code posted on this site. Enter SyntaxHighlighter Evolved WordPress plugin
Read the rest of this entry »

Arduino Nano and HP5082-7433 vintage 7-segment LED display

I have to admit, I created this 7-segment display project not because I needed a visual output for my next Arduino project but simply because I have a really soft spot for those whimsical big-eyed miniature LED displays. Some 20+ years ago I have hand-soldered hundreds of these little displays at one of my first jobs and seeing these displays come to life was always a big relief – it meant that the device was working. But I digress…
In any case, despite the fact that these HP5082-7433 LED displays are rather hard to come by these days, they are still available from online sources such as eBay and they are a great match for any MCU-based project that requires visual output, especially indoors. They pack 3 digits that are big enough to be seen from anywhere on the desk and yet fit inside a breadboard-friendly DIL-12 package (15.37mm x 6.35mm). They are very easy to drive due to the very small forward currents and the rest of this post is about how to do just that Read the rest of this entry »

Arduino Nano V3.0 – MCU Development Made Smaller

Arduino Nano V3.0 board and a dime coin - a size comparizon

Arduino Nano V3.0 board and a dime coin - a size comparizon

I recently had an opportunity to add a new tool to my MCU development toolbox – an Arduino Nano V3.0. Newark – an electronic components distributor – was kind enough to send this little board for review. Arduino Nano is but one of their range of Arduino boards and shields and its tiny size which does not sacrifice performance or capabilities made it especially attractive to me. I have several Arduino-based projects lined up that could use smaller size boards and, based on the results I got so far, the Nano will definitely be a part of one of them in the future.
Read the rest of this entry »

Driving a Bipolar Stepper Motor with Arduino and ULN2803AG

While I’m getting ready to rip open some 10+ broken DVD-RW drives coming to me from an eBay seller, I though it would be great to have a testbed for the bipolar stepper motors I will harvest from those.

I have a bunch of ULN2803AG Eight Darlington Transistor Arrays with Common Emitters left from past projects and these can sink (but unfortunately not source) peak loads of 600mA (500mA continuous) and are well suited for power application like driving small motors. However, there is a problem with 4-wire bipolar stepper motors: they don’t have the common points of windings wired to the outside which would be needed for providing the motors with power. See the ULN2003 datasheet for more information about the IC: ULN2801,2802,2803,2804 and 2805 Darlington Array datasheet
Read the rest of this entry »


Coming soon ...

Recent Comments
  • Ron: One correction. The original 7200-BN bulbs were 2.5 watts. I also have 3 of the vented replacements left for...
  • Ron: I have some of the upgraded 7200LED-BN bulbs that LOA sent me a year or so after I installed 2 4-puck strings in...
  • Chisight: You seem to be trying to implement a constant current supply but the LT1121 doesn’t have a constant...
  • Joshua Donar: Would you happen to know where the driver is for the CT10L drive is? Haven’t been able to locate...
  • Albert: Hello Thank you for sharing Tell me please meaning D4 zener. Meaning the role in this schematic. Looks like...
  • Will: I also aquired a scorbot 3 without a controller and in my spare time I have been developing a simple servo...
  • YamZYang: Hello, I learned alot from here. I have a question about the H-bridge motor driver, are there any special...
  • John: I’m trying to use this code to rotate a 14-pole, 12-slot BLDC motor. However, I’m getting some very...
  • admin: The signal is most definitely a square wave of varying width. Its resulting torque might look like a sine wave...
  • Andrei: Hi there, Great article. Really helps to explain the BLDC control. I was thinking of a way to control a BLDC...

Database Error

Please try again. If you come back to this error screen, report the error to an administrator.