实验1.15 数码管显示液位,同时led点亮报警

实验1.15      数码管显示液位,同时led点亮报警

/*调电位器的整模拟值(相当于液位值)到预定值,数码管显示对应的数字,led灯亮

同时串口监视器显示模拟值

*/

//电位器控制数码管显示0-9数字,同时串口监视器显示

//电位器控制共阴极数码管显示0-9数字,同时串口监视器显示

//led灯随着数码管数字增大,亮度增大,

//led灯只能用模拟引脚3,5,6,9,10,11这几个引脚

//原程序如下:

int a = 3;  //声明引脚

int b = 4;

int c = 5;

int d = 6;

int e = 7;

int f = 8;

int g = 9;

int i;         //声明一个全局变量

int led = 11;  //声明led引脚

void D0()      //自定义显示数字的函数0

{

  digitalWrite(a, 1);

  digitalWrite(b, 1);

  digitalWrite(c, 1);

  digitalWrite(d, 1);

  digitalWrite(e, 1);

  digitalWrite(f, 1);

  digitalWrite(g, 0);

}

void D1()  //自定义显示数字的函数1

{

  digitalWrite(a, 0);

  digitalWrite(b, 1);

  digitalWrite(c, 1);

  digitalWrite(d, 0);

  digitalWrite(e, 0);

  digitalWrite(f, 0);

  digitalWrite(g, 0);

}

void D2()  //自定义显示数字的函数2

{

  digitalWrite(a, 1);

  digitalWrite(b, 1);

  digitalWrite(c, 0);

  digitalWrite(d, 1);

  digitalWrite(e, 1);

  digitalWrite(f, 0);

  digitalWrite(g, 1);

}

void D3() {

  digitalWrite(a, 1);

  digitalWrite(b, 1);

  digitalWrite(c, 1);

  digitalWrite(d, 1);

  digitalWrite(e, 0);

  digitalWrite(f, 0);

  digitalWrite(g, 1);

}

void D4() {

  digitalWrite(a, 0);

  digitalWrite(b, 1);

  digitalWrite(c, 1);

  digitalWrite(d, 0);

  digitalWrite(e, 0);

  digitalWrite(f, 1);

  digitalWrite(g, 1);

}

void D5() {

  digitalWrite(a, 1);

  digitalWrite(b, 0);

  digitalWrite(c, 1);

  digitalWrite(d, 1);

  digitalWrite(e, 0);

  digitalWrite(f, 1);

  digitalWrite(g, 1);

}

void D6() {

  digitalWrite(a, 1);

  digitalWrite(b, 0);

  digitalWrite(c, 1);

  digitalWrite(d, 1);

  digitalWrite(e, 1);

  digitalWrite(f, 1);

  digitalWrite(g, 1);

}

void D7() {

  digitalWrite(a, 1);

  digitalWrite(b, 1);

  digitalWrite(c, 1);

  digitalWrite(d, 0);

  digitalWrite(e, 0);

  digitalWrite(f, 0);

  digitalWrite(g, 0);

}

void D8() {

  digitalWrite(a, 1);

  digitalWrite(b, 1);

  digitalWrite(c, 1);

  digitalWrite(d, 1);

  digitalWrite(e, 1);

  digitalWrite(f, 1);

  digitalWrite(g, 1);

}

void D9() {

  digitalWrite(a, 1);

  digitalWrite(b, 1);

  digitalWrite(c, 1);

  digitalWrite(d, 1);

  digitalWrite(e, 0);

  digitalWrite(f, 1);

  digitalWrite(g, 1);

}

void qingping()  //自定义清屏函数,可以不用清屏

{

  for (int i = 2; i <= 9; i++) {

    digitalWrite(i, LOW);

  }

}

void setup() {

  Serial.begin(9600);    //串口初始化

  pinMode(A0, INPUT);    //数字模拟就为输入模式,也可以不设置

  pinMode(led, OUTPUT);  //设置led引脚为输出模式

  pinMode(a, OUTPUT);

  pinMode(b, OUTPUT);

  pinMode(c, OUTPUT);

  pinMode(d, OUTPUT);

  pinMode(e, OUTPUT);

  pinMode(f, OUTPUT);

  pinMode(g, OUTPUT);

}

void loop() {

  i = analogRead(A0);  //读取模拟引脚值到变量i

  analogWrite(led, analogRead(A0) / 4);  

  //数字引脚是8位255,模拟引脚是10位1024,所以除以4换算成意义的//值,否则,调节时,led灯在255时会闪烁

  Serial.print(i);        //打印变量值到串口监视器

  Serial.println("  cm");     //打印液位单位

  Serial.println("液位值:");   //打印名称

  delay(500);  //延时

  if (i >= 50) {        //判断数码管在模拟值数字转换点,大于50时显示0

    // qingping();

    D0();

  }

  if (i >= 100)  //模拟值大于100时,显示1。

  {

    D1();

  }

  if (i >= 150) {     //模拟值大于150时,显示2。

    // qingping();

    D2();

  }

  if (i >= 200) {

    // qingping();

    D3();

  }

  if (i >= 230) {

    // qingping();

    D4();

  }

  if (i >= 270) {

    // qingping();

    D5();

  }

  if (i >= 320) {

    //  qingping();

    D6();

  }

  if (i >= 370) {

    //  qingping();

    D7();

  }

  if (i >= 450) {

    //  qingping();

    D8();

  }

  if (i >= 500) {

    // qingping();

    D9();

  }

}

实验结果:

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值