matlab - 我错过了什么?将数据从 Matlab 发送到 Arduino 到 Micro SD
问题描述
首先关。这绝不是课堂作业。这是我个人的工作和研究。我只是想摆脱它。
我正在学习如何在各种 Arduino 项目中使用 Matlab。我是一个经验丰富的 Matlab 用户,但我对整个 Arduino 领域还很陌生。
我正在尝试将一些数值数据从 Matlab(通过 GUI)发送到我的 Arduino Uno,并让 Arduino 将其写入我的微型 SC 卡。这是我更大项目的临时步骤。但是,没有必要深入讨论这些细节,因为它们超出了我的问题范围。
我相当有信心 Matlab 代码可以正常工作,并且 Arduino 代码是从我所做的另一个项目中稍微修改的,在该项目中我从我的微型 SD 卡中写入和读取随机数。
然而,当我运行 Matlab 代码时,Arduino 会闪烁,好像它正在接收数据,但在我检查 micro SD 卡后它仍然是空白的。
我确信我的 Arduino 已正确连接到我的 micro SD 卡适配器,因为这与我之前的项目保持一致。
因此,我确信我错过了一些微不足道的东西来让它工作。
我研究了几个关于这个主题的网站,他们的方法和我的似乎非常吻合。
我相当确定问题出在条件语句中:
if (Serial.available() > 0) {
正如你将看到的。
Matlab代码如下:
arduinoCom = serial('COM3', 'BaudRate', 115200);
sendData = 5;
fopen(arduinoCom);
fprintf(arduinoCom,'%i',sendData); %this will send 5 to the arduino
fclose(arduinoCom);
delete(arduinoCom);
Arduino代码如下:
#include <SD.h> // load SD library
int chipSelect = 4; // Chip select pin for the MicroSD Card Adapter
int incomingByte = 0; // for incoming serial data.
File SDF; // Serial data received is saved here.
void setup() {
Serial.begin(115200); // start serial connection to print out debug messages and data
pinMode(chipSelect, OUTPUT); // chip select pin must be set to OUTPUT mode
while (!Serial) {
}
}
void loop() {
// Open file, Write data, Close file only when you receive data
if (Serial.available() > 0) {
incomingByte = Serial.read();
SDF = SD.open("SerialDataFile.txt", FILE_WRITE); // open "SerialDataFile.txt" to write data
SDF.println(incomingByte, DEC); // write ASCII-encoded decimal number to file
SDF.close(); // close file
}
}
预期的结果将是存储在我的微型 SD 卡上的文件“SerialDataFile.txt”,值为 5。
谢谢您的帮助!
解决方案
推荐阅读
- ruby-on-rails - Ruby where 子句一起查找特定条件和 nil 值
- java - CrudRepository 保存方法不保存任何数据库
- php - 如何处理将数组或单个值传递给函数
- reactjs - 如何更新数组的状态
- amazon-web-services - 执行 aws s3 ls s3://[mybucketname:)] 时出现 InsecureRequestWarning --no-verify-ssl
- python-3.x - 从元数据动态创建 DataFrame 列
- mysql - MySQL 将 column1 设置为 column2 未设置正确的值
- sql-server - SQL Server DDL 触发器无法捕获 DISABLE ALL 事件
- c++ - 如何使用 C++ 自定义比较函数对某些参数进行排序?
- api - 如何获得 Pinterest API 应用程序批准?