我正在尝试用 Python 编写一个程序。它的作用是向 Arduino 发送一个数字,然后 Arduino 打开或不打开继电器。但它不会打开继电器。
Arduino:
const int pinLED = 8;
void setup()
{
Serial.begin(9600);
pinMode(pinLED, OUTPUT);
}
void loop()
{
digitalWrite(pinLED, HIGH);
if (Serial.available() > 0)
{
char option = Serial.read();
if (option == '1')
{
digitalWrite(pinLED, LOW);
}
}
}
Python:
import serial, time
arduino = serial.Serial("COM6", 9600)
time.sleep(2)
arduino.write(b'1')
arduino.close()
最佳答案
从代码来看,如果您将写入设置为低,它会立即被这部分代码覆盖为高:
void loop()
{
digitalWrite(pinLED, HIGH);
if (Serial.available() > 0)
{
....
因此,使用“0”创建新条件,并删除在每个循环中写入的 digitalWrite
行:
const int pinLED = 8;
void setup()
{
Serial.begin(9600);
pinMode(pinLED, OUTPUT);
}
void loop()
{
if (Serial.available() > 0)
{
char option = Serial.read();
if (option == '1')
{
digitalWrite(pinLED, LOW);
}
if (option == '0')
{
digitalWrite(pinLED, HIGH);
}
}
}
关于python - 从 Python 3 控制 Arduino 继电器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54271009/