驱动7段LED显示器

拿到7段LED显示器,先看看是共阴极还是共阳极,如果是共阳极,3和8接5V,5V串联一个220欧姆的电阻。

下面是购买的LED显示器的接线图例

驱动7段LED显示器_第1张图片

5V串联电阻图例

 驱动7段LED显示器_第2张图片

 

下面为代码,此代码将实现在LED显示器上依次显示0~9。

const int numeral[10] = {
    // ABCDEFG /dp
    B11111100, // 0
    B01100000, // 1
    B11011010, // 2
    B11110010, // 3
    B01100110, // 4
    B10110110, // 5
    B00111110, // 6
    B11100000, // 7
    B11111110, // 8
    B11100110, // 9
};

//小数点及各引脚位
//                          dp,G,F,E,D,C, B,A
const int segmenPins[8] = {5,9,8,7,6,4,3,2};

void setup()
{
    for(int i=0; i<8; i++){
        // 设置段和DP引脚为输出
        pinMode(segmenPins[i], OUTPUT);        
    }    
}

void loop()
{
    for(int i=0; i<= 10; i++){
        showDigit(i);
        delay(1000);
    }
    // 最后一个值,如果是10就关闭显示
    delay(2000);    //暂停2秒显示关闭
}

// 在7段显示器上显示一个0~9的数字
// 任何不是0~9的范围内的值将关闭显示
void showDigit(int number)
{
    boolean isBitSet;
    for(int segment=1; segment<8; segment++){
        if(number < 0 || number > 9){
            isBitSet = 0;
        }else{
            // 如果给定的位为1, isBitSet为真
            isBitSet = bitRead(numeral[number], segment);
        }
        // 如果是共阴极显示器就删除此行
        isBitSet = ! isBitSet;
        digitalWrite(segmenPins[segment], isBitSet);
    }
}

 

转载于:https://www.cnblogs.com/hersion/p/6283587.html

你可能感兴趣的:(驱动7段LED显示器)