3 Wire Servo to 2 Wire Servo, Bluetooth HM-10, Arduino Uno, Blynk Project Help!!

Hello,

This is my first time posting here so hopefully I can fully explain my project, problems, and goals.

I am creating a vehicle that will operate with 4 servos. I need 3 of these servos to turn continuously 360 degrees. The other one I am going to leave as is because it will function just fine by only rotating 180 degrees. I have already gotten inside one of the servos I need for 360 degree motion and have taken out the encoder so that it can now spin 360 degrees. The problem is that my signal wire has also gone by the wayside and now I am working with simply a hot and ground wire, so it is essentially a DC motor at this point.

I'm trying to control the direction that the 360 degree motor spins with an app on my phone (Blynk.) I am also using a HM-10 Bluetooth module to communicate between the Arduino Uno board and my phone. This part works fine, and I am able to completely control my 3 wire servo because it still has the signal wire and encoder inside so its position is known.

Although my 2 wire servo may not know its position without the encoder, I would ideally like to press a button on the app and have it so that my 2 wire servo will spins without being limited by position.

I can control a light on the Arduino Uno board by associating with a pin from my phone, why can I not do the same with my servo? In my mind I am thinking that I should be able to set it to either 0 (not on) or 1 (on and continuously rotating.) For some reason I can't do this? Having a motor shield is not an option at this point and I need to do this with just a simple servo to Arduino pinned connection.

Does the encoder really matter that much for what I am doing? Is there a way to have it able to rotate 360 degrees while still having the third wire there? Any help would be greatly appreciated. Thanks!

The electronics in the servo are the motor controller.
With the ability the receive instructions as a servo and make the motor spin forwards or backwards.
If you want to drive the motor directly you will need a motor controller.
You cannot power the servo motor directly from the arduino pin.

Why did you remove the controller?

The motor controller was taken out so that it can rotate 360 degrees. It was limited to 180 degrees before. I feel like it should be as simple as a light bulb. You can turn it on by pressing a button and it will spin. Then when no power is being supplied the servo/light bulb stops spinning/turns off.

Google for servo 360 conversion.

But it sounds like it is too late for your servos.

You still need something to drive the motors. Do you want forward and backward?

wcirvin:
The motor controller was taken out so that it can rotate 360 degrees.

You don't take out the motor controller - that's the part you spent good money to acquire.

You need to remove the physical block that prevents continuous rotation and you need to replace the position sensing potentiometer with a couple of fixed resistors. There are lots of tutorials on the internet that show you how.

...R

I took a servo and basically converted it to a DC motor by taking out the brains of it essentially. I think that part is okay, now I am unable to control them at all from my phone. I have an Adafruit v2.3 motorshield and have connected my dc motors/servos to that. Using bluetooth I have been able to connect via my phone and control a 3 wire servos position. Now I would like to control the direction at which my dc motor/servo spins. So far I have not had success. Anybody have any suggestions as to why this would be happening?

OK, you'removed the smarts from the servo.

For one direction control & speed, you need to use PWM with a MOSFET or motor-driver shield.
For bi-directional control & speed, you need use PWM with an H-bridge or H-bridge shield driven with PWM

Remember (in general) any motors cannot be driven directly from the Arduino I/O pins.

They should have a separate +V, otherwise, you could overdrive the on-board voltage regulator on the Arduino if the motor is stalled or pushing too much load.
(The internal servo PCB previously addressed that.)

Must have common GND connections, or you can toast the Arduino CPU chip internals

I need bi-directional control and speed. For this reason I am using an Adafruit v2.3 motorshield. I have my two wires plugged into the M1 port on the motorshield. I only have one motor connected right now for testing so I know I'm not going to fry the board. Still, I'm not sure why even the dc motor test code provided by Adafruit doesn't even work.

Ok,
Wiring diagram - readable please!
And CODE please (inline with </> code tags)

You do realise that motor shield uses I2C to communicate, so you don't use PWM on the Arduino.
Maybe worth checking the Adafruit example code.

Also check what voltage the motors require (probably 5-6V), which will need to be fed into your shield.
(Preferably not from the Arduino +5V as noted above)

Hi,
Have you written code, JUST to control the motors, forget Bluetooth and the other servo.
JUST to run the motors?

Does Adafruit supply a tutorial, sample code for their motor shield.?
Have you tried it?

Tom... :slight_smile:

lastchancename:
OK, you'removed the smarts from the servo.

For one direction control & speed, you need to use PWM with a MOSFET or motor-driver shield.
For bi-directional control & speed, you need use PWM with an H-bridge or H-bridge shield driven with PWM

@wcirvin All the stuff in blue is in the "smarts" in the servo - the part that you took out.

I reckon, if you can't re-install the "smarts" in the servo you have already got then the most practical solution (time, money, convenience) is to buy another servo and properly convert it to continuous rotation.

...R