I have my little project, basically I have my car clocks which hands are working on step motors (unfortunately).
What I want to achieve is pretty simple. I want backlights of hands to change after 3000rpm.
My idea is, to measure impulses on one of the coils of step motor within some milliseconds. And according to that, change colour of RGB LED after set number of impulses per set milliseconds.
Now, it's just theory. It will be my first project with Arduino (not first programming adventure).
Can someone tell me, if that is even possible to achieve with Arduino, I am missing something ? :o
If it is a stepper, you have to count the steps absolute, not steps per millisecond. Also, tapping only one of the coils is not enough because that doesn't tell you the direction.
Have a look at this Simple Stepper Code which illustrates how stepper motors are controlled. The angle depends on the number of steps taken. The time between step pulses just governs the speed at which the motor moves,
To know the RPM that your clock is pointing to you will need to be able to count the number of steps and their direction counting from the HOME or ZERO position. I think it would be next to impossible to do that just by sensing pulses sent to the motor coils - how would you detect the zero position?
uhm, you got the point.
"
I was thinking how else I could get RPM signal, but my car is "too smart" and it gets that signal or just impulses through CAN line, so that will be impossible to decode.
what if, there is a controller for step motors in the clocks ? should controller get some linear DC signal maybe ?
Unless it's all managed in ECU and all the clocks get it's just impulses.
I think you might be right. I should be able to get variable 12V from one of the sensors in engine management I will have a look in service manual.
Thanks for the hints.