I am doing some computations on Matlab and I need to send those values to an Arduino Leonardo through USB serial connection. I need to send 2 variables which can vary from -400 to +400. I'm saying their values because I was able to do this with small positive values (unsigned byte), but not larger and negative numbers. Please help! Thank you
Sign up
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
|
You cannot send larger values because byte only covers the range from 0-255. To send larger values, you can break your int variable into 2 byte variables. Here's an example:
Disclaimer: Syntax might not be entirely correct, since I have no MATLAB or Arduino near me when I typed this. But you should get the idea. ;-) Edit: On second thought, it might be easier to use a pointer.
Having said that, you will still have to take care of the endianness, if you use a different microcontroller. |
|||||||||||||||||||||
|
If you want to send your data directly from Matlab to the Arduino, you can try using the "Matlab Arduino Support package". It lets you read/write pins on the arduino directly from Matlab command line or script just like you would with a VERY LOW END Data Acquisition card. This has the advantage of removing the burden of managing the serial communication. I don't know how it handles large numbers though. http://www.mathworks.com/hardware-support/arduino-matlab.html?refresh=true |
|||
|