Sending one digit variable serially

조회 수: 1 (최근 30일)
Leon Ellis
Leon Ellis 2021년 10월 9일
답변: Atithi 2023년 6월 22일
Good day, I'm trying to send the variable x through serial to my arduino. The only problem is, when i monitor my serialport, the value of x doesn't appear as it should and I need it to. This is my very simplified code:
clear;
x=6;
x=x+3;
x;
s=serialport("COM1",9600);
pause(1);
write(s,x,"char");
In my serial monitor, it only creates a bunch of spaces and I've tried all the different types of variable types, i.e "uint", "int", "single" etc availeble. However, as you can see the varaible x should be 9 and I want to send 9. When I use single, I get values on the ASCII table, however subtracting the right amount to achieve the '9' doesn't seem to work. Any help would be much appreciated!

답변 (1개)

Atithi
Atithi 2023년 6월 22일
There might be some error in write() function, it would be better if you send the values using "uint8" instead of using "char"
clear;
x=6;
x=x+3;
x;
s=serialport("COM1",9600);
pause(1);
write(s,uint8(x));
  1. uint8 is a MATLAB function that maps an input number or array onto the range of 0 to 255 using only 8 bits of data.
  2. It converts the input into an unsigned 8-bit integer, where each bit in the binary representation represents a power of two.

카테고리

Help CenterFile Exchange에서 Serial and USB Communication에 대해 자세히 알아보기

제품


릴리스

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by