Hola!
Estoy intentando conectar Arduino con Matlab mediante una conexión TCP/IP, para ello estoy usando una Ethernet Shield del tipo ENC28J60.
Como las librerías estandar Ethernet que trae Arduino con sirven para este módulo, estoy usando estas:
-Ethercard.h
-enc28j60.h
Sacadas de aquí http://jeelabs.net/pub/docs/ethercard/files.html
El código en Matlab es este:
t = tcpip('192.168.1.15', 80); %Creo una conexión tcp/ip con la ip asignada al arduino y puerto 80
fopen(t); %Abro la conexión
pause(1); %Espero un seg para se estabilice el Arduino (no necesario pero recomendable)
while (get(t, 'BytesAvailable') > 0) %Este bucle debería recibir datos del Arduino
t.BytesAvailable
DataReceived = fscanf(t)
end
Y el código para Arduino es el ejemplo de "Hello World"
#include "etherShield.h"
#include "ETHER_28J60.h"
static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};
static uint8_t ip[4] = {192, 168, 1, 15};
static uint16_t port = 80; // Use port 80 - the standard for HTTP
ETHER_28J60 ethernet;
void setup()
{
ethernet.setup(mac, ip, port);
}
void loop()
{
if (ethernet.serviceRequest())
{
ethernet.print("<H1>Hello World</H1>");
ethernet.respond();
}
delay(100);
}
Se conectan correctamente pero no consigo enviar ni recibir datos entre ellos, en Matlab usando "fscanf" es como si el buffer estuviese vacío, y en Arduino con estas librerías no tengo ninguna función para recibir datos o no la consigo encontrar.
¿alguna idea?
Gracias de antemano.