串行通信后Arduino一直在重启。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了串行通信后Arduino一直在重启。相关的知识,希望对你有一定的参考价值。

Good day 

我有一个python代码,它是连接到我的arduino使用串行通信和后,我运行的命令(打开LED)的LED将打开约2秒,之后,arduino将重新启动,并进入默认值,这是LED是关闭的。但它运行完美的串行显示器

python code
 time.sleep(2) 
        ser = serial.Serial('COM3', 9600)

        if 'lights on' in voice:   #after sending this part the LED will turn on for about 2 sec and then turning off again
            ser.write(1)   

        if 'lights off' in voice:
            ser.write(2)

        time.sleep(2)    
        ser.close()    


arduino code:

byte incomingByte = 0; // for incoming serial data
int Relay4 = 13;
void setup() {

Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
pinMode(Relay4,OUTPUT);
digitalWrite(Relay4, HIGH);
}

void loop()
{

if(Serial.available())
{
  incomingByte = Serial.read();
  Serial.println(incomingByte,DEC);
  switch(incomingByte){
  case 49:
  digitalWrite(Relay4,LOW);
  break;
  case 50:
  digitalWrite(Relay4,HIGH);
  break;
  default:
  break;
    }
  }
}
答案

删除ser.close(),并做一些事情,以防止python退出,如。

while(True):
    pass

以上是关于串行通信后Arduino一直在重启。的主要内容,如果未能解决你的问题,请参考以下文章

python和arduino之间的串行通信

从 php 到 arduino 的串行通信

Arduino和Python之间的串行通信发送/接收数据

Arduino - 处理串行通信

PC和Arduino之间通过USB的串行通信

Arduino Uno Raspberry Pi 串行通信双读数