#include <dht.h>
#define DHT22_PIN PB2
#define DATA_PIN PB1 // Pin connected to DS of 74HC595-- 1
#define LATCH_PIN PB3 // Pin connected to STCP of 74HC595-- 3
#define CLOCK_PIN PB4 // Pin connected to SHCP of 74HC595-- 4
uint8_t digits[] = {
0b01111110, // 0
0b01010000, // 1
0b01101101, // 2
0b01111001, // 3
0b01010011, // 4
0b00111011, // 5
0b00111111, // 6
0b01110000, // 7
0b01111111, // 8
0b01111011, // 9
0b00001111,//t
0b01010111,//H
};
dht DHT;
void display(uint8_t value)
{
uint8_t compteur_0;
uint8_t compteur_1;
compteur_1 = value/10;
compteur_0 = value % 10;
uint16_t data= digits[compteur_0];
data <<=8;
data|= digits[compteur_1];
writeRegisters(data);
}
void setup() {
// Set pins to output
pinMode(DATA_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(LATCH_PIN, OUTPUT);
pinMode(DHT22_PIN, INPUT);
}
//uint8_t compteur=0;
uint8_t value;
void loop() {
DHT.read22(DHT22_PIN);
writeRegisters(0x000F);// display t
delay(1000);
display(DHT.temperature);
delay(1000);
writeRegisters(0x0057);// display H
delay(1000);
display(DHT.humidity);
delay(1000);
/*uint8_t compteur_0;
uint8_t compteur_1;
compteur_1 = compteur/10;
compteur_0 = compteur % 10;
uint16_t data= digits[compteur_0];
data <<=8;
data|= digits[compteur_1];
writeRegisters(data);
delay(1000);
if (++compteur==100) compteur=0;*/
/*for (int i=0;i < 10; i++)
{
uint8_t j;
uint16_t data= digits[i];
data <<=8;
if ((i+1) >= 10)
{j=0;}
else
{
j=i+1;
}
data|= digits[j];
writeRegisters(data);
delay(1000);
}*/
}
void writeRegisters(uint16_t registers)
{
digitalWrite(LATCH_PIN, LOW);
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, highByte(registers));
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, lowByte(registers));
digitalWrite(LATCH_PIN, HIGH);
}