#include "DHT22.h"
#define DHTPIN A4
#define DHTTYPE DHT22
DHT22 dht(DHTPIN);
float th = 0.0;
const int segment[] ={12,10,8,7,6,11,9,4};
const int digit[] = {5,13,3,};
unsigned long interval =0;
bool temp = false;
int laststate;
void setup() {
// put your setup code here, to run once:
for(int i = 0;i<=7;i++){
pinMode(segment[i], OUTPUT);
}
for(int i = 0;i<=3;i++){
pinMode(digit[i], OUTPUT);
}
}
void tampil(int nilai)
{
if (nilai == 0){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 0);
digitalWrite(segment[5], 0);
digitalWrite(segment[6], 1);
digitalWrite(segment[7], 1);
}
if (nilai == 1){
digitalWrite(segment[0], 1);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 1);
digitalWrite(segment[4], 1);
digitalWrite(segment[5], 1);
digitalWrite(segment[6], 1);
}
if (nilai == 2){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 1);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 0);
digitalWrite(segment[5], 1);
digitalWrite(segment[6], 0);
}
if (nilai == 3){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 1);
digitalWrite(segment[5], 1);
digitalWrite(segment[6], 0);
}
if (nilai == 4){
digitalWrite(segment[0], 1);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 1);
digitalWrite(segment[4], 1);
digitalWrite(segment[5], 0);
digitalWrite(segment[6], 0);
}
if (nilai == 5){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 1);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 1);
digitalWrite(segment[5], 0);
digitalWrite(segment[6], 0);
}
if (nilai == 6){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 1);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 0);
digitalWrite(segment[5], 0);
digitalWrite(segment[6], 0);
}
if (nilai == 7){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 1);
digitalWrite(segment[4], 1);
digitalWrite(segment[5], 1);
digitalWrite(segment[6], 1);
}
if (nilai == 8){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 0);
digitalWrite(segment[5], 0);
digitalWrite(segment[6], 0);
}
if (nilai == 9){
digitalWrite(segment[0], 0);
digitalWrite(segment[1], 0);
digitalWrite(segment[2], 0);
digitalWrite(segment[3], 0);
digitalWrite(segment[4], 1);
digitalWrite(segment[5], 0);
digitalWrite(segment[6], 0);
}
digitalWrite(segment[7], 1);
}
void display(int a)
{
tampil(a / 100);
digitalWrite(digit[0], 1);
digitalWrite(digit[1], 0);
digitalWrite(digit[2], 0);
delay(10);
digitalWrite(digit[0], 0);
tampil(a % 100 /10);
digitalWrite(digit[0], 0);
digitalWrite(digit[1], 1);
digitalWrite(digit[2], 0);
digitalWrite(segment[7], 0);
delay(10);
digitalWrite(digit[1], 0);
tampil(a%10);
digitalWrite(digit[0], 0);
digitalWrite(digit[1], 0);
digitalWrite(digit[2], 1);
delay(10);
digitalWrite(digit[2], 0);
}
void loop() {
// put your main code here, to run repeatedly:
unsigned long times = millis();
if(times - interval >= 0){
interval = times;
if(temp == false){
temp = true;
} else{
temp = false;
}
}
if(temp == true){
th = dht.getTemperature();
display(th*10);
}
}