2017-02-12 6 views
-1

В настоящее время я пытаюсь получить значение (Yes!) от Arduino до текстового файла (data.txt).Запись данных в текстовый файл из Arduino с помощью обработки

Проблема в том, что данные не читаются из серии Arduino's Serial. Когда я попытался просто распечатать значение в строке processing, я вышел с пустыми руками.

Ниже мой код для Arduino

//Just a basic program to write to the Serial the word/phrase; `Yes!`. 

void setup() 
{ 
    Serial.begin(9600); 
} 

void loop() 
{ 
    Serial.println("Yes!"); 
} 

Ниже мой код processing:

import processing.serial.*; 
Serial mySerial; 
PrintWriter output; 
void setup() { 
    mySerial = new Serial(this, Serial.list()[0], 9600); 
    output = createWriter("data.txt"); 
} 
void draw() { 
    if (mySerial.available() > 0) { 
     String value = mySerial.readString(); 
     if (value != null) { 
       output.println(value); 
     } 
    } 
} 

void keyPressed() { 
    output.flush(); // Writes the remaining data to the file 
    output.close(); // Finishes the file 
    exit(); // Stops the program 
} 

Да, этот код был найден с thisstackoverflow вопрос.

Любая помощь была бы принята с благодарностью!

+0

Вам потребуется выполнить некоторую отладку. У вас есть только одно последовательное соединение? Что возвращается из 'Serial.list()'? Какой оператор 'if' не вводится? Используйте инструкции печати, чтобы узнать. Что произойдет, если вы просто распечатаете консоль вместо файла? –

+0

Ничего не происходит, когда я печатаю на консоли, он не читает значения правильно. Что произойдет, если у меня будет несколько последовательных соединений? – EDCisBack

+0

Какова длина массива, возвращаемого 'Serial.list()'? Какой оператор 'if' не вводится? –

ответ

0

Заканчивать эту линию:

mySerial = new Serial(this, Serial.list()[0], 9600); 

Эта линия предполагает, что вы есть только один последовательный порт. Если у вас более одного последовательного соединения, вам придется изменить индекс жесткого кодирования, который используется в этой строке.

+0

Просто пришлось изменить жестко закодированный 0 на 1. Если вы ищете COM-порт, продолжайте печатать значение на консоли или просто жесткий код, который вы хотите. – EDCisBack

 Смежные вопросы

  • Нет связанных вопросов^_^