Help needed to figure out how to use servo/stepper motor to control position

Hi guys!

I've been researching on the internet about how servo/stepper works and their differences, but I still can't quite finalize what I need in my project.

So I have this car part that controls the exhaust flow using a mechanical flap/valve, 0 degree = flap closed, 90 degree = flap open. The part's description says this motor has 3 pins, power, ground, signal (PWM). According to the documentation, its operating frequency is 100 MHZ, at 10% duty cycle it opens (90 degree), at 90% duty cycle it closes (0 degree), no intermediate positions.

What would you guys suggest to try to make this part works? The frequency is too high... Not ideal to have a function generator sitting in the car just to make the valve work. Is it possible to use something lower to make it work?

Please let me know your ideas!

Much appreciated!

Joey

That 100MHz is probably the maximum limit. Try it with an Arduino PWM pin. It will probably work.

If there's no intermediate positions, then why not just send it ON and OFF?

MorganS:
That 100MHz is probably the maximum limit. Try it with an Arduino PWM pin. It will probably work.

If there's no intermediate positions, then why not just send it ON and OFF?

Thanks for your input!

ON and OFF would be a job for a solenoid but this application requires turning? I am too noob to say anything about this.

I actually do not own any Arduino products. Lets say a lower PWM frequency works, what's the minimum buy list to test this out? Please give me a hand!

Thanks

Joey

joey911:
Thanks for your input!

ON and OFF would be a job for a solenoid but this application requires turning? I am too noob to say anything about this.

I actually do not own any Arduino products. Lets say a lower PWM frequency works, what's the minimum buy list to test this out? Please give me a hand!

Thanks

Joey

A regular solenoid with a pivoting mount and a lever on your flap would work. Then there are always rotary solenoids.

Paul

Paul_KD7HB:
A regular solenoid with a pivoting mount and a lever on your flap would work. Then there are always rotary solenoids.

Paul

In the 1000º exhaust? That's difficult to make at home.

The minimum equipment would be an UNO and something to allow it to control 12V, such as a motor shield or even a MOSFET.

Paul_KD7HB:
A regular solenoid with a pivoting mount and a lever on your flap would work. Then there are always rotary solenoids.

Paul

If I end up needing a DIY, I would definitely go for a voltage flow direction controlled one! Supposing that I don't need a driver that way?

MorganS:
In the 1000º exhaust? That's difficult to make at home.

The minimum equipment would be an UNO and something to allow it to control 12V, such as a motor shield or even a MOSFET.

Would Arduino Gemma only works for trying to move the PART I was talking about in my first thread? https://store-usa.arduino.cc/products/abx00001

My plan is to make the OEM part works, if not, I have to build something. This part is mounted at the rear muffler area, colder than exhaust manifold, not sure by how much.

Yes, the Gemma has two PWM outputs. Not at 100MHz though. More like 450Hz.

MorganS:
Yes, the Gemma has two PWM outputs. Not at 100MHz though. More like 450Hz.

But like you said, it might be 100MHZ maximum? I will give it a shot.

I own 0 Arduino product. I will go ahead and get Gemma and give it a shot, do I need anything else?

So I ordered Adafruit Trinket 5V. I will see if the PART can recognize the signal, if not, I will step up with a higher frequency board.

So do you have a motor driver or MOSFET which can handle 12V? Hooking 12V to a Trinket's I/O pins will kill it.

Usually the Uno is the best starter board.

Hi,

So I have this car part that controls the exhaust flow using a mechanical flap/valve, 0 degree = flap closed, 90 degree = flap open. The part's description says this motor has 3 pins, power, ground, signal (PWM). According to the documentation, its operating frequency is 100 MHZ, at 10% duty cycle it opens (90 degree), at 90% duty cycle it closes (0 degree), no intermediate positions.

Hmm. 100MHz, sounds fishy, can you tell us the part number or a link to data sheet of the part?

Thanks.. Tom... :slight_smile:

MorganS:
So do you have a motor driver or MOSFET which can handle 12V? Hooking 12V to a Trinket's I/O pins will kill it.

Usuall the Uno is the best starter board.

I saw it on Adafuirt's Trinket page that input can be 6 to 12 V lol and I kinda already did try it haha. Now I need some programming advice?!

Okay so here's what I did:

  1. I loaded this:

/////////////////////////////////////////////////////////////////////
int led = 1; // pulse 'digital' pin 1 - AKA the built in red LED

// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
for (int i=0; i<256; i++) {
analogWrite(led, i); // PWM the LED from 0 to 255 (max)
delay(5);
}
for (int i=255; i>=0; i--) {
analogWrite(led, i); // PWM the LED from 255 (max) to 0
delay(5);
}
}

//////////////////////////////////////////////////////////////////////

to my 5V 16MHZ Trinket. Hooked it to a 12V 3A source. Didn't burn it, luckily. With the PART being powered properly, I connected the pin #1 output to the PART's signal input.

Amazingly, the PART makes a long beep and moved, but only half way... 45 degrees. At least I know the PARTs still working!!

But when I try to send a flat PWM signal, it doesn't give a crap. Didn't even beep.

So i was wondering, is it possible that this tiny board can achieve my goal!?

Thanks! So excited!

Joey

TomGeorge:
Hi,Hmm. 100MHz, sounds fishy, can you tell us the part number or a link to data sheet of the part?

Thanks.. Tom... :slight_smile:

I will take a picture of it when I have it, the documentation's not with me atm.

But it is the exhaust muffler valve drive from BMW F8X.

Its definitely not 100MHz, its a flap actuator, not a VHF transmitter!!

MarkT:
Its definitely not 100MHz, its a flap actuator, not a VHF transmitter!!

But it might need 12V PWM though? Cause The Adafruit Trinket 5V I used only able to move it half way for ONE TIME, now it only reacts by a 1 second beep and some gear sound but it doesnt move anymore.

Any 12V PWM board out there?

EDIT:

Seems like Arduino Motor Shield Rev3 OR Adafruit Motor/Stepper/Servo Shield will do the job!?

joey911:
Seems like Arduino Motor Shield Rev3 OR Adafruit Motor/Stepper/Servo Shield will do the job!?

Yes.

MorganS:
Yes.

So I got my setup like this:

Arduino UNO Rev3
12v 3A supply

Power supply (12v 3A) to motor + and Vin on board.
External ground to motor - and GND on board.
Wire from pin 9~ to motor signal input.

Tried varies codes, but all of which could only make it beeped once and I could hear some gear sound, but unmoved.

Tried Servo library's write(), writeMicroseconds(), tried analogWrite(), only beep.

Tried to use power and ground from actual car battery, only beep.

What am I missing here?

Which motor shield do you have?

I hope you haven't connected the Arduino pin directly to the 12V device. That might destroy the Arduino.

MorganS:
Which motor shield do you have?

I hope you haven't connected the Arduino pin directly to the 12V device. That might destroy the Arduino.

ugh yes I did.... via VIN. It is still working cause I can still upload program.

I didn't use it with the shield yet, not quite sure if the shield can power "12V Servo", but it definitely says "12V Motor". I got the adafruit motor shield.