标题:
新手尝试Arduino温度数码管显示程序 可调亮度
[打印本页]
作者:
ADE7755
时间:
2019-4-15 11:16
标题:
新手尝试Arduino温度数码管显示程序 可调亮度
175346i6kgs62wjwxc3s6h_WPS图片.jpg
(4.41 MB, 下载次数: 47)
下载附件
2019-4-15 11:09 上传
int a = 15;//设置端口
int b = 19;
int c = 7;
int d = 5;
int e = 4;
int f = 16;
int g = 8;
int dp = 6;
int tempPin = 7;
int d1 = 14;
int d2 = 17;
int d3 = 18;
int d4 = 9;
int n = 0;//温度变量
int del = 2; //数码管的亮度
unsigned long m=0
byte segs[7] = { a, b, c, d, e, f, g }
byte seven_seg_digits[10][7] = { { 1,1,1,1,1,1,0 },
{ 0,1,1,0,0,0,0 },
{ 1,1,0,1,1,0,1 },
{ 1,1,1,1,0,0,1 },
{ 0,1,1,0,0,1,1 },
{ 1,0,1,1,0,1,1 },
{ 1,0,1,1,1,1,1 },
{ 1,1,1,0,0,0,0 },
{ 1,1,1,1,1,1,1 },
{ 1,1,1,1,0,1,1 }
};
void setup()
{
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(d4, OUTPUT);
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(11, OUTPUT);
digitalWrite(11, LOW);
Serial.begin(9600);
}
void loop()//运行程序
{
float tempval=analogRead(tempPin)* 4.6;
if (m%30==0) n=int(tempval);
if (n>300) digitalWrite(11, HIGH);
if (n<=300) digitalWrite(11, LOW);
clearLEDs()
delay(del)
lightSegments(n/1000%10);
pickDigit((n/1000%10>0));
clearLEDs();
delay(del);
pickDigit(2);
lightSegments(n/100%10);
delay(del+2);
clearLEDs();
pickDigit(3);
lightSegments(n/10%10);
dispDec(3);
delay(del+2);
clearLEDs();
delay(del);
pickDigit(4);
lightSegments(n%10);
delay(del-1);
m++;
Serial.println(analogRead(tempPin));
Serial.println(n);
}
void pickDigit(int x)
{
digitalWrite(d1, LOW);
digitalWrite(d2, LOW);
digitalWrite(d3, LOW);
digitalWrite(d4, LOW);
switch(x)
{
case 1:
digitalWrite(d1, HIGH);
break;
case 2:
digitalWrite(d2, HIGH);
break;
case 3:
digitalWrite(d3, HIGH);
break;
case 4:// default:
digitalWrite(d4, (m%100>=30));
break;
}
}
void dispDec(int x)
{
digitalWrite(dp, LOW);//点亮小数点
}
void clearLEDs()
{
for (int i = 0; i < 7; i++)
{
digitalWrite(segs[ i], HIGH);
}
digitalWrite(dp, HIGH);
}
void lightSegments(int x)
{
for (int i = 0; i < 7; i++)
{
digitalWrite(segs[ i], 1-seven_seg_digits[x][ i]);
}
}
复制代码
作者:
admin
时间:
2019-4-15 16:53
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1