我需要通过串行通信与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')
这件事有时候不起作用,但有时它起作用了。任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
我已经解决了我的问题。访问该值有一个时间间隔,我只需要添加一个while循环以获取值。在我的arduino代码中,我在第24行添加了延迟。