在Arduino显示器上打印Python输出

时间:2018-10-22 19:45:33

标签: python python-3.x arduino arduino-uno

我完全迷路了。我正在尝试使用Python在Arduino的显示屏上打印一些东西。我知道可以通过以下方式在没有Python的情况下完成:

lcd.write("my string");

但是我想使用pySerial库来做到这一点。

这是我的Python代码:

import serial
arduino = serial.Serial('COM3', 9600)

myvar1 = "text"

arduino.write(myvar1.encode())

这是我在Arduino上的代码:

// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // initialize the serial communications:
  Serial.begin(9600);
}

void loop() {
  // when characters arrive over the serial port...
  if (Serial.available()) {
    // wait a bit for the entire message to arrive
    delay(100);
    // clear the screen
    lcd.clear();
    // read all the available characters
    while (Serial.available() > 0) {
      // display each character to the LCD
      lcd.write(Serial.read());
    }
  }
}

此外,当我使用串行监视器输入文本时,它会像应该的那样在Arduino上显示(最后只有一点点“ HI!”,但这不是问题)。

1 个答案:

答案 0 :(得分:0)

串行数据可以由Python缓冲。

尝试:

arduino.write(myvar1.encode())
arduino.flush()