基于arduino的串口控制数码管(5611AH)显示数字(初学,入门级附代码)

时光怂恿深爱的人放手 提交于 2020-12-21 10:32:21

基于arduino的串口控制数码管(5611AH)显示数字只有干货

首先先要介绍一下数码管了,这里图片为5611AH,这种数码管主要分为共阴极共阳极两种,这里用的是共阴极的。
注意区分

数码管

话不多说,直接上图片(此图为模拟图,当然我有实物,实物比较麻烦)。在这里插入图片描述
好了,上代码 ,当串口输入1~9是,数码管将显示相应数值。
此代码较为简单易懂。(代码用到了数组),注意数组规定为几行几列但用的时候是从0行0列开始的。

int ab=3;
int bp=2;
int cg=9;
int db=10;
int ep=11;
int fg=12;
int gy=13;
int pw=8;
int i=-1;
int income=0;
int a[10][8]=
{
   
   
  1,1,1,1,1,1,0,0,//0
  0,1,1,0,0,0,0,0,//1
  1,1,0,1,1,0,1,0,//2
  1,1,1,1,0,0,1,0,//3
  0,1,1,0,0,1,1,0,//4
  1,0,1,1,0,1,1,0,//5
  1,0,1,1,1,1,1,0,//6
  1,1,1,0,0,0,0,0,//7
  1,1,1,1,1,1,1,0,//8
  1,1,1,1,0,1,1,0,//9
//0,1,2,3,4,5,6,7
};
int b[8]=
{
   
   
  3,2,9,10,11,12,13,8,
};
void setup()
{
   
   
  pinMode(3, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}
void loop()
{
   
   
  Serial.available();
  Serial.println(income);
  if(Serial.available() > 0)
  {
   
   
    income = Serial.read();
    if(income=='0')
  {
   
   
      for(int i=-1;i<8;i++)
      {
   
   
    digitalWrite(b[i],a[0][i]);
      }
  }
    if(income=='1')
  {
   
   
      for(int i=0;i<8;i++)
      {
   
   
    digitalWrite(b[i],a[1][i]);
      }
  }
    if(income=='2')
  {
   
   
      for(int i=-1;i<8;i++)
      {
   
   
    digitalWrite(b[i],a[2][i]);
      }
  }
    if(income=='3')
  {
   
   
      for(int i=-1;i<8;i++)
      {
   
   
    digitalWrite(b[i],a[3][i]);
      }
  }
    if(income=='4')
  {
   
   
      for(int i=-1;i<8;i++)
      {
   
   
    digitalWrite(b[i],a[4][i]);
      }
  }
    if(income=='5')
  {
   
   
      for(int i=-1;i<8;i++)
      {
   
   
    digitalWrite(b[i],a[5][i]);
      }
  }
    if(income=='6')
  {
   
   
      for(int i=-1;i<8;i++)
      {
   
   
    digitalWrite(b[i],a[6][i]);
      }
  }
    if(income=='7')
  {
   
   
      for(int i=-1;i<8;i++)
      {
   
   
    digitalWrite(b[i],a[7][i]);
      }
  }
    if(income=='8')
  {
   
   
      for(int i=-1;i<8;i++)
      {
   
   
    digitalWrite(b[i],a[8][i]);
      }
  }
    
    if(income=='9')
  {
   
   
      for(int i=-1;i<8;i++)
      {
   
   
    digitalWrite(b[i],a[9][i]);
      }
  }
  }
}

亲测可用!
点赞拿走不谢。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!