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?
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.
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?
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:
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!?
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!?
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.