Я пытаюсь отправить целое число из скрипта Python в Arduino, проанализировать его на борту и отправить целое число в скрипт Python. Я могу получить данные из Arduino, но я не могу отправить данные в Arduino, потому что он перезагружается. Также работает с Arduino IDE
Идея состоит в том, что я посылаю через python magicnumber = 387, затем arduno сравнивает его с его owm MN = 387 и затем отправляет MN в python, но также, когда я начинаю отправлять данные из python, он перезагружается и ничего не работает. если это возможно, пожалуйста, ответьте в основном с кодом, потому что я не очень хорошо знаю английский. Спасибо
int magicNumber;//глобальные переменные
bool connection = false;
void setup()
{
pinMode(infoLed, OUTPUT);
Serial.begin(baudrate);
while (!Serial) {
fastBlink();
}
slowBlink();
EEPROM.get(magicNumberAddr, magicNumber);
normalBlink();
waitForMN();
}
void loop()
{
if (!connection) {
waitForMN();
}
slowBlink();
}
void waitForMN() {//двустороннее квинтирование
String data = "";
byte sizeofbuf = 0;
while (Serial.available() <= 0) {
fastBlink();
}
while (!connection) {
if (Serial.available()) {
sizeofbuf += 1;
char s = Serial.read();
data = String(data + s);
Serial.println(data.toInt());
if (sizeofbuf == 3) {
if (data.toInt() == magicNumber) {
Serial.println(magicNumber);
char k = Serial.read();
connection = true;
break;
} else {
Serial.read();
waitForMN();
}
}
}
}
}
питон
import serial
import time
ser = serial.Serial("/dev/ttyUSB1",9600,timeout=10)
ser.flush()
ser.write(str("387").encode())
time.sleep(1)
ser.write(str("387").encode())
print(ser.readline())