У меня есть установка Arduino, которая включает свет, когда он получает 1, и выключает свет, когда он получает 0. Я не думаю, что с кодом что-то не так. Я могу послать Arduino 1 с echo 1 > /dev/ttyACM0
и мигает, что меня смутило. Затем я послал это «ч», и он сделал то же самое. Я даже открыл экран с помощью screen /dev/ttyACM0
и набрал 1, и он моргнул. Я думаю, что эхо 1 будет эхом 1.
Я также использовал следующую команду: stty -F /dev/ttyACM0 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
Am I делать что-то не так здесь? Если вам нужна дополнительная информация, просто спросите.
Код Arduino (я не думаю, что это неправильно):
void setup() {
Serial.begin(9600);
//set the LED pin to OUTPUT
pinMode(13, OUTPUT);
}
void loop() {
//wait until the serial connection is open
while (Serial.available() ==0);
//read from the serial connection; the - '0' is to cast the values as the int and not the ASCII code
int val = Serial.read() - '0';
//print to the console for testing
Serial.println(val);
//if we've recieved a '1', turn on the LED and print a message
if(val==1){
Serial.println("Received a 1");
digitalWrite(13, HIGH);
}
//if we've recieved a '0', turn off the LED and print a message
if(val==0){
Serial.println("Received a 0");
digitalWrite(13, LOW);
}
}