да, действительно проблема в newsoftserial. сегодня попробовал с Arduino Mega.
PHP код:
byte tmp;
void setup()
{
Serial.begin(9600);
Serial1.begin(9600);
}
void loop()
{
if (Serial1.available() > 0) {
tmp = Serial1.read();
Serial.write(tmp);
}
}
Результат: приходят корректные данные. Тут же попробовал с другим Arduino с использованием софтового порта
PHP код:
#include <NewSoftSerial.h>
NewSoftSerial ibus(7, 8);
byte tmp;
void setup() {
Serial.begin(9600);
ibus.begin(9600);
}
void loop()
{
if (ibus.available() > 0) {
tmp = ibus.read();
Serial.write(tmp);
}
}
Результат: первые 2-3 байта и каша. Посмотрев на это дело в trminal поигравшись с настройками стоп байтов и числом приходящих байтов увидел более менее похожие на правду данные.