请教各位大佬 用7段显示器显示电压的程序-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3074|回复: 0

请教各位大佬 用7段显示器显示电压的程序

[复制链接]
发表于 2018-4-26 23:40 | 显示全部楼层 |阅读模式
以下是程序有点问题但不知道是哪的问题 请各位看看指点指点



float temp;
long  vol;
int a=13;
int b=12;
int c=11;
int d=10;
int e=9;
int f=8;
int g=7;
int dp=6;
int C1=3;
int C2=2;
int C3=1;
int C4=0;
byte LED[10]=
{
0b01111110,//0
0b00110000,//1
0b01101101,//2
0b01111001,//3
0b00110011,//4
0b01011011,//5
0b01011111,//6
0b01110000,//7
0b01111111,//8
0b01111011,//9
} ;
void Display()
{
digitalWrite(C4,LOW);
nunberOut(vol/1000);
digitalWrite(C1,HIGH);
digitalWrite(dp,LOW);
delay(5);
digitalWrite(C1,LOW);
nunberOut(vol%1000/100);
digitalWrite(C2,HIGH);
digitalWrite(dp,HIGH);
delay(5);
digitalWrite(C2,LOW);
nunberOut(vol%100/10);
digitalWrite(C3,HIGH);
digitalWrite(dp,LOW);
delay(5);
digitalWrite(C3,LOW);
nunberOut(vol%10);
digitalWrite(C4,HIGH);
digitalWrite(dp,LOW);
delay(5);

}
void nunberOut(int n)
{
digitalWrite(a,LED[n]&0x40);
digitalWrite(b,LED[n]&0x20);
digitalWrite(c,LED[n]&0x10);
digitalWrite(d,LED[n]&0x08);
digitalWrite(e,LED[n]&0x04);
digitalWrite(f,LED[n]&0x02);
digitalWrite(g,LED[n]&0x01);

}

void setup()
{

  Serial.begin(9600);     //使用9600的波特率进行串口通讯
  pinMode(a,OUTPUT);
  pinMode(b,OUTPUT);
  pinMode(c,OUTPUT);
  pinMode(d,OUTPUT);
  pinMode(e,OUTPUT);
  pinMode(f,OUTPUT);
  pinMode(g,OUTPUT);
  pinMode(dp,OUTPUT);
  pinMode(C1,OUTPUT);
  pinMode(C2,OUTPUT);
  pinMode(C3,OUTPUT);
  pinMode(C4,OUTPUT);
}
void loop()
{

vol = analogRead(A0);                    
//从A0口读取电压数据存入刚刚创建整数型变量V1,模拟口的电压测量范围为0-5V 返回的值为0-1024
vol = vol * (5.0 / 1023.0) * 2;//我们将 V1的值换算成实际电压值存入浮点型变量 vol            
//我们将 V1的值换算成实际电压值存入浮点型变量 vol
  if (vol == temp)                             
//这部分的判断是用来过滤重复的数据,只有本次的电压值和上次不一时才进行输出
  {
    temp = vol;                               //比较完成后,将这次的值存入比对比用的变量temp
  }
  else
  {
    Serial.print(vol);                       //串口输出电压值,并且不换行  
    Serial.println(" V");                    //串口输出字符V,并且换行
    temp = vol;
    delay(1000);                           //输出完成后等待1秒钟,用于控制数据的刷新速度。
  }

Display();
}

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 05:31 , Processed in 0.108992 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表