首页 文章

通过引脚从Arduino到RPi的串行通信

提问于
浏览
0

我被困住了,不知道为什么 . 我试图分别通过TX和Rx引脚从Arduino Nano传输到RPi .

这是我的代码到目前为止:

Arduino TX:

void setup(){
  Serial.begin(9600);
}

void loop(){
  bProgramLoop = 1
  while(bProgramLoop == 1){
    Serial.write(1);
  }
}

覆盆子方面:

import serial
oSer = serial.Serial("/dev/ttyAMA0",baudrate=9600,timeout=1)

while True:
    sSerialInput = oSer.read(1)
    #sSerialInput = oSer.readline()
    print sSerialInput

将草图加载到Arduino并启动python脚本后,Raspberry根本不会读取任何内容 .

注意:

  • 我通过分压器和一些跳线将来自Arduino的Tx引脚连接到RPi的Rx引脚 .

  • 我也试过"readline()",但没有运气

有什么建议?

1 回答

  • 0

    我找到了解决问题的方法 . 我仍然是一个合适的菜鸟,但据我所知,通过Tx引脚发送串行数据是有问题的,因为它被usb端口使用,然后用于你的PC .

    因此,解决方案是使用SoftwareSerial库 . 我修改了我的两个代码草图如下:

    Arduino的:

    #include <SoftwareSerial.h>
    SoftwareSerial mySerial(4,3); // (RX,TX) - Pin Setup for any digital pins you want as Rx or Tx
    
    void setup(){
      Serial.begin(9600);
      mySerial.begin(57600); // initialize serial communication with serial pin
    }
    
    void loop(){
      bProgramLoop = 1
      while(bProgramLoop == 1){
        mySerial.write("Anything");
      }
    }
    

    覆盆子:

    import serial
    oSer = serial.Serial("/dev/ttyAMA0",baudrate=9600,timeout=1)
    
    while True:
        sSerialInput = oSer.readline()
        print sSerialInput
    

    因为它是我能够将数据从Arduino传输到RPi . HOWEVER ,我仍然遇到将字符串转换为整数或浮点数的问题 .

    有关详细信息,请参阅此帖子:Python readline() returns string that wont convert to int or float

相关问题