1 在Arduino IDE下编写源码:

#define IOBEGIN 22 
#define IOEND 53               //定义初始化的IO口
// the setup function runs once when you press reset or power the board
void setup() {
    Serial.begin(9600);         //初始化端口
    for(int i=IOBEGIN;i<=IOEND;i++)
    {  
        Serial.print("Ready");
        pinMode(i,OUTPUT);
    } 
}

// the loop function runs over and over again forever
void loop() {
  if(Serial.available()){
   char ch = Serial.read();        //读取串口
   Serial.print(ch);
   switch(ch){                     //根据传入信息判断工作模式
   case'1':
   digitalWrite(22,HIGH);
   delay(1000);
   digitalWrite(22,LOW);
   digitalWrite(24,HIGH);
   delay(1000);
   digitalWrite(24,LOW);
   break;
   case'2':
   digitalWrite(22,HIGH);
   digitalWrite(24,HIGH);
   break;
}}}

代码解释:初始化,之后根据输入进行判断

注意点:初始化端口应该在循坏外边;高低电平要大写

2 在Python利用简单GUI控制LED

# -*- coding: UTF-8 -*-
import serial
import easygui
ser=serial.Serial("com7",9600,timeout=0.5) #打开端口
print(ser.is_open)
while (1):
    Yes_or_No = easygui.buttonbox("LED工作模式?", choices=['闪烁', '常亮', '退出'])
    if Yes_or_No == '退出': break
    if Yes_or_No == '闪烁':
        demo = b"1"
    else:
        demo = b"2"

    ser.write(demo)
    s = ser.read(1)
    print(s)

注意编码对中文的支持;

注意  demo = b"1" 这一行的用法。#传入2的ASCII码 这里用b+str强制转换

串口拒绝访问,多半是上一个程序没用停止

效果图:

总结:烧写Arduino程序后,可以通过串口调试助手来控制LED,但是Python屡次不行,后来发现得经过强制转换编码格式,才能实现效果。