【Arduino学习】05.驱动4个数码管

数码管介绍:
如图,本次使用的数码管为共阴极,四个数码管有 12 个引脚, 可以分为位选脚和段选脚。
段选脚:8个引脚a,b,c,d,e,f,g
位选脚:4 个引脚 D1, D2, D3, D4

哪个数码管显示由片选脚决定,片选脚为高电平,则该数码管点亮,为低电平则该数码管熄灭。
数码管显示什么数值由段选脚决定,譬如要显示数字8,则a,b,c,d,e,f,g为高电平,h为低电平;要显示数字1,则b,c为高电平,a,d,e,f,g,h为低电平。
显示原理:四个数码管的显示原理是不断扫描 D1, D2, D3, D4,然后相应的八段管将依次点亮。 由于点亮速度很快,人眼不会看到(人眼能够识别的刷新频率是30HZ),所以它看起来像四个数码管同时显示。

软件代码:

#include "SegmentDisplay.h"

#define  LED_A   13       // define Arduino GPIO1 for led a
#define  LED_B   2       // define Arduino GPIO2 for led b
#define  LED_C   3       // define Arduino GPIO3 for led c
#define  LED_D   4       // define Arduino GPIO4 for led d
#define  LED_E   5       // define Arduino GPIO5 for led e
#define  LED_F   6       // define Arduino GPIO6 for led f
#define  LED_G   7       // define Arduino GPIO7 for led g
#define  LED_H   8       // define Arduino GPIO8 for led h

#define  LED_D1  9
#define  LED_D2  10
#define  LED_D3  11
#define  LED_D4  12

SegmentDisplay _4Bit_7SegmentDisplay(LED_A, LED_B, LED_C, LED_D, LED_E, LED_F, LED_G, LED_H, LED_D1, LED_D2, LED_D3, LED_D4);
int ShowTime = 60, count = 0;

void setup()
{
    Serial.begin(9600);
    _4Bit_7SegmentDisplay.TurnOffAllLed();
}

void loop()
{
    if (count++ > 50 )
    {
        ShowTime-- ;
        count = 0 ;
        Serial.println(ShowTime);
    }
    _4Bit_7SegmentDisplay.DisplayChar((int)ShowTime);
    delay(5);
    if (ShowTime == 0) {
        _4Bit_7SegmentDisplay.TurnOffAllLed();
        while(1);
    }
}

原理图+实验连接图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值