gpt4 book ai didi

matlab - matlab与arduino串口通信

转载 作者:行者123 更新时间:2023-12-05 07:55:00 27 4
gpt4 key购买 nike

我正在尝试使用以下用于 arduino 的代码和用于 matlab 的第二个代码将数据从 MATLAB 发送到 ARDUINO。两种代码都工作正常,当我按下 1 时,led 亮起,当按下 2 时,led 熄灭。但实际上我想做的是,当 matlab 运行代码时,它会自动将 1 发送到 arduino,然后 LED 灯亮起。我已经尝试过可能的更改但无法做到。当我尝试运行第三个代码(如下所示)时,arduino 状态指示灯闪烁,表明它收到了一些东西,但我连接到引脚 13 的实际指示灯仍然关闭。

int ledPin=13;
int matlabData;

void setup()
{
pinMode(ledPin,OUTPUT);
Serial.begin(9600);
}

void loop()
{

if(Serial.available()>0) // if there is data to read
{
matlabData=Serial.read(); // read data
if(matlabData==1)
digitalWrite(ledPin,HIGH); // turn light on
else if(matlabData==2)
digitalWrite(ledPin,LOW); // turn light off
}
}

(MATLAB)

1.
clear all
2.clc
3.
4.answer=1; % this is where we'll store the user's answer
5.arduino=serial('COM4','BaudRate',9600); % create serial communication object on port COM4
6.
7.fopen(arduino); % initiate arduino communication
8.
9.while answer
10. fprintf(arduino,'%s',char(answer)); % send answer variable content to arduino
11. answer=input('Enter led value 1 or 2 (1=ON, 2=OFF, 0=EXIT PROGRAM): '); % ask user to enter value for variable answer
12.end
13.
14.fclose(arduino); % end communication with arduino

(我的编辑代码)

1.
clear all
2.clc
3.
4.answer=1; % this is where we'll store the user's answer
5.arduino=serial('COM4','BaudRate',9600); % create serial communication object on port COM4
6.
7.fopen(arduino); % initiate arduino communication
8.
9.%while answer
10. fprintf(arduino,'%s',char(answer)); % send answer variable content to arduino
11. answer='1'%('Enter led value 1 or 2 (1=ON, 2=OFF, 0=EXIT PROGRAM): '); % ask user to enter value for variable answer
12.%end
13.
14.fclose(arduino); % end communication with arduino

最佳答案

区别如下:

answer = input('bla')

产生一个数字答案,即答案是 double 类型。在你的第三种情况下,你写了 answer='1' 这是一个字符,所以实际上,变量 answer 在这两种情况下都是不同的。尝试将第三部分中的代码更改为此处:

answer = 1;

或将 fprintf 命令更改为

fprintf(arduino, '%s', str2num(answer));

关于matlab - matlab与arduino串口通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30481838/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com