Raspberry pi - arduino串行通信

时间:2016-08-04 17:05:45

标签: python arduino-uno serial-communication

我需要通过串行通信与arduino进行raspberry pi的通信。为了沟通,我在两边使用相同的波特率,但我仍然无法做到这一点..

这是我的Arduino代码

int ledPinSpeedOne = 11;
int ledPinSpeedTwo = 12;
int ledPinSpeedThree = 13;

char inbyte;

void setup() {

  Serial.begin(9600);

  pinMode(ledPinSpeedOne, OUTPUT);
  pinMode(ledPinSpeedTwo, OUTPUT);
  pinMode(ledPinSpeedThree, OUTPUT);

  digitalWrite(ledPinSpeedOne, LOW);
  digitalWrite(ledPinSpeedTwo, LOW);
  digitalWrite(ledPinSpeedThree, LOW);
}

void loop()
{

  if (Serial.available() > 0) {
    delay(100);
    inbyte=Serial.read();
    if ( inbyte == '3' ) functionSpeedTwo();
    }
}

//functionSpeedTwo
void functionSpeedTwo() {
  digitalWrite(ledPinSpeedOne, LOW);
  digitalWrite(ledPinSpeedTwo, HIGH);
  digitalWrite(ledPinSpeedThree, LOW);
}

这就是我在树莓派中所拥有的,

#!/usr/bin/python
import serial  
ser = serial.Serial('/dev/ttyACM0',9600) 
ser.write('3')

这件事有时候不起作用,但有时它起作用了。任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

我已经解决了我的问题。访问该值有一个时间间隔,我只需要添加一个while循环以获取值。在我的arduino代码中,我在第24行添加了延迟。