Arduino 在来自 Raspberry Pi 的串行输入后重新启动
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 returns 到初始状态。这很奇怪,因为它与 arduino IDE 完美配合。
我是不是漏掉了什么?
刚刚解决了,貌似问题出在
Serial.print("I received: ");
Serial.print(string);
Serial.print("\n");
没有读串口会报错。因此,要么删除它,要么就像我的情况一样,我无法在 arduino 端更改任何内容 运行 raspi boot 上的此命令 tail -f /dev/ttyACM0 &
打开一个读取端口
我在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 returns 到初始状态。这很奇怪,因为它与 arduino IDE 完美配合。
我是不是漏掉了什么?
刚刚解决了,貌似问题出在
Serial.print("I received: ");
Serial.print(string);
Serial.print("\n");
没有读串口会报错。因此,要么删除它,要么就像我的情况一样,我无法在 arduino 端更改任何内容 运行 raspi boot 上的此命令 tail -f /dev/ttyACM0 &
打开一个读取端口