Linux串口通信Arduino#3

Linux串口通信Arduino#3

Linux串口通信Arduino#1
Linux串口通信Arduino#2

前言

利用串口通信,在终端输入数字来控制Arduino Uno板13引脚LED的亮灭

Arduino程序

键盘输入数字1,打开LED灯;输入数字2,关闭LED灯。

int led 13
String str;

void setup()
	{
		Serial.begin(9600);
		pinMode(led,OUTPUT);
	}
	
void loop()
	{
		led_control();
	}

void led_control()
	{
		if (Serial.availabile())
		{	
			str = Serial.readString();	//读取串口字符串
			if (str == "1")
			{
				digitalWrite(led,HIGH);	//打开led
				Serial.println("Led is open!");	//回应Linux
			}
			else if (str == "2")
			{
				digitalWrite(led,LOW);	//关闭led
				Serial.println("Led is close!");
			}
		}
	}

led.py程序

import serial
from time import sleep
import sys

port = "/dev/ttyACM0"  
rates = 9600
ser = serial.Serial(port,rates)
ser.flushInput()

try:
    while True:
        number = input('按1开灯 按2关灯 按e退出程序')	# 提示输入
        if number == '1':
            print('开灯指令')
            ser.write(b'1')  # 发送字符串1
            sleep(1)       # 等待回应
        elif number == '2':
            print('关灯指令')
            ser.write(b'2')
            sleep(1)
        elif number == 'e':
            ser.close()
            print('再见!')
            sys.exit()
        else:
            print('输入错误')

        while ser.in_waiting:
            arduino_feedback = ser.readline().decode()  # 接收回应并解码
            print('Arduino:', arduino_feedback)
            
except KeyboardInterrupt:
    ser.close()
    print('再见!')

程序运行结果

程序运行结果

发布了31 篇原创文章 · 获赞 22 · 访问量 9504

猜你喜欢

转载自blog.csdn.net/richowe/article/details/102971778
今日推荐