单片机单IO分时控双单色LED方案

一、硬件接法(上拉+下拉)
双色LED:红、绿两颗独立LED,同一个GPIO引脚,同时挂这两颗LED。

LED1(红):阳极接VCC,阴极接单片机GPIO(上拉接法,GPIO拉低点亮)
LED2(绿):阳极接单片机GPIO,阴极接GND(下拉接法,GPIO拉高点亮)

接线拓扑

        VCC
         |
         R1(220Ω)
         |
        LED1(红) 阳极→阴极
         |
         ↓
       GPIO PA0
         ↑
         |
        LED2(绿) 阳极←阴极
         |
         R2(220Ω)
         |
        GND
二、三种状态逻辑
GPIO 低电平:红灯亮、绿灯灭
GPIO 高电平:绿灯亮、红灯灭
GPIO 高速高低翻转(高频PWM/分时闪烁):红、绿快速交替人眼视觉残留,混出黄色/橙色第三种颜色
三、关键要点
频率不用太高
只要超过 50Hz 人眼就看不出闪烁,用 100~500Hz 分时切换就足够混色。
可以调混色比例
高电平时间长偏绿,低电平时间长偏红,占空比可调出不同中间色。
限流电阻必须加
两颗LED各自串限流电阻(220Ω~1kΩ),不然会灌电流过大烧IO口或LED。
IO驱动能力够用
普通单片机GPIO推挽输出,灌/拉电流足够驱动普通直插LED,完全没问题。
四、优缺点
✅ 优点:只占用1个GPIO,省引脚,极简电路
❌ 缺点:不能单独无级精细调光,只能靠分时比例混色;不能同时恒定亮两种纯色。
五、最简代码思路
while(1)

{

    GPIO_Low();  // 红灯

    delay_us(500);

    GPIO_High(); // 绿灯

    delay_us(500);

}

改两个延时值,就能调出偏红、偏绿、标准黄色。

正文完
 1
评论(没有评论)
验证码