【问题标题】:Raspberry pi - arduino Serial Communication树莓派 - arduino 串行通信
【发布时间】:2016-08-10 20:45:15
【问题描述】:

我需要通过串行通信与 arduino 通信树莓派。为了沟通,我在双方都使用相同的波特率,但我仍然无法做到这一点..

这是我的 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')

这个东西有时不起作用,但有时它起作用了。谁能帮我解决这个问题。

【问题讨论】:

  • 查看运行 python 脚本时 arduino 是否重置。如果是这样,请在使用pyserial打开端口之前设置控制线状态
  • “控制线状态”是什么意思???
  • 运行脚本时你的 Arduino 会重置吗?
  • 不,不是……我已经解决了问题。

标签: python arduino-uno serial-communication


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-12
    • 1970-01-01
    • 2021-08-27
    • 2013-02-08
    • 2017-05-03
    • 1970-01-01
    相关资源
    最近更新 更多