arduinoを使用して16進バイト配列を外部デバイスに送信したいだけです。
最初は、C# と PC を使用してデバイスを試しました。正常に動作するサンプルコードは次のとおりです。
_serial.BaudRate = 9600;
_serial.PortName = "COM2";
_serial.Open();
byte[] _bytesToSend = new byte[9] { 0x05, 0x30, 0x30, 0x31, 0x2C, 0x30, 0x30, 0x30, 0x03 };
_serial.Write(_bytesToSend, 0, _bytesToSend.Length);
これを arduino ソフトウェア シリアルに次のように変換すると、問題が発生します。
SoftwareSerial softSerial1(3, 4);
SoftwareSerial softSerial2(5, 6);
void setup(){
Serial.begin(9600);
softSerial1.begin(9600);
softSerial2.begin(9600);
}
void loop(){
String sample1 = "";
byte bytes_to_send[9] = { 0x05, 0x30, 0x30, 0x31, 0x2C, 0x30, 0x30, 0x30, 0x03 };
softSerial1.listen();
softSerial1.write(bytes_to_send,9);
delay(50);
if(softSerial1.available()){
sample1 = softSerial1.readString();
Serial.println("Sample1:"+sample1);
}else{
Serial.println("Serial 1 Empty");
}
}
上記のコードに対してデバイスから応答がありません