Skip to content

Instantly share code, notes, and snippets.

@lazygyu
Created December 24, 2016 12:41
Show Gist options
  • Save lazygyu/80a6d0956347e857a77387f423ffe050 to your computer and use it in GitHub Desktop.
Save lazygyu/80a6d0956347e857a77387f423ffe050 to your computer and use it in GitHub Desktop.
byte pLed = 2;
byte segPins[] = {5, 7, 8, 10, A0, 13, 12, 11};
byte digitPins[] = {6, 9};
byte sensorPin = A1;
byte relayPin = 4;
byte cnt = 0;
bool isOn = false;
long last = 0;
long cur = 0;
long elapsed = 0;
byte humidity = 0;
byte digits[] = {
0b01110111,
0b01000010,
0b10110110,
0b11100110,
0b11000011,
0b11100101,
0b11110101,
0b01000110,
0b11110111,
0b11100111
};
void setup() {
Serial.begin(9600);
// put your setup code here, to run once:
pinMode(pLed, OUTPUT);
pinMode(relayPin, OUTPUT);
for(byte i=0;i<8;i++){
pinMode(segPins[i], OUTPUT);
digitalWrite(segPins[i], HIGH);
}
pinMode(digitPins[0], OUTPUT);
pinMode(digitPins[1], OUTPUT);
last = millis();
cur = last;
}
void writeDigit(int digit, int no){
digitalWrite(digitPins[digit], HIGH);
for(byte i=0;i<8;i++){
digitalWrite(segPins[i], ((digits[no]>>i)&0x01)==1?LOW:HIGH);
}
delay(10);
digitalWrite(digitPins[digit], LOW);
}
void loop() {
last = cur;
cur = millis();
elapsed += cur-last;
// put your main code here, to run repeatedly:
if( elapsed > 1000 ){
cnt++;
elapsed -= 1000;
humidity = analogRead(sensorPin)/10;
Serial.println(humidity);
if( isOn && humidity > 62 ){
isOn = false;
digitalWrite(relayPin, HIGH);
digitalWrite(pLed, HIGH);
}
if( !isOn && humidity < 59 ){
isOn = true;
digitalWrite(relayPin, LOW);
digitalWrite(pLed, LOW);
}
}
writeDigit(0, humidity/10);
writeDigit(1, humidity%10);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment