Sending one digit variable serially
이전 댓글 표시
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
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));
- 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.
- It converts the input into an unsigned 8-bit integer, where each bit in the binary representation represents a power of two.
카테고리
도움말 센터 및 File Exchange에서 Serial Port Interface에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!