Отправка данных из обработки в arduino

У меня проблема с отправкой данных из обработки в arduino mega.

Код обработки :

import processing.serial.*;

Serial myPort;

void setup()
{
println(Serial.list());
String arduinoPort = Serial.list()[0];
myPort = new Serial(this, arduinoPort, 9600)
}

void draw()
{
byte a= 3;
myPort.write(char(a));
}

Код Arduino:

#include <Servo.h>
#include <Wire.h>

Servo myservo1;
Servo myservo2;

void setup()
{ 
Serial.begin(9600);
myservo1.attach(9);  
myservo2.attach(10);
myservo1.write(90);
myservo2.write(90);

}

void loop()
{

if(Serial.available()>0){
myservo1.write(70);
myservo2.write(70);

}

}

Код действительно прост, обработка отправляет значение для запуска arduino mega, поворачивая 2 серводвигателя.

Но он вообще не реагирует.. Пожалуйста, помогите, если у кого-нибудь есть какие-либо подсказки.

Спасибо :))

, 👍3

Обсуждение

Некоторые вещи, которые нужно попробовать: 1) Отправьте выходные данные обработки на терминал, чтобы проверить, что обработка выполняет то, что, по вашему мнению, она должна делать. 2) Отправьте "правильный" текст на Arduino с терминала, чтобы проверить, вызовет ли правильный текст правильный ответ. 3) Установите один или несколько светодиодов на свою плату и зажигайте их, когда происходят важные события, такие как получение _any_ текста, попытка управлять двигателями и т.д. 4) Продолжайте тестировать все меньшие и меньшие части системы, пока не определите что-то, что ведет себя не так, как вы предполагали. Исправьте это и попробуйте еще раз., @JRobert

Большое спасибо, Роберт! Наконец я понял это, потому что я не добавлял задержку после каждой отправки данных в arduino.., @wei


1 ответ


0
if (Serial.available() > 0) {           //_________ ПРИЕМ ДАННЫХ ОСУЩЕСТВЛЯЕТСЯ ТЕРМИНАЛОМ TECLADO
    delay(100);
    SerialData = Serial.read();
    data = SerialData;
  }
,