在上一篇博客中已经将开发环境搭建好了,这一篇我们讲一讲用Arduino IDE开发ATtiny24/44/84进行GPIO输出并控制LED灯。
首先我们介绍一下使用的LED灯电路,在使用引脚较为紧张的单片机时,我们希望用更少的引脚控制更多的LED灯,实验所使用的电路如下图所示。
例如,将LED1设置为低电平,LED2设置为高电平,LED3设置为高阻态,即可控制D1点亮,其余均熄灭。这种方式理论上可以控制n*(n-1)盏灯,n为连接至单片机的引脚数。
将引脚设置为高电平可先将引脚模式配置为输出,然后写入高电平。
pinMode(*, OUTPUT); digitalWrite(*, HIGH); *为引脚序号
将引脚设置为低电平可先将引脚模式配置为输出,然后写入低电平。
pinMode(*, OUTPUT); digitalWrite(*, LOW); *为引脚序号
将引脚设置为高阻态可先将引脚模式配置为输入,然后关闭上拉电阻。
pinMode(*, INPUT); digitalWrite(*, LOW); *为引脚序号
我们将LED1用杜邦线连接至ATtiny24的PA0引脚,即序号0;LED2连接至ATtiny24的PA1引脚,即序号1;LED3连接至ATtiny24的PA2引脚,即序号2,如下图所示。
编写LED灯控制函数如下。
在loop()函数中调用LED灯控制函数,轮流点亮各盏灯,即可实现流水灯的效果。
将程序烧录至ATtiny单片机,可以看到以1秒钟为时间间隔,依次点亮各盏灯,完整程序和开发板电路可在本系列第一篇博客中电路城链接中下载。
Arduino IDE开发ATtiny实践
其中USB线仅作供电用,具体环境搭建及调试方式见第一篇博客。开发板上有3.3V的稳压电路,用跳线帽将VCC与3.3V连接,打开船型开关,LED灯则按所编写的程序实现流水灯的效果。