基于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]); } } } }
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/123265.html