我完全迷路了。我正在尝试使用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!”,但这不是问题)。
答案 0 :(得分:0)
串行数据可以由Python缓冲。
尝试:
arduino.write(myvar1.encode())
arduino.flush()