Arduino Forum

Topics => Science and Measurement => Topic started by: Eyedeal on Feb 11, 2013, 03:03 pm

Title: Actuating Lens Project
Post by: Eyedeal on Feb 11, 2013, 03:03 pm

I am new at using Arduino and I need some help with this. I am doing a project involving measuring the focus of an object through a custom built lens. I have a simulink block diagram that gives me a graph on the measure of focus in real time. I would like to send this data to Arduino so that I can analyse the voltage needed for the best focus.

I have used the instrument control toolbox to send this serial data, however it keeps coming up with a timeout error/terminator. Alternatively I tried this code in the command box:
for i = 1:50
  fwrite(s, i, 'uint8', 'sync');
  rx(i) = fread(s, 1);

This gave an integer error saying I needed a postitive integer.

Can someone help with a code or point me in the right direction please?
Thank you.
Title: Re: Actuating Lens Project
Post by: robtillaart on Feb 11, 2013, 08:40 pm
You read a byte but do not test if there is one available. The common reaction of the read function is to return -1.

One solution is to read from serial until you do not have a -1.

Title: Re: Actuating Lens Project
Post by: michinyon on Feb 23, 2013, 05:15 am
"uint" means unsigned int which means a positive integer.  A "uint8"  is a byte with an unsigned integer in it,
which means that the byte can have the range of values 0 to 255.

Whereas a signed  single-byte integer would have a value in the range -128 to +127