#include "DHT.h"
class SevenSeg {
private:
int a, b, c, d, e, f, g;
public:
SevenSeg(int A, int B, int C, int D, int E, int F, int G) {
a = A; b = B; c = C; d = D; e = E; f = F; g = G;
}
//Set the pins (a, b, c, d, e, f, g) for SSD.
void setPins() {
pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT);
pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT);
}
//Write the pin states for (a, b, c, d, e, f).
void write(int as = 1, int bs = 1, int cs = 1, int ds = 1, int es = 1, int fs = 1, int gs = 1) {
digitalWrite(a, as); digitalWrite(b, bs); digitalWrite(c, cs); digitalWrite(d, ds);
digitalWrite(e, es); digitalWrite(f, fs); digitalWrite(g, gs);
}
//Display the specified number.
void CCdisplayNumber(int n) {
if (n == 0) { write(1, 1, 1, 1, 1, 1, 0); }
if (n == 1) { write(0, 1, 1, 0, 0, 0, 0); }
if (n == 2) { write(1, 1, 0, 1, 1, 0, 1); }
if (n == 3) { write(1, 1, 1, 1, 0, 0, 1); }
if (n == 4) { write(0, 1, 1, 0, 0, 1, 1); }
if (n == 5) { write(1, 0, 1, 1, 0, 1, 1); }
if (n == 6) { write(1, 0, 1, 1, 1, 1, 1); }
if (n == 7) { write(1, 1, 1, 0, 0, 0, 0); }
if (n == 8) { write(1, 1, 1, 1, 1, 1, 1); }
if (n == 9) { write(1, 1, 1, 1, 0, 1, 1); }
}
void CAdisplayNumber(int n) {
if (n == 0) { write(0, 0, 0, 0, 0, 0, 1); }
if (n == 1) { write(1, 0, 0, 1, 1, 1, 1); }
if (n == 2) { write(0, 0, 1, 0, 0, 1, 0); }
if (n == 3) { write(0, 0, 0, 0, 1, 1, 0); }
if (n == 4) { write(1, 0, 0, 1, 1, 0, 0); }
if (n == 5) { write(0, 1, 0, 0, 1, 0, 0); }
if (n == 6) { write(0, 1, 0, 0, 0, 0, 0); }
if (n == 7) { write(0, 0, 0, 1, 1, 1, 1); }
if (n == 8) { write(0, 0, 0, 0, 0, 0, 0); }
if (n == 9) { write(0, 0, 0, 0, 1, 0, 0); }
}
};
void CAMultiplex(int S1, int S2, int S3, int val) {
digitalWrite(S1, 1);
digitalWrite(S2, 0);
digitalWrite(S3, 0);
}
void CCMultiplex(int S1, int S2, int S3, SevenSeg S) {
S.CCdisplayNumber(8);
digitalWrite(S1, 0);
digitalWrite(S2, 1);
digitalWrite(S3, 0);
delay(10);
}
//#define DHTPIN 2
//#define DHTTYPE DHT22
//DHT dht(DHTPIN, DHTTYPE);
SevenSeg s(1, 2, 3, 4, 5, 15, 16);
int s1 = 17; //select for SSD 1.
int s2 = 18; //select for SSD 2.
int s3 = 19; //select for SSD 3.
int d1 = 1, d10 = 6, d0 = 4;
void setup() {
Serial.begin(9600);
//dht.begin();
s.setPins();
}
void loop() {
float t = 25.1;
int _t = t;
float decimal = t - _t;
d1 = _t%10;
d10 = (_t/10)%10;
d0 = decimal*10;
Serial.println(t);
s.CCdisplayNumber(8);
digitalWrite(s1, 1);
digitalWrite(s2, 0);
digitalWrite(s3, 0);
s.CAdisplayNumber(d10);
delay(10);
s.CCdisplayNumber(8);
digitalWrite(s1, 0);
digitalWrite(s2, 1);
digitalWrite(s3, 0);
s.CAdisplayNumber(d1);
delay(10);
s.CCdisplayNumber(8);
digitalWrite(s1, 0);
digitalWrite(s2, 0);
digitalWrite(s3, 1);
s.CAdisplayNumber(d0);
delay(10);
}