LED是一种半导体发光器件,它具有节能、环保、寿命长等优点,广泛应用于各种领域。
在创意之星AI控制器中,我们可以通过控制IO口的高低电平来控制LED的亮灭。
众所周知,单片机上有各类的引脚,比如电源引脚、地引脚、IO引脚等。在创意之星AI控制器上,我们可以通过IO引脚来控制LED的亮灭。
如下所示,是创意之星AI控制器可用的引脚,其中后面部分就是IO引脚。按照编号分别为0-7号IO引脚。这些引脚可以配置为输入输出引脚。
其中,引脚0-7总共有8列,每列从上到下依次为GND,VCC和IO引脚,GND和VCC用于给传感器供电,IO用于信号传递。
IO输入引脚可以接收外部信号,比如传感器的信号(高低电平判断0还是1),IO输出引脚可以输出高低电平信号,比如控制LED的亮灭。
在创意之星AI控制器中,我们通过下面这个函数配置引脚的输入输出:
#设置指定index的IO的模式,mode为0,代表输入模式,mode为1代表输出模式
def ADC_IO_SetIOMode(self,index,mode)
比如我们要设置0号引脚为输出模式,可以这样写:
#引入硬件配置库
from uptech import UpTech
up = UpTech()
#打开ADC_IO通信
up.ADC_IO_Open()
#设置0号引脚为输出模式
up.ADC_IO_SetIOMode(0,1)
这样我们就配置0号引脚为IO输出模式了。
然后,我们可以通过下面这个函数来控制IO引脚的高低电平:
##设置index的IO的输出,level为0,1
def ADC_IO_SetIOLevel(self,index,level)
比如我们要设置0号引脚为高电平,可以这样写:
#引入硬件配置库
from uptech import UpTech
import time
up = UpTech()
#打开ADC_IO通信
up.ADC_IO_Open()
#设置0号引脚为输出模式
up.ADC_IO_SetIOMode(0,1)
time.sleep(1)
#设置0号引脚为高电平
up.ADC_IO_SetIOLevel(0,1)
这样,就通过把IO设置为高电平控制了LED的点亮。
通过下面的代码,可以实现间隔一秒,控制LED连续亮灭的闪烁:
#引入硬件配置库
from uptech import UpTech
import time
up = UpTech()
#打开ADC_IO通信
up.ADC_IO_Open()
#设置0号引脚为输出模式
up.ADC_IO_SetIOMode(0,1)
while True:
#设置0号引脚为高电平
up.ADC_IO_SetIOLevel(0,1)
time.sleep(1)
#设置0号引脚为低电平
up.ADC_IO_SetIOLevel(0,0)
time.sleep(1)
这样,我们就实现了LED的闪烁效果。
如果我们想要实现四个LED的流水灯效果,可以在0~3号IO通道接入LED灯,并通过下面的代码实现:
#引入硬件配置库
from uptech import UpTech
import time
up = UpTech()
#打开ADC_IO通信
up.ADC_IO_Open()
#设置0~3号引脚为输出模式
for i in range(4):
up.ADC_IO_SetIOMode(i,1)
while True:
for i in range(4):
#设置i号引脚为高电平
up.ADC_IO_SetIOLevel(i,1)
time.sleep(0.5)
#设置i号引脚为低电平
up.ADC_IO_SetIOLevel(i,0)
这样,我们就实现了四个LED的流水灯效果。
同学们可以扩展此程序,实现更多酷炫的灯光效果。