Go Down

Topic: Control a universal motor with Arduino (Read 17334 times) previous topic - next topic



Let me know if Arduino UNO is able to control a universal washing machine motor 230 VAC. His scheme is as below.


Not necessary to control electronic motor speed. If anyone knows or can bring ideas, I'll try to make it happen.

A greeting.


Yes, but note that what you have there is not a schematic but a block diagram. You will need parts to isolate the controller from the mains, opto isolators and the like.



I have a layout into blocks and each block wanna know your electronics to control AC universal motor with triac from "Arduino UNO".

I found some schemes. Not if they are the right ones. For now I show these schemes.

Scheme change motor rotation.

Wiring diagram motor control with triac.

I want to find the best electrical schematics for Arduino. For now I need to find the electric motor tachometer schem washer.

They can provide more information. When I have a lot of relevant information, the actual circuit will ride with Arduino and show photos and videos of the project.

Thank you very much.


If you just want to switch the motor on/off, the safest way is to buy a "powerswitchtail".  You can also use an opto-isolated solid state relay, they're a little plastic brick about 30x40x10mm and contain all of the circuitry in your last schematic.

The first diagram you posted is for speed control through variable phase switching.  You don't want to try that at this stage, given the questions you're asking.


Apr 11, 2014, 01:06 am Last Edit: Apr 11, 2014, 02:15 am by Metaconta Reason: 1
Hello camepones:

1) I want to control the speed of the motor with Arduino.
2) I want to turn off and on the motor.
3) I want the motor to be able to change direction. For example, every 15 seconds the engine is running 3 seconds stops and changes direction for 15 seconds again, so long as I want.



I want to turn off and on the engine.  

On this forum all PURELY ELECTRICAL devices of this type ARE CALLED MOTORS , NOT ENGINES.
Please refer to it as a  motor in all future posts.


Apr 11, 2014, 02:18 am Last Edit: Apr 11, 2014, 04:33 am by raschemmel Reason: 1
I want the engine to be able to change direction

This isn't going to happen with an AC motor. In case you do not know the difference between AC and DC, with DC , the current flows in one direction only. Changing direction is as simple as reversing the polarity of the leads to the motor with a relay or  H BRIDGE. With AC, the current flows in the positive direction during the positive phase (first 180 degrees) and in the opposite direction during the second half of the phase so it is flowing in both directions during every phase. There is no other way to tell you that what you are asking is impossible with an AC motor. If you don't know that you probably shouldn't be working on this kind of equipment. I suggest you find someone else to manage this project for you. It is dangerous for you to be working around such equipment without even the most basic knowledge of how it works. You are going to get yourself or someone else hurt.


Apr 11, 2014, 05:43 am Last Edit: Apr 11, 2014, 05:54 am by polyglot Reason: 1

Hello camepones:

1) I want to control the speed of the motor with Arduino.
2) I want to turn off and on the motor.
3) I want the motor to be able to change direction. For example, every 15 seconds the engine is running 3 seconds stops and changes direction for 15 seconds again, so long as I want.


OK, a (two-terminal) universal motor (e.g. from a vacuum cleaner) is a bad choice if you want to reverse it; reversing requires that you change the relative polarity of the stator and rotor windings, and they're hardwired internally for a particular direction.  You could theoretically disassemble your motor and break out separate connections for the two sets of windings, which means you could reverse the direction by running one winding from an H-bridge, or adding a DPDT relay to reverse the polarity.  That's a lot of mechanical work, but if you get a washing machine motor, the two windings generally have separately accessible terminals, in other words it's a 4-terminal universal motor and that gives you a lot of configuration options.  If you can get a 4-terminal motor, you can reverse it easily.

Again, digital speed control of one of these from an AC supply is beyond your current capabilities.  No offense intended, but the questions you're asking now imply that you won't understand the explanations required to implement speed control from a mains AC supply safely.

However if the motor is a lower-voltage type or if you don't need a lot of speed from it, you could run it from a lower voltage DC supply without causing any serious electrocution risks.  With a DC supply, speed control is easy: you just chop the supply voltage with PWM and a big FET.  Arduinos support PWM with the analogWrite() function, so that's easy.

Do you have or can you get a 4-terminal (washing-machine style) motor?  If so, we can show you a simple schematic to reverse one winding with a relay to implement reversal.  Probably much easier for you than implementing an H-bridge.


Some motors have 3 windings: stator, rotor and start, plus an inertial speed sensor.  They are also reversible by changing the start-winding polarity, which is what the very first schematic you posted does.  It's probably more complicated than you want though.



This is the universal motor at 230 VAC.


I made an outline checking stepper motor wiring.

My washing machine has a ATmega32L8AU. Controls the tractor speed motor when you spin. If this aVR can do, Arduino UNO can too. To accomplish this project, I need to know the necessary electronics.

It is what it is AC and DC. The AVR microcontroller board or "Arduino UNO" have to use an optocoupler MOC3041 as to control the motor.


Someone made a simple example with a PIC16F84A. Just change the motor rotation, but not speed centrifugation.

For now I want to collect information on the spinner motor and tachometer-controlled speed.

Thanks. ;)



I have found that if a scheme operates regular motor speed in eight different levels with Arduino.

I had not thought of this idea.


Any other information is welcome.


That motor is easily reversible, using the relay schematic you posted way up top.  Use a DPDT relay wired as follows:
- C1 to rotor 1
- C2 to rotor 2
- NO1 to NC2 to stator 1
- NC1 to NO2 to stator 2

If you then apply power to the stator, you will have windings in parallel and the direction of travel will depend on the relay.  only change the relay while the motor is stationary.
You can use another relay to switch the motor on/off, or use the schematic you posted above with the moc304x and BT137.  However I still recommend the use of an integrated opto isolated solid state relay because it's much lower risk.

If you want speed control, you need to:
- use something similar to the above BT137 circuit but
- replace the moc304x with a moc3020, and
- design and test a snubber that matches the motor;
- build an opto-isolated zero-crossing detector, and
- write some clever code to turn the triac on at the right time within each cycle.

Just get the motor turning on/off/reversing first.


Thanks for the information.

Following this table, I just need for my washer 4 levels of speed.

The only speed I want to spin the washer.

Thanks for the help.


That table doesn't appear to have anything to do with motor control, it's a table of resistances, probably something to do with the inputs to another controller.


Apr 12, 2014, 12:44 am Last Edit: Apr 12, 2014, 01:39 am by Metaconta Reason: 1

The table above is a combination of resistance 8 levels that controls Arduino. This adjusts the motor speed.

In my case I only need 4 levels of speed to the motor with 2 optocouplers.

Motor speed is used only at the end of the laundry, after the motor speed used in the spin cycle.


Go Up