fscanf reads 0 from Arduino (connected to force/ pressure sensor) - despite non 0 values seen in Ardunio serial monitor
3 views (last 30 days)
Show older comments
Hello everyone,
I am trying to read out from a force/ pressure sensor that is connected to an Ardunio Micro (connected by USB) into MATLAB.
When I use the Ardunio software and look in the serial monitor, pressing the force sensor shows values going up and down as they should:
However, when I try and read using matlab (using various read/ scan functions) I get 0's (even when pressing as above)
I tried changing the format of the output I was expecting to %s %s %s %d etc, but this did not work (and I think is not the correct format anyway). I tried various other things commented out below:
delete(instrfindall);
seriallist;
s1 = serial("/dev/tty.usbmodem1421");
s1.BaudRate = 9600; % rate of communication of serial monitor with
% s1.Terminator = 'CR/LF'; % might I need to change the terminator? It is
% default set as 'LF' (line feed?)
fopen(s1);
s1.status;
% Do I need to send it something?
% fprintf(s1, 'XXX');
for l = 1:50
pause(.1)
fscanf(s1)
% no idea what the difference between these types of scan are
% fgetl(s1)
% fread(s1)
% fgets(s1)
% cant work out how to specify the output properly
% fscanf(s1, '%s %s %s %d')
% fscanf(s1, '%s %d')
% fscanf(s1, 'Analog reading = %d')
end
fclose(s1)
delete(s1)
clear s1
clear all
As you can see I am a total novice... Any help would be very very very much appreciated, as I am supposed to have this up and running by Monday :s
Thank you all!
This is my Ardunio code in case helpful
0 Comments
Answers (2)
Vishnu Vardhan
on 15 Jun 2019
Hi Harriet,
I think you haven't tried using the function readVoltage function available in MATLAB. Why don't you give it a try.
0 Comments
See Also
Categories
Find more on MATLAB Support Package for Arduino Hardware in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!