hola foreros, estoy tratando por ahora de enviar un dato desde matlab hacia arduino.... lo que estoy tratando de hacer es enviar
el caracter s y luego leerlo con arduino y que encienda un led indicando que ha recibido el dato, el
problema es que no consigo esto, y no se donde puedo tener el problema, les dejo los codigos
en matlab
clc;
clear all;
clc; disp('BEGIN')
SerAr = serial('COM3')
set(SerAr,'BaudRate',9600);
set(SerAr,'DataBits',8);
set(SerAr,'Parity','none');
set(SerAr,'StopBits',1);
set(SerAr,'FlowControl','none');
fopen(SerAr)
fprintf(SerAr,'%s','s') %Envia caracter S
pause(0.2);
fclose(SerAr);
delete(SerAr)
clear SerAr
disp('STOP')
El siguiente codigo en rojo es lo que me arroja en el command window
BEGIN
Serial Port Object : Serial-COM3
Communication Settings
Port: COM3
BaudRate: 9600
Terminator: 'LF'
Communication State
Status: closed
RecordStatus: off
Read/Write State
TransferStatus: idle
BytesAvailable: 0
ValuesReceived: 0
ValuesSent: 0
Finalmente el codigo para Arduino
int ledPin=13;
int DATO = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT); //configura el pin del LED como salida
}
void loop() {
if (Serial.available() > 0) {
DATO = Serial.read(); // lee el byte de entrada:
// muestra lo que tiene:
Serial.print("He recibido: ");
Serial.println(DATO, BYTE);
}
if (DATO == 's'){
digitalWrite(ledPin, HIGH); // enciende el LED
delay(500); // espera por un segundo
digitalWrite(ledPin, LOW); // apaga el LED
delay(500);
}
}