Что мне не хватает?Отправка данных из Matlab в Arduino на Micro SD - PullRequest
0 голосов
/ 21 января 2019

Сначала.Это ни в коем случае не назначение класса.Это моя личная работа и исследования.Я просто хочу избавиться от этого.

Я учусь использовать Matlab в различных проектах Arduino.Я опытный пользователь Matlab, но я довольно плохо знаком со всем пространством Arduino.

Я пытаюсь отправить некоторые числовые данные из Matlab (через графический интерфейс) на мой Arduino Uno и заставить Arduino записать их на мою карту micro 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
           }
}  

Ожидаемым результатом будет сохраненный файл "SerialDataFile.txt"на мою карту micro SD со значением 5.

Спасибо за помощь!

...