Skip to content

Instantly share code, notes, and snippets.

@yeffrimic
Last active October 6, 2016 06:20
Show Gist options
  • Save yeffrimic/6856a2668200f12a8b746b93853e6ac3 to your computer and use it in GitHub Desktop.
Save yeffrimic/6856a2668200f12a8b746b93853e6ac3 to your computer and use it in GitHub Desktop.
//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