6个LED灯为相同的类型,为便利检查,用红绿两种颜分两种不同的方向。
所谓“高阻态”,是指GPIO对外部电路表现出极大的阻抗。因阻抗很大,简直不会吸入电流,也不会对外输出电流。
1、当只需LED1亮起时,单片机各GPIO的状况如下:(带箭头的红线为电流回路)
很简单,因为这样的解决办法来源于美信半导体公司的工程师Charlie Allen。
查理复用是一种能够在驱动LED,特别是驱动很多LED时有效地节省GPIO的办法。
恣意两个GPIO引脚之间串入两个LED,这两个LED为并联,且LED方向相反。
当你想要点亮某个特定的LED时,就将其两头所连接到的GPIO引脚别离设定为高电平和低电平,其它剩下的GPIO引脚设定为高阻态。
能够看出,确实是恣意两个GPIO之间均串入了两个并联的LED,且LED方向相反。
首要,LED亮起时完全由单片机的GPIO输出电流,所以关于GPIO的电流驱动才能有必定的要求。规划电路时要注意查询自己运用的MCU的电流驱动才能,下图是STM32单片机中对GPIO电流驱动才能的阐明:
其次,假定渐渐的呈现了某个LED开路或短路的状况,电流的流向会被打乱,LED亮起来的逻辑会变得紊乱。最坏的状况下,电路会对GPIO讨取大电流,导致单片机损坏。下图是假定LED1短路,那么在点亮LED5时,LED3也会亮起:
替换点亮他们就行,只需替换切换的速度够快,因为人眼的视觉暂留效应,看起来便是一起亮起的。
值得一提的是,假如要一起亮起的LED较多,比方大规模的LED点阵,那么还需要注意一些新的问题,颇有门路。