×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

Designing Encoder/Tach Circuit for Digital Display and CPU Interface
3

Designing Encoder/Tach Circuit for Digital Display and CPU Interface

Designing Encoder/Tach Circuit for Digital Display and CPU Interface

(OP)
Mechanical guy tackling electronics here. I'm looking to design and fab a consumer grade personal-use wind turbine with portability and cost being main design constraints. My main goal is to have a charge controller box that displays voltage from the DC motor, as well as the motor shaft RPM, on the top of the controller box. I've also toyed around with the idea of having USB interface with the controller to record data onto a laptop for efficiency measurements for various blade designs. What's the most effective means of monitoring motor shaft speed and displaying it on a box some far distance away from the motor in the wind turbine nacelle, and having the option open to record that data onto a PC? Colleagues have suggested using resistors to calibrate the voltage to correspond with RPM, but I'm not sure that's the most effective/accurate means. Would an encoder be better for this task? Outside my territory here, so any and all advice is appreciated!

Deisng criteria:
Perm DC Brushless motor, .38" shaft diameter, 5" diametrical area behind the motor for monitoring equipment/cabling
Calculated RPM speeds 0-300 RPM (furling device will be used as braking method)

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

Seems like that's gross overkill. Do you actually need to know the instantaneous angular position to 1 degree? I think not. A simple Hall sensor ought to be sufficient for what you've stated.

TTFN
FAQ731-376: Eng-Tips.com Forum Policies

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

I just noticed the brushless motor as I clicked the submit button. Brushless motors have nice commutation signals that can be used as a tach output, which is how many controllers figure out how and when to commutate.

TTFN
FAQ731-376: Eng-Tips.com Forum Policies

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

A very simple speed pick-up is a little magnet plus a pick-up coil. Small, low-cost, robust and easy to integrate into your control system. Use reciprocal measurement instead of pulse counting.
Next step up is the SKF sensor bearing. Google Sensor Bearing GKE for a presentation that has been on the net for twelve years now. But still covers the basics.
Putting a full-blown encoder up a wind turbine that size is asking for trouble. But, it can be done - of course. But it will probably ruin the project cost-wise.

Gunnar Englund
www.gke.org
--------------------------------------
Half full - Half empty? I don't mind. It's what in it that counts.

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

Agree with IRstuff - since it's a BLDC it will already be detecting rotation. Look to tap into that signal before duplicating the hardware. If that's really not feasible (hard to imagine) then my experience doing the same on a induction motor based small wind turbine suggests that the cheapest way to go is to mount a magnet or two on the rotor and use a hall effect sensor. You can build one yourself, which is what we did originally, but because of labour costs and reliability concerns, we actually ended up going commercial. Unfortunately, they're not that cheap. Here's the one we selected:

http://www.electro-sensors.com/product_info.php/cP...

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

If you're trying to untangle blade efficiency as a parameter, then you'd *also* need to measure the wind speed.

You probably already knew that. smile

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

(OP)
Great suggestions, I would like the ability to monitor through the motor itself. Now the question is how one picks up on those signals when not providing power to the motor, and how to display/monitor it. Any recommended sources for parts or information that could guide me? Again appreciate it.

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

(OP)
VE1BLL yes we've selected and tested a small anemometer aft of the nacelle.

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

When you spin a permanent magnet brushless DC motor the raw output is AC. The frequency is directly proportional to the speed.

Another option that is quite cheap is to buy a $2.00 toy motor, a cheap milliammeter, a fixed resistor and a potentiometer. Arrange the toy motor to be driven by the main shaft. It will generate a voltage proportional to the RPM. Select a resistor value that limits the voltage to the meter to about 125% at full speed. Calibrate the reading with the potentiometer. You may use a digital milliammeter if you want digital displays.
We tried this solution on a printing press for a customer. It worked well but the customer didn't like the $2.00 toy motor, because it looked like a $2.00 toy motor. We bought a replacement $14.00 toy motor and he was happy.

Bill
--------------------
"Why not the best?"
Jimmy Carter

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

Quote (DanNo1221)

...when not providing power to the motor...

Isn't the 'motor' being used as a generator?

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

(OP)

Quote (waross)

the raw output is AC. The frequency is directly proportional to the speed.

Right, should have thought of that before! I have the pole pair number of the motor, and I understand it's just calibrating to count the number of sync cycles per rotation. I've seen programmable rate meters through some prelim searches. Is this a good street to go down, and if so any product recommendations?

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

.38" shaft diameter....... This is a toy already. But seriously you should investigate the Arduino UNO. These are cheap. Last one I picked up was $14 shipped from China (about $30 locally for one that is not a knockoff). The programmer is a free download so you can try before you buy and it is a nice easy higher level language that any neophyte can pick up. If you have a laptop with USB port then you have everything needed to program. I have one at my camp controlling the regulation of various voltage solar panels, a fridge, water heater, and pumps. This can monitor voltage, speed, log data and do PWM so you can control cut in and set power point no matter what the motor ends up being.

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

(OP)
Thanks OperaHouse. I'll definitely look into this, the Uno looks like everything we need. Still would like to put a voltage, power, and speed meter(s) on the controller box itself, for instantaneous readings.

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

(OP)
Well the volt/amp meter is easy by all means; showing RPM is still not getting through my skull.

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

You would have to do a conversion, obviously. 0V is clearly 0 rpm, and there must be a voltage that corresponds to 300 rpm.

TTFN
FAQ731-376: Eng-Tips.com Forum Policies

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

(OP)
I'm moving towards an LCD 16x2 shield for the UNO. Already stock to fit and easily programmable. It seems as simple writing an Anduino program counting the sync cycles from the motor, or converting volts to RPM itself, then displaying it on the LCD. Adding a scrolling line to the program with the voltage and amperage displayed, and we're in business.

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

Volts from the motor will not be a reliable indication of the speed unless the motor is completely unloaded.

Bill
--------------------
"Why not the best?"
Jimmy Carter

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

Also... Motor (blade) speed will not be a reliable indicator of anything unless the load is held constant. The OP did mention that he planned to also measure "voltage, power". The untangling of blade efficiency from all the other uncontroller parameters is going to be near impossible.

Beware the end result where the control system requires more watt-hours per day than is generated by the renewable energy supply itself. It's easy to avoid, so long as you're a tiny bit careful.

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

Anytime you are working with displays it can be a little tricky for a novice. It just takes a little time to get used to coding. The development system has no qualms about telling you that you are a moron over the smallest thing. Just start with simple things and keep adding on functions. The TOOLS section has a nice serial monitor. I build in multiple diagnostic screens and this really helps with understanding what happens. One downside is that plugging into the USB port resets the uno so stored data is lost. I use the PWM function and read out stored data as an analog signal to DVM. Not on my computer now, but I believe this has a pulsein function that will read out in time. Tie that into the handy MAP function and you get RPM. Google Arduino and any function you need and lots will come up. Visit fieldlines.com forum for a lot of blade info though they are slow to adapt any technology you can't use a hammer on. The following is some sample code from an art I wrote to give you a start.

Any type sensor may be used like a thermisistor. The conversion is very easy using the MAP function. Through a diagnostic debug screen, just get the reading at room temperature (82deg with 7090 count) and in an ice bath (32deg with 7930 count). The linear interpolation mapping actually extends beyond those two points. Now you have a temperature in understandable terms. Note how this works even though increasing temperatur creates a decreasing voltage.

TEMP = map(Ctemp, 7090, 7930, 82, 32);
// For five small signal diodes with 2.2K pullup to +5V

Battery voltage works in much the same way. A voltage divider of 300K from the battery with a 10K pot in series is tapped with a 87K resistor. This gives about 25mv per count for a 4:1 divider. A . 22uF capacitor at the input pin adds a little filtering and gives a stable reading. The multiplyinjg effect creates a number that approximates the battery voltage. Adjusting the pot finishes the calibration. Make sure in normal operation that the voltahe at the analog pin does not exceed 2.5V for safe operation when monitoring other voltages.


analogRead (AI0);
battery = battery - battery / 26;
// Sum the readings by subtracting one average reading

battery = battery + AI0; // Add latest A/D reading

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

(OP)
Thanks OperaHouse again. I have started writing some baseline sketches and look forward to using the Uno when it comes in, even though I'm starting at a crawl. VE1BLL, testing will be done in a homemade turbulent flow wind tunnel and in real-world environments, measuring the wind speed, voltage, etc. We'll be getting enough power too.

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

I wonder if you're over-complicating the design? The Arduino route certainly gives you a lot of flexibility, but as you're discovering, you need to do a fair bit of work yourself to decode the input and drive a display. Nothing unusual for a Elec/Comp Engineer but a bit of a steep curve for a first timer.

I propose that the volts->RPM route is highly error-prone because as others have said, the terminal volts will depend on load as well as RPM. The pulse count is a much more accurate way to go and isolates the measurement from your power conversion circuitry. Doing pulse count in Arduino is a lot trickier than voltage mapping. You can do it, but it'll take a little head scratching.

The good news is that pulse counting is exactly what a tacho does! If you buy any standard tacho (eg. an automotive tacho) it'll have a simple configuration for pulses per revolution. Then you just feed the pulse train in and it'll spit out RPM! There are analog and digital versions in every shape and size.

The question then is, how do you get a suitable pulse train out? I would first look to see if the signal from the Hall Effect sensor in the BLDC is available - that will be as close as you'll get to a ready-to-use signal. If that fails, then the voltage from one of the coils will do - you'll probably just have to threshold it to convert from the phase waveform to a pulse train. A simple Schmitt trigger ought to do the trick. Just be careful to consider the range of voltages that the generator will produce - a high input impedance Zener circuit will help clip the larger voltages.

And finally, to get motor volts, a voltmeter will do. Again, the display comes for free!

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

(OP)
LiteYear the tacho is definitely a more simple solution and it has been brought up. Like you said, the Arduino route may be easy for electrical/comp guys, but I'm considering this a good way broaden my own horizons away from composites and solid modeling! The display may be a problem at first, but I'm am heavily considering purchasing a $10 preconfigured LCD shield that is HD44780 compatible and uses the Anduino LiquidCrystal library. I'm not sure the program will be as easy as Anduino and Sparkfun claim it will be, but I'll try anyway. Anyone try this method yet?

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

It must have been 30 years ago I was on a plane back from europe. A French woman got in this heated argument with a passenger. All at once she just ended it saying, "You will die stupid." At the time I thought this was the lamest insult I ever heard. I still think about that comment every day. There is no worse fate. We all have to learn something every day or we will die stupid. We didn't choose to go to the moon because it was easy.

I haven't used it but pulsein is likely to be a little unstable. Average a number of them as I have shown and it should be a repeatable number. Afrer all you are likely only interested in the 200-300rpm range. I would transformer to couple one of the phases and detect any positive signal. This would just be a simple LM339 with the output tied to the UNO pin and a 1K pullup to 5V. Feed the input signal through a 300K resistor to one of the inputs of the 339. Limit the voltage by back to back diodes to common where the other input is tied. The rest of the 339 will find other uses in this project.

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

(OP)

Quote (OperaHouse)

This would just be a simple LM339 with the output tied to the UNO pin and a 1K pullup to 5V. Feed the input signal through a 300K resistor to one of the inputs of the 339. Limit the voltage by back to back diodes to common where the other input is tied. The rest of the 339 will find other uses in this project.

Have some questions:
Are you saying a 1K pullup to the LM339 Vcc? Also, not understanding what you meant to do with the diodes.

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

Do not assume that VCC of a LM339 will be or must be 5V.
They are often used with +/- 15V supplies.
The open collector output makes them useful for interfacing between analog and digital circuits.

This
http://my.ece.ucsb.edu/bobsclass/2C/tutorials/App%...
should get you started on understanding some of the things the 339 can do.

Mike Halloran
Pembroke Pines, FL, USA

RE: Designing Encoder/Tach Circuit for Digital Display and CPU Interface

Power the 339 from the common and 5V of the UNO. One of the input pins is connected to common. It really doesn't matter which input. The other input has two diodes in parallel, facing in opposite directions. This limits the maximum voltage to + - .6V. the 300K limits the current by providing a voltage drop. The trandformer must be an isolation type. A small wall wart 120 to 9-16V would be ok. Hope you will post your results on fieldlines.com

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources