We can use the speed encoder wheel and U-shape speed measurement breakout with Arduino to measure the motor speed. In this tutorial, we will detail the steps taken.
We connect G of the breakout to GND of Arduino, V of the breakout to 5V of Arduino, and S of the breakout to digital 2 or 3 (this is very important as the interruption uses these two) of the Arduino.
If we insert an object in the U-shape, the LED on the breakout will turn on. If we remove it, the LED will turn off.
The sample code is as following:
/************************************************************************
* Motor speed measurement
* use millis()function to measure time in unit of ms
* Use interrupt function, when the signal level changes, it will count once
* Use 1:48 reduced speed motor, 20 holes encoder wheel as example
* Divide the val by 40, and we can get the number of turns
* Divied by the current time, as the time is in unit of ms, divided again by 60000 to get minute
* Now we will obtain the speed in unit of turns/minute
* BY YFROBOT
************************************************************************/
//Connect the signal to digital pin 2
int U_Pin = 2;
float Val = 0;
float time; /
float Speed;
void setup(){
Serial.begin(9600);
attachInterrupt(0,count,CHANGE);
}
void loop(){
time = millis();
Speed = (Val/40)/(time/60000) ;
Serial.println(Speed);
}
void count(){
Val += 1;
}

Leave a Reply
You must be logged in to post a comment.