使用 Arduino 作为 Python 程序的输出
Using Arduino as output for Python progam
我正在尝试使用 python 通过 USB 控制 Arduino 输出。
基本上如果 python 中的值 x 为 5,则数字输出 5 应该为高。
我在
上想象的是这样的
Python 边:
import serial
import time
ser = serial.Serial('/dev/ttyACM0', 9600)
x=5
while True:
ser.write('x')
Arduino:
void setup(){
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
}
void loop()
{
int out;
out = Serial.read();
if (out == 5){
digitalWrite(5, HIGH);
}
我离题了吗?
python 的一项改进:
x='5'
while True:
ser.write(x)
现在,你得到的是“5”,而不是 'x'。
和arduino代码:
void setup() {
Serial.begin(9600);
for(char i=0;i<10;i++)
pinMode(i, OUTPUT);
}
void loop() {
;
}
void serialEvent() {
if (Serial.available()) {
char inChar = (char)Serial.read();
inChar-='0';
for(char i=0;i<10;i++)
digitalWrite(i, LOW);
digitalWrite(inChar,HIGH);
}
}
我正在尝试使用 python 通过 USB 控制 Arduino 输出。 基本上如果 python 中的值 x 为 5,则数字输出 5 应该为高。
我在
上想象的是这样的Python 边:
import serial
import time
ser = serial.Serial('/dev/ttyACM0', 9600)
x=5
while True:
ser.write('x')
Arduino:
void setup(){
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
}
void loop()
{
int out;
out = Serial.read();
if (out == 5){
digitalWrite(5, HIGH);
}
我离题了吗?
python 的一项改进:
x='5'
while True:
ser.write(x)
现在,你得到的是“5”,而不是 'x'。
和arduino代码:
void setup() {
Serial.begin(9600);
for(char i=0;i<10;i++)
pinMode(i, OUTPUT);
}
void loop() {
;
}
void serialEvent() {
if (Serial.available()) {
char inChar = (char)Serial.read();
inChar-='0';
for(char i=0;i<10;i++)
digitalWrite(i, LOW);
digitalWrite(inChar,HIGH);
}
}