
Matlab to Arduino
Publicado por Raul (1 intervención) el 29/08/2024 08:23:22

Tengo este circuito montado y hasta ahora he conseguido mandar lo deseado desde matlab a arduino pero no al contrario, ademas he intentado enviar un numero mediante simulink de todas las maneras posibles pero no me ha sido posible, necesito ayuda, ya que me gustaria mandar y recibir datos (principalmente por Simulink) pero me hes imposible hasta ahora, les facilito el codigo tanto de matlab como de arduino con el cual he conseguido mandar los datos.

Codigo MATLAB:
% Configurar la comunicación serial en MATLAB usando serialport
serialPort = 'COM5'; % Puerto COM del RS485 en el ordenador
baudRate = 9600; % Velocidad de transmisión
% Crear el objeto serial utilizando serialport
s = serialport(serialPort, baudRate);
% Configurar las propiedades de terminador
configureTerminator(s, 'LF'); % 'LF' para enviar un salto de línea
% Enviar datos desde MATLAB al Arduino
dataToSend = 'Hola Arduino desde MATLAB';
writeline(s, dataToSend);
% Limpiar la conexión serial
clear s;
disp('Datos enviados a Arduino.');
Codigo Arduino UNO:
#include <SoftwareSerial.h>
const int RO = 10; // Recepción de datos
const int DI = 11; // Transmisión de datos
const int controlPin = 4; // Control de DE y RE
SoftwareSerial rs485(RO, DI);
void setup() {
Serial.begin(9600);
rs485.begin(9600);
pinMode(controlPin, OUTPUT);
digitalWrite(controlPin, LOW); // Configurar para recepción por defecto
Serial.println("Esperando datos desde MATLAB...");
}
void loop() {
if (rs485.available()) {
delay(50); // Espera un poco para asegurarse de que lleguen todos los datos
String receivedData = "";
// Leer los datos entrantes
while (rs485.available()) {
receivedData += char(rs485.read());
}
// Mostrar los datos recibidos en el monitor serial
Serial.println("Datos recibidos: " + receivedData);
}
}
Valora esta pregunta


0