05-16-2014 06:54 AM
Okei now i can read pulsen in 1 sec and multply that answer with 60 and i get the rpm. but when the motor spins over 5000 rpm it gets very unstable. It sems that reading time betwen pulses is the way to go. But im not sure on how to do that and what functions to use. It seams many use the daq measurement to do this but i dont have that functions in labview. (Or i cant find it)
05-16-2014 07:25 AM
I don't think your logic is completelly right but it looks like a good start. So I can see you are only looking at the rising edges which should be fine. If you have a rising edge you increment your number of pulses seen which should be the number of revolutions. You are reading this digital at a rate of 1KHz. You then have some very rub goldberg code to reset the counter and calculate the RPM after a loop count remainder greater then 498 which will be 499 which will be a total of 500 iterations. This will mean you will have the number of rising edges seen in 500ms and multiply by 180. This isn't right. If I saw one rotation in 500ms that is 2 in 1 second, which is 120 rotations in a minute or 120RPM. By your code you would have 180RPM. Change the 180 to 120 and you'll get much better readings. If this still isn't good enough try lenthening the time so maybe read the number of pulses in 1 second, or 2.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
05-16-2014 07:51 AM
Yes sorry, i was trying to read every 0,025 sec so therefore it was 180. I just forgot to change the value back.. It works alright now. so now im trying to combine it with a PID regulator, so i can just plot in the RPM and motor wil go there:)