Salve a tutti,
non riesco ad interfacciare in scrittura l'Arduino Mega dal MATLAB.
Sono riuscito subito a leggere i dati dell'Arduino con il seguente codice:
codice MATLAB:
s = serial('COM5, 'BaudRate', 19200);
fopen(s)
fprintf(s, 'hello arduino!');
end
fclose(s);
codice Arduino:
byte input = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available())
{
input = Serial.read();
Serial.print(input);
}
}
Adesso vorrei utilizzare il MATLAB non solo in lettura dall'Arduino ma anche in scrittura.
Ho provato con il seguente codice ma non funziona:
codice Arduino:
byte input = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available())
{
input = Serial.read();
Serial.print(input);
}
}
codice MATLAB:
function varargout = test(varargin)
s = serial('COM5');
set(s,'BaudRate',9600);
set(s,'DataBits',8);
set(s,'StopBits',1);
set(s,'Parity','none');
fopen(s);
fwrite(s, 5,'uint8','async');
fread(s)
fclose(s);
delete(s);
clear s;
end
la prima volta che ho provato mi ha dato questo output:
Warning: The specified amount of data was not returned within the Timeout period.
ans = Empty matrix: 1-by-0
e le volte successive soltanto:
Warning: The specified amount of data was not returned within the Timeout period.
come posso fare? qualche suggerimento?
grazie a chi risponderà.