python - 尝试将python与arduino集成
问题描述
我正在尝试制作一个 Arduino 程序来闪烁 LED,而不使用内置的 delay() 函数。但后来我也想使用 Python 来完成后端向 Arduino 发送指令的工作。如何将当前 LED 状态(即 LOW 或 HIGH)发送到 python 来完成工作?
我已经编写了以下代码,但我不知道 Serial.print() 是否有效?
import serial
from serial.serialutil import SerialException
import time, sys
try:
board = serial.Serial('/dev/ttyACM0', 9600)
except SerialException:
print("Board doesn't seem to be connected. Serial Exception occured.")
sys.exit()
prevTime = time.time()
freq = 0.5
LEDSTATE = 0
while True:
currTime = time.time()
LEDSTATE = int(board.read())
time.sleep(0.1)
if currTime-prevTime >= freq:
prevTime = currTime
if LEDSTATE == 0:
LEDSTATE = 1
else:
LEDSTATE = 0
board.write(LEDSTATE)
这是arduino代码:
const int ledPin = 13;
int ledState = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
// not initialized until board connected with Serial port.
while(!Serial.available());
//send the present state of LED.
Serial.println(ledState);
//read the state to which LED is going to be changed.
ledState = Serial.readString().toInt();
digitalWrite(ledPin, ledState);
}
解决方案
推荐阅读
- ios - UICollectionViewCell 检测点击
- apache-karaf - opendaylight:karaf: 如何覆盖父 pom 的依赖
- mysql - 如何使用spring MVC将blob类型转换为数据url?
- database - 数据库设计,包含属性与多个连接?使困惑
- android - 如何在android上调试长监视器争用
- entity-framework-core-2.1 - 通过迁移创建动态审计表
- database-design - 如何为保留历史的聊天服务设计数据库
- android - 无法让 Android 应用程序进入除 MainActivity 之外的任何活动
- python - 在 Python 中的 kivy 主应用程序类之外初始化弹出窗口
- java - Maven:项目/包层次结构