I need to make a zero speed sensor controller i.e. using proximity sensor to judge rotation of a shaft or motor, and cause a trip when rotation is slower or zero. It s outputs connected to a relay which is NO. When motor is started it outputs high signal to close the relay, after a delay of 2 sec, it checks if the speed is ok or within range it will keep the output high keeping relay contacts close. When speed/rotation is less then it outputs no signal, opening the relay contacts causing the motor to stop or trip.
I am developing a system to measure the speed of a small DC motor using a QRE1113 reflective optical detector. It is very simple to interface it to an Arduino. Sparkfun makes a breakout board for them - but that may not be necessary.
You can use the Arduino to measure the time between outputs from the detector and if the time is too long you can switch the relay.
Thnks a good idea, only measuring time intervel between each pulse of the signal. I can make the circuit but really suck at programming language and this is my first time using arduino, What function should be used to measure the time intervals in program.
pulseIn() s good at measuring time intervals. It is what we call a "blocking" function, because it stops your whole program to wait for the pulse. Since you don't seen to want to do anything else, then this may be the right function for you.
I am using an interrupt to record the time (the value of micros() ) for each pulse. I have beem discussing it in this Thread (http://forum.arduino.cc/index.php?topic=395374.0). However I have distracted by other things for a while so it is not finished yet.
Sounds like a speed switch, common in industrial controls, Google "speed switch".
Im planning to run two same program simltanously for controlling and tripping two different motors. so i cant use PulseIn() command.