无法使用pyserial在arduino和python之间进行通信

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用pyserial在arduino和python之间进行通信相关的知识,希望对你有一定的参考价值。

我已经在arduino上开始了一个项目,我要求它与python进行通信。我已经浏览了网页并在arduino python串口通信上找到了一个示例代码,其中,当输入1时它会点亮LED。 python和arduino代码都在工作,但LED没有点亮。董事会运作正常,因为我尝试了其他基本的例子

Arduino代码:

一世

  void setup() 
   {
      pinMode(12,OUTPUT);
     digitalWrite(12,LOW);  
     Serial.begin(9600);
 }

  void loop() 
 {
   if(Serial.available() > 0)
   {
     if(Serial.read() == 1)
     {
       digitalWrite(12,HIGH);
       delay(2000);
     }
   }  

     else
     {
       digitalWrite(12,LOW);
     }
     }

Python代码:

import serial
import time  # Required to use delay functions

arduinoSerialData = serial.Serial('/dev/ttyACM0', 9600)  # Create Serial port object called arduinoSerialData
time.sleep(2)  # wait for 2 secounds for the communication to get established


print ("Enter 1 to turn ON LED and 0 to turn OFF LED")

while 1:  # Do this forever

    var =input()  # get input from user
    var=var.encode()


    arduinoSerialData.write(var)
答案

试试这个

   if(Serial.available() > 0)
   {
     if((char)Serial.read() == '1')
     {
       digitalWrite(12,HIGH);
       delay(2000);
     }
   } 

并检查这个awesome tutorial on arduino forum

以上是关于无法使用pyserial在arduino和python之间进行通信的主要内容,如果未能解决你的问题,请参考以下文章

通过 pySerial 通过 Python 控制 Arduino

在使用 pyserial 和 Arduino 时面临 TkInter 的问题

arduino 使用 pySerial 打开/关闭 LED

pyserial 中的 ser.write() 函数

重新打开后,arduino 和 pyserial 之间的串行连接变慢

pyserial中的ser.write()函数