最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

Arduino 七段数码管显示方法一

Arduino 少儿编程 5960浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

Arduino 七段数码管显示方法一

我们要做什么

    我们需要让七段数码管显示数字0到9,而且不需要额外的IC,只使用Arduino+七段数码管(共阴极)+七个330欧电阻+一些跳线

本例用到byte数据类型和位操作运算,请参考下文:

arduino Byte数据类型和按位运算

数码管连接图及电路图

Arduino 七段数码管显示方法一

七段数码管引脚图

Arduino 七段数码管显示方法一

电路图

代码如下:

int pins[]={10,9,8,7,6,5,4,3};

byte number[] = {

  //ABCDEFG /dp

  B11111100,  // 0

  B01100000,  // 1

  B11011010,  // 2

  B11110010,  // 3

  B01100110,  // 4

  B10110110,  // 5

  B10111110,  // 6

  B11100000,  // 7

  B11111110,  // 8

  B11110110,  // 9

};

void display(int num)

{

  for(int i=0;i<8;i++)

    {

      digitalWrite(pins[i],bitRead(number[num],i));

    }

}

void setup()

{

  for(int i=0;i<8;i++)

    {

      pinMode(pins[i],OUTPUT);

    }

}

void loop()

{

  for(int i=0;i<10;i++){

  display(i);

  delay(1000);

  }

}

    这里的小数点默认是没有点亮的,如果需要点亮小数点的话,只需要,使用函数bitWrite(numer[num],0,1)就好了。

代码如下:

int pins[]={10,9,8,7,6,5,4,3};

byte number[] = {

  //ABCDEFG /dp

  B11111100,  // 0

  B01100000,  // 1

  B11011010,  // 2

  B11110010,  // 3

  B01100110,  // 4

  B10110110,  // 5

  B10111110,  // 6

  B11100000,  // 7

  B11111110,  // 8

  B11110110,  // 9

};

void display(int num,bool dot)

{

  if(dot==true)

  {

    bitWrite(number[num],0,1);

    }

    else

    {

      bitWrite(number[num],0,0);

      }

  for(int i=0;i<8;i++)

    {      

      digitalWrite(pins[i],bitRead(number[num],i));

    }

}

void setup()

{

  for(int i=0;i<8;i++)

    {

      pinMode(pins[i],OUTPUT);

    }

}

void loop()

{

  for(int i=0;i<10;i++){

  display(i,1);

  delay(1000);

  }

    for(int i=0;i<10;i++){

  display(i,0);

  delay(1000);

  }

}

 

您必须 登录 才能发表评论!