Last active
October 6, 2016 06:20
-
-
Save yeffrimic/6856a2668200f12a8b746b93853e6ac3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//We always have to include the library | |
#include "LedControl.h" | |
#include "DHT.h" | |
#define DHTPIN 2 // what digital pin we're connected to | |
#define DHTTYPE DHT11 // DHT 11 | |
DHT dht(DHTPIN, DHTTYPE); | |
LedControl lc = LedControl(12, 11, 10, 1); | |
/* we always wait a bit between updates of the display */ | |
unsigned long delaytime = 2000; | |
void setup() { | |
/* | |
The MAX72XX is in power-saving mode on startup, | |
we have to do a wakeup call | |
*/ | |
dht.begin(); | |
lc.shutdown(0, false); | |
/* Set the brightness to a medium values */ | |
lc.setIntensity(0, 8); | |
/* and clear the display */ | |
lc.clearDisplay(0); | |
} | |
/* | |
This method will display the characters for the | |
word "Arduino" one after the other on the matrix. | |
(you need at least 5x7 leds to see the whole chars) | |
*/ | |
void writeArduinoOnMatrix(uint8_t value) { | |
/* here is the data for the characters */ | |
byte one[8] = { | |
B01100000, | |
B11100000, | |
B01100000, | |
B01100000, | |
B01100000, | |
B01100000, | |
B11110000 | |
}; | |
byte two[8] = { | |
B11100000, | |
B00100000, | |
B00100000, | |
B11100000, | |
B11000000, | |
B11000000, | |
B11100000, | |
B00000000 | |
}; | |
byte three[8] = { | |
B11100000, | |
B00100000, | |
B00100000, | |
B11100000, | |
B00100000, | |
B00100000, | |
B11100000, | |
B00000000 | |
}; | |
byte four[8] = { | |
B10100000, | |
B10100000, | |
B10100000, | |
B11100000, | |
B00100000, | |
B00100000, | |
B00100000, | |
B00000000 | |
}; | |
byte five[8] = { | |
B11100000, | |
B11000000, | |
B11000000, | |
B11100000, | |
B00100000, | |
B00100000, | |
B11100000, | |
B00000000 | |
}; | |
byte six[8] = { | |
B11100000, | |
B11000000, | |
B11000000, | |
B11100000, | |
B10100000, | |
B10100000, | |
B11100000, | |
B00000000 | |
}; | |
byte seven[8] = { | |
B11100000, | |
B00100000, | |
B00100000, | |
B01000000, | |
B10000000, | |
B10000000, | |
B10000000, | |
B00000000 | |
}; | |
byte eight[8] = { | |
B11100000, | |
B10100000, | |
B10100000, | |
B11100000, | |
B10100000, | |
B10100000, | |
B11100000, | |
B00000000 | |
}; | |
byte nine[8] = { | |
B11100000, | |
B10100000, | |
B10100000, | |
B11100000, | |
B00100000, | |
B00100000, | |
B00100000, | |
B00000000 | |
}; | |
byte zero[8] = { | |
B11100000, | |
B10100000, | |
B10100000, | |
B10100000, | |
B10100000, | |
B10100000, | |
B11100000, | |
B00000000 | |
}; | |
uint8_t dec = 0; | |
uint8_t unit = 0; | |
if (value > 0 && value < 10) { | |
dec = 00; | |
unit = value ; | |
} else if (value > 11 && value < 20) { | |
dec = 1; | |
unit = value - 10 ; | |
} | |
else if (value > 21 && value < 30) { | |
dec = 2; | |
unit = value - 20; | |
} | |
else if (value > 31 && value < 40) { | |
dec = 3; | |
unit = value - 30; | |
} | |
else if (value > 41 && value < 50) { | |
dec = 4; | |
unit = value - 40; | |
} | |
else if (value > 51 && value < 60) { | |
dec = 5; | |
unit = value - 50; | |
} | |
else if (value > 61 && value < 70) { | |
dec = 6; | |
unit = value - 60; | |
} | |
else if (value > 71 && value < 80) { | |
dec = 7; | |
unit = value - 70; | |
} | |
else if (value > 81 && value < 90) { | |
dec = 8; | |
unit = value - 80; | |
} | |
else if (value > 91 && value < 100) { | |
dec = 9; | |
unit = value - 90; | |
} | |
else if (value > 10 && value < 100) { | |
dec = 9; | |
unit = value - 90; | |
} | |
switch (dec) { | |
case 0: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, zero[i]); | |
} | |
break; | |
case 1: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, one[i]); | |
} | |
break; | |
case 2: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, two[i]); | |
} | |
break; | |
case 3: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, three[i]); | |
} | |
break; | |
case 4: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, four[i]); | |
} | |
break; | |
case 5: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, five[i]); | |
} | |
break; | |
case 6: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, six[i]); | |
} | |
break; | |
case 7: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, seven[i]); | |
} | |
break; | |
case 8: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, eight[i]); | |
} | |
break; | |
case 9: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, nine[i]); | |
} | |
break; | |
} | |
switch (unit) { | |
case 0: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, zero[i] >> 4); | |
} | |
break; | |
case 1: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, one[i] >> 4); | |
} | |
break; | |
case 2: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, two[i] >> 4); | |
} | |
break; | |
case 3: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, three[i] >> 4); | |
} | |
break; | |
case 4: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, four[i] >> 4); | |
} | |
break; | |
case 5: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, five[i] >> 4); | |
} | |
break; | |
case 6: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, six[i] >> 4); | |
} | |
break; | |
case 7: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, seven[i] >> 4); | |
} | |
break; | |
case 8: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, eight[i] >> 4); | |
} | |
break; | |
case 9: | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i, nine[i] >> 4); | |
} | |
break; | |
} | |
} | |
void blank(){ | |
for (int i = 0; i < 8; i++) { | |
lc.setRow(0, i,B00000000); | |
} | |
} | |
void loop() { | |
float h = dht.readHumidity(); | |
// Read temperature as Celsius (the default) | |
float t = dht.readTemperature(); | |
for (int a = 0; a < 100 ; a++) { | |
writeArduinoOnMatrix(t); | |
delay(1); | |
} | |
blank(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment