驅動LED可以采用拉電流的方式也可以采用灌電流的方式,要想使LED閃爍,需要用PWM來控制LED。PWM的產生方式有多種,比如純硬件的NE555方案,讓555工作在多諧振蕩器狀態即可產生PWM,并且頻率可以通過RC電路來調節。但是這種方案的時間精度取決于RC電路,精度不高,如果對精度要求較高的話可以采用單片機產生PWM來驅動。如果LED的功率不大的話,可以直接用單片機的GPIO口來驅動,以灌電流的方式,如下圖所示。
單片機的GPIO口輸出PWM,為高電平的時候LED熄滅,為低電平的時候LED被點亮。如果LED的功率比較大,可以采用三極管來驅動,電路如下圖所示。

單片機控制三極管的基極,當單片機輸出高電平的時候三極管導通,LED被點亮;當單片機輸出低電平的時候三極管截止,LED熄滅。那么該如何控制PWM的參數呢?PWM非常有用,可以用來控制LED的亮暗漸變實現呼吸燈的效果,比如要求10s閃爍,以10s亮10s滅為例,那PWM的周期就是10s,占空比50%,如下圖所示。
即單片機輸出高電平10s,再輸出10s低電平,翻轉周期為10s,PWM的周期為20s。可以通過單片機的定時器來實現GPIO口的翻轉,這涉及到單片機的編程。