#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN A0
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE); //Initialize DHT sensor
#define A 2
#define B 3
#define C 4
#define D 5
#define E 6
#define F 7
#define G 8
#define DOT 9
#define SEG1 10
#define SEG2 11
#define SEG3 12
void setup()
{
// put your setup code here, to run once:
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(DOT, OUTPUT);
pinMode(SEG1, OUTPUT);
pinMode(SEG2, OUTPUT);
pinMode(SEG3, OUTPUT);
Serial.begin(9600);
dht.begin();
}
void out_port(byte temp)
{
digitalWrite(A, temp&0B00000001);
digitalWrite(B, temp&0B00000010);
digitalWrite(C, temp&0B00000100);
digitalWrite(D, temp&0B00001000);
digitalWrite(E, temp&0B00010000);
digitalWrite(F, temp&0B00100000);
digitalWrite(G, temp&0B01000000);
digitalWrite(DOT, temp&0B10000000);
}
byte tabelseg[]=
{
0b11000000, //0
0b11111001, //1
0b10100100, //2
0b10110000, //3
0b10011001, //4
0b10010010, //5
0b10000010, //6
0b11111000, //7
0b10000000, //8
0b10010000, //9
0b01111111, //dot
0b00111001, //C
};
unsigned int i, satuan, puluhan, ratusan;
float humi, celcius;
void loop()
{
celcius=dht.readTemperature();
humi = dht.readHumidity();
i=celcius*10;
Serial.println(celcius);
Serial.println(humi);
ratusan=i/100;
puluhan=i/10;
puluhan=puluhan%10; //misal 12/10=1, nilai 1 masuk ke puluhan
satuan=i%10; //misal 12%10 sisa 2, nilai 2 masuk ke satuan
out_port (tabelseg[satuan]);
digitalWrite(SEG1, HIGH);
delay(5);
digitalWrite(SEG1, LOW);
out_port (tabelseg[puluhan]);
digitalWrite(SEG2, HIGH);
delay(5);
digitalWrite(SEG2, LOW);
out_port (tabelseg[ratusan]);
digitalWrite(SEG3, HIGH);
delay(5);
digitalWrite(SEG3, LOW);
}