美得不像实力派!小小的LED灯瓶居然也有这么多说道!
笔者曾在网上看到一个——LED电子萤火虫的制作,用的是ATtiny13单片机来控制。要知道这款单片机仅有6个可用IO口, 但是却要驱动12个LED,而且还要控制每个LED的亮度,这并不是一件简单的事。正是由于充满了挑战,我决定将它制作出来。
编号 | 名称 | 说明 |
1 | 空瓶子 | 外观 |
2 | JST插头 | 用于给锂电池充电 |
3 | 单片机插座 | 方便更换单片机 |
4 | ATtiny13 单片机 | 控制电路的芯片 |
5 | 洞洞板 | 固定支撑作用 |
6 | 12个LED灯 | 发光组件 |
7 | 220Ω电阻 | 限流电阻,防止LED烧毁 |
8 | 3.7V锂电池 | 电源 |
9 | 开关 | 电源开关作用 |
10 | 1.5mm 热缩管 | 包在金属上,防止短路 |
11 | 双绞线 | 网线上拆下的 |
这次的主要元件就是ATtiny13和12个LED灯。当然还有双绞线、洞洞板、电池、空瓶子、电阻等其他辅助材料。本制作使用的是8个引脚的ATtiny13单片机,这款单片机现在的价格很便宜,4元左右就能买到。 ATtiny13是AVR单片机,它有1KB的 Flash,64B的EEPROM,64B的SRAM,6个通用I/O口线, 32个通用工作寄存器,1个具有比较模式的8位定时器/ 计数器,片内/ 外中断,4路10位ADC,具有片内振荡器的可编程看门狗定时器,以及3种可以通过软件进行选择的省电模式。12个LED为普通的3mm发黄色光的LED。
3.双绞线套入热缩管后,焊接LED。焊接好后,用打火机加热热缩管,使其收缩固定。最后,别忘了再扭下热缩管。
为什么6个I/O能控制12个LED呢?它们之间会不会相互影响呢?其实,这样的连接方式不仅能控制每个LED灯,还能控制其亮度呢!之所以能这样连接,是因为AVR单片机的每个I/O都是3态输出。如果用普通51单片机,这样连接是不行的。控制亮度的关键是ATtiny13的两路PWM,它们可以分别设置连接到PB0和PB1引脚上。在ATtiny13使用内部振荡器的情况下,PWM的频率最高可设置为47.5kHz。而且PWM的极性可以通过寄存器设置而改变,这使12个LED灯亮度的控制更加简单。—— The End ——
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。