如何使数字各别显示,麻烦路过的大佬帮忙
下面代码是想用温湿度感测器侦测湿度,并用两颗七段显示器显示出来,不知道为什么十位数与个位数不能分开显示,请求大佬们帮忙下啦。#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
int a = 9;
int b = 3;
int c = 4;
int d = 5;
int e = 12;
int f = 7;
int g = 8;
int GND1 = 10;
int GND2 = 13;
int dig1 = 0;
int dig2 = 0;
void setup()
{
Serial.begin(9600);
dht.begin();
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(7, OUTPUT);
pinMode(GND1, OUTPUT);
pinMode(GND2, OUTPUT);
}
void loop()
{
int h = dht.readHumidity();
int t = dht.readTemperature();
//Serial.println(t);
Serial.println(h);
dig1 = h / 10;//十位數
dig2 = h - (dig1 * 10);//個位數
Serial.println(dig1);
Serial.println(dig2);
digitalWrite( GND2, HIGH);
digitalWrite( GND1,LOW);
DisplayNumber(dig2);//個位數
delay(1000);
digitalWrite( GND2,LOW);
digitalWrite( GND1,HIGH);
DisplayNumber(dig1);//十位數
delay(1000);
}
byte bcd_code = {
{0,0,0,0},
{0,0,0,1},
{0,0,1,0},
{0,0,1,1},
{0,1,0,0},
{0,1,0,1},
{0,1,1,0},
{0,1,1,1},
{1,0,0,0},
{1,0,0,1}
};
void DisplayNumber(int x) {
switch (x) {
case 0:
digitalWrite(7, bcd_code);
digitalWrite(5, bcd_code);
digitalWrite(4, bcd_code);
digitalWrite(3, bcd_code);
break;
case 1:
digitalWrite(7, bcd_code);
digitalWrite(5, bcd_code);
digitalWrite(4, bcd_code);
digitalWrite(3, bcd_code);
break;
case 2:
digitalWrite(7, bcd_code);
digitalWrite(5, bcd_code);
digitalWrite(4, bcd_code);
digitalWrite(3, bcd_code);
break;
case 3:
digitalWrite(7, bcd_code);
digitalWrite(5, bcd_code);
digitalWrite(4, bcd_code);
digitalWrite(3, bcd_code);
break;
case 4:
digitalWrite(7, bcd_code);
digitalWrite(5, bcd_code);
digitalWrite(4, bcd_code);
digitalWrite(3, bcd_code);
break;
case 5:
digitalWrite(7, bcd_code);
digitalWrite(5, bcd_code);
digitalWrite(4, bcd_code);
digitalWrite(3, bcd_code);
break;
case 6:
digitalWrite(7, bcd_code);
digitalWrite(5, bcd_code);
digitalWrite(4, bcd_code);
digitalWrite(3, bcd_code);
break;
case 7:
digitalWrite(7, bcd_code);
digitalWrite(5, bcd_code);
digitalWrite(4, bcd_code);
digitalWrite(3, bcd_code);
break;
case 8:
digitalWrite(7, bcd_code);
digitalWrite(5, bcd_code);
digitalWrite(4, bcd_code);
digitalWrite(3, bcd_code);
break;
case 9:
digitalWrite(7, bcd_code);
digitalWrite(5, bcd_code);
digitalWrite(4, bcd_code);
digitalWrite(3, bcd_code);
break;
}
}
页:
[1]