[英]Arduino restarts after serial input from Raspberry Pi
我在 arduino 上運行此代碼:
#include <SoftwareSerial.h>
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// pins!!!!
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
const int delayTime=10;
const int pin_yes_gate=3;
const int pin_no_gate=5;
int switchVal =0;
void setup()
{
Serial.begin(9600); // Initialize serial port to send and receive at 9600 baud
pinMode(pin_yes_gate, OUTPUT);
pinMode(pin_no_gate, OUTPUT);
}
void loop()
{
if (switchVal ==1 ){
allow();
}else{
prohibit();
}
if ( Serial.available())
{
String string = Serial.readString();
string.trim();
Serial.print("I received: ");
Serial.print(string);
Serial.print("\n");
if(string.equals("allowed"))
{
switchVal=1;
}else if(string.equals("error"))
{
switchVal=0;
}
}
}
void allow(){
digitalWrite(pin_yes_gate,HIGH);
digitalWrite(pin_no_gate,LOW);
delay(delayTime);
}
void prohibit(){
digitalWrite(pin_yes_gate,LOW);
digitalWrite(pin_no_gate,HIGH);
delay(delayTime);
}
我正在寫echo allowed >> /dev/ttyACM0
給出反應,但不到一秒鍾,然后 arduino 返回到初始 state。 這很奇怪,因為它與 arduino IDE 完美配合。
我錯過了什么嗎?
剛剛解決了,顯然問題是
Serial.print("I received: ");
Serial.print(string);
Serial.print("\n");
如果未讀取串行,則會出錯。 因此,要么刪除它,要么就我而言,我無法更改 arduino 端的任何內容,在 raspi boot tail -f /dev/ttyACM0 &
上運行此命令並打開一個讀取端口
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.