#include <Wire.h>
#include <Arduino.h>
#include <U8g2lib.h>
#include "Adafruit_HDC1000.h"
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
Adafruit_HDC1000 hdc = Adafruit_HDC1000();
int count_a = 1;
int currentUpState_a = 0;
int lastUpButtonState_a = 0;
int lcurrentDownState_a = 0;
int lastDownButtonState_a = 0;
unsigned long now_Temp;
unsigned long loopTime_Temp;
unsigned long now_Humid;
unsigned long loopTime_Humid;
byte resetPuls = 5;
byte wait_2 = 2;
byte on_Puls_5 = 5;
void setup() {
digitalWrite(21, HIGH);
delay(resetPuls);
digitalWrite(21, LOW);
Serial.println("HDC100x test");
if (!hdc.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
u8g2.begin();
pinMode(A0, INPUT);
pinMode(A1, INPUT);
for (int i = 4; i <= 10; i++) {
pinMode(i, OUTPUT);
}
digitalWrite(4, HIGH);
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.drawStr(2, 25, " ** NoiseAmp **");
u8g2.drawStr(2, 50, "** PT100 Calibrator **");
u8g2.sendBuffer();
delay (3000);
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.drawStr(16, 10, "Cal. Temperature");
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.drawStr(27, 64, "C");
u8g2.drawStr(73, 64, "%");
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.drawStr(18, 47, "R =");
u8g2.drawStr(94, 47, "Ohm");
u8g2.drawStr(120, 64, "V");
u8g2.drawStr(95, 64, "3.18");
u8g2.drawLine(0, 53, 128, 53);
u8g2.sendBuffer();
}
void loop() {
int count_aVal = 0;
currentUpState_a = digitalRead(A0);
if (currentUpState_a != lastUpButtonState_a) {
if ( currentUpState_a == LOW )
count_aVal = 1;
lastUpButtonState_a = currentUpState_a;
}
lcurrentDownState_a = digitalRead(A1);
if (lcurrentDownState_a != lastDownButtonState_a) {
if ( lcurrentDownState_a == LOW )
count_aVal = -1;
lastDownButtonState_a = lcurrentDownState_a;
}
if (count_aVal) {
count_a += count_aVal;
count_a = constrain(count_a, 1, 7);
for (int i = 1; i <= 7; i++) {
}
}
u8g2.setFont(u8g2_font_profont17_mf);
if (count_a == 1) {
u8g2.drawStr(5, 30, " " );
u8g2.drawStr(31, 31, "0 Degrees" );
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.drawStr(41, 47, "100.0000" );
digitalWrite(21, HIGH);
delay(resetPuls);
digitalWrite(21, LOW);
delay(wait_2);
digitalWrite(4, HIGH);
delay(on_Puls_5);
digitalWrite(4, LOW);
} else if (count_a == 2) {
u8g2.setFont(u8g2_font_profont17_mf);
u8g2.drawStr(22, 31, "25 Degrees" );
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.drawStr(41, 47, "109.7346" );
digitalWrite(21, HIGH);
delay(resetPuls);
digitalWrite(21, LOW);
delay(wait_2);
digitalWrite(5, HIGH);
delay(on_Puls_5);
digitalWrite(5, LOW);
} else if (count_a == 3) {
u8g2.setFont(u8g2_font_profont17_mf);
u8g2.drawStr(22, 31, "40 Degrees" );
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.drawStr(41, 47, "115.5408" );
digitalWrite(21, HIGH);
delay(resetPuls);
digitalWrite(21, LOW);
delay(wait_2);
digitalWrite(6, HIGH);
delay(on_Puls_5);
digitalWrite(6, LOW);
} else if (count_a == 4) {
u8g2.setFont(u8g2_font_profont17_mf);
u8g2.drawStr(22, 31, "42 Degrees" );
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.drawStr(41, 47, "116.3729" );
digitalWrite(21, HIGH);
delay(resetPuls);
digitalWrite(21, LOW);
delay(wait_2);
digitalWrite(7, HIGH);
delay(on_Puls_5);
digitalWrite(7, LOW);
} else if (count_a == 5) {
u8g2.setFont(u8g2_font_profont17_mf);
u8g2.drawStr(22, 31, "50 Degrees" );
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.drawStr(41, 47, "119.3971" );
digitalWrite(21, HIGH);
delay(resetPuls);
digitalWrite(21, LOW);
delay(wait_2);
digitalWrite(8, HIGH);
delay(on_Puls_5);
digitalWrite(8, LOW);
} else if (count_a == 6) {
u8g2.setFont(u8g2_font_profont17_mf);
u8g2.drawStr(5, 31, " " );
u8g2.drawStr(22, 31, "75 Degrees" );
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.drawStr(41, 47, "128.9874" );
digitalWrite(21, HIGH);
delay(resetPuls);
digitalWrite(21, LOW);
delay(wait_2);
digitalWrite(9, HIGH);
delay(on_Puls_5);
digitalWrite(9, LOW);
} else if (count_a == 7) {
u8g2.setFont(u8g2_font_profont17_mf);
u8g2.drawStr(5, 31, " " );
u8g2.drawStr(13, 31, "100 Degrees" );
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.drawStr(41, 47, "138.5055" );
digitalWrite(21, HIGH);
delay(resetPuls);
digitalWrite(21, LOW);
delay(wait_2);
digitalWrite(10, HIGH);
delay(on_Puls_5);
digitalWrite(10, LOW);
}
now_Temp = millis();
if ((now_Temp - loopTime_Temp) > 2000) {
loopTime_Temp += 2000;
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.setCursor(2, 64);
u8g2.print(hdc.readTemperature(), 1);
}
else
now_Humid = millis();
if ((now_Humid - loopTime_Humid) > 13000) {
loopTime_Humid += 13000;
u8g2.setFont(u8g2_font_6x12_mf);
u8g2.setCursor(48, 64);
u8g2.print(hdc.readHumidity(), 1);
}
else
u8g2.sendBuffer();
delay (1);
}