Problems with handling of incoming signal, Matlab
Problems with handling of incoming signal, Matlab
(OP)
Hello all and thank you for a great forum!
First of all, I am pretty new to Matlab so maybe my problem is easy.
My mission is to convert a signal that comes from a counter that counts up everytime I brake the way of light from an optical sensor. I want to measure rotation speed of a shaft and doing it by blocking a light sensor every half revolution and measure the time it took.
I get the upcounting signal in to matlab using the "timer" command that reads the signal every certain time unit and the thing I want to do is, (maybe I can do it in easier ways?) everytime I read the signal, I want to store it in a vector and directly after reset the counting signal to zero and measure the upcounting signal again so after each read I se how many turns it has been rotating on the certain time I'm measing on.
But I'm stuck on the signal counting upwards and I feel like I can't control it.
I have used this guide to get the signal into matlab, http://hackhole.blogspot.com/2007/11/interface-velleman-k8055-usb-board-with.html and my code so far goes like this:
__________
clc
clear all
close all
tim=timer;
set(tim, 'Period', 1);
set(tim,'ExecutionMode','fixedRate')
set(tim, 'TimerFcn', 'z1=counter(2)')
start(tim);[/code]
______________________
The function file counter.m looks like this:
_______________
[code]function z1=counter(u)
z1=calllib('K8055D', 'ReadCounter',u);
________
Where "calllib('K8055D', 'ReadCounter',u)" is the command to read the signal instantly and by the command "calllib('K8055D', 'ResetCounter',u)" resets the counter.
Any ideas are most welcome and maybe I can do this i a whole different way. I just want to measure and plot rpm from a up counting signal.
Thanks in advance!
First of all, I am pretty new to Matlab so maybe my problem is easy.
My mission is to convert a signal that comes from a counter that counts up everytime I brake the way of light from an optical sensor. I want to measure rotation speed of a shaft and doing it by blocking a light sensor every half revolution and measure the time it took.
I get the upcounting signal in to matlab using the "timer" command that reads the signal every certain time unit and the thing I want to do is, (maybe I can do it in easier ways?) everytime I read the signal, I want to store it in a vector and directly after reset the counting signal to zero and measure the upcounting signal again so after each read I se how many turns it has been rotating on the certain time I'm measing on.
But I'm stuck on the signal counting upwards and I feel like I can't control it.
I have used this guide to get the signal into matlab, http://hackhole.blogspot.com/2007/11/interface-velleman-k8055-usb-board-with.html and my code so far goes like this:
__________
clc
clear all
close all
tim=timer;
set(tim, 'Period', 1);
set(tim,'ExecutionMode','fixedRate')
set(tim, 'TimerFcn', 'z1=counter(2)')
start(tim);[/code]
______________________
The function file counter.m looks like this:
_______________
[code]function z1=counter(u)
z1=calllib('K8055D', 'ReadCounter',u);
________
Where "calllib('K8055D', 'ReadCounter',u)" is the command to read the signal instantly and by the command "calllib('K8055D', 'ResetCounter',u)" resets the counter.
Any ideas are most welcome and maybe I can do this i a whole different way. I just want to measure and plot rpm from a up counting signal.
Thanks in advance!