Hello, I'm trying to read two voltage using the fscanf function to read two voltages in arduino which display like the following using the arduino monitor serial I get: 1022.00,1022.00 1023.00,1022.00 1023.00,1022.00 etc.. Yet when I try to read the two values I use the following code: a=fscanf(s,'%d,%d'); v1(i)=a(1)*5/1024; % 5/1024 is a constant v2(i)=a(2)*5/1024; % 5/1024 is a constant
but for a(2) in the v2(i) line It mentions me that: ??? Attempted to access a(2); index out of bounds because numel(a)=1. giving me the Idea that a is only taking one of the two voltages, so I was wondering how to make the a take the two values?

 採用された回答

Geoff
Geoff 2012 年 6 月 5 日

0 投票

Probably because you're asking it to read integers (%d), not floats (%f). Make that change.
Also, beware of MatLab's fscanf behaviour. If you only want to read one pair of numbers, you have to do:
fscanf(s, '%f,%f', 1);

1 件のコメント

Tomas
Tomas 2012 年 6 月 5 日
oh you are right about the float situation now it seems to work fine and it graphs well! thanks a lot!

サインインしてコメントする。

その他の回答 (1 件)

Edmond
Edmond 2013 年 2 月 1 日

0 投票

Hi, I have the same problem now. It's the first time I am using arduino and Matlab together. I change the integer for floats and there is no response. Sometimes the program is running but giving the wrong values and something not.
--->Attempted to access a(2); index out of bounds because numel(a)=1.
Error in Morduino (line 41) v2(i)=a(2)*5/1024;

カテゴリ

ヘルプ センター および File ExchangeMATLAB Support Package for Arduino Hardware についてさらに検索

質問済み:

2012 年 6 月 5 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by