首页 > 解决方案 > 尝试将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);
}

标签: pythonarduino

解决方案


推荐阅读