Compare commits

...

2 commits

Author SHA1 Message Date
7c12ac40f8
Try to get hardware working. Proper regulation is missing. 2024-04-23 17:18:56 +02:00
26f68b2b74
Update circuitdiagram for DS18B20 support.
Keep Stuff for PT100. Might add support for both...
2024-04-13 13:10:51 +02:00
2 changed files with 1429 additions and 139 deletions

View file

@ -1,10 +1,24 @@
#include <Wire.h> // Support for I2C --> LCD #include <Wire.h> // Support for I2C --> LCD
#include <LiquidCrystal_I2C.h> // Support for PCF8574 --> LCD #include <LiquidCrystal_I2C.h> // Support for PCF8574 --> LCD
#include <OneWire.h> // 1-Wiresupport for DS18B20
#include <DallasTemperature.h> // Easy reading of DS18B20
#define ONE_WIRE_BUS 10 // Enable 1-Wirebus on digital 10 (PB2 - Pin16)
LiquidCrystal_I2C lcd(0x3F,20,4); // declare LCD LiquidCrystal_I2C lcd(0x3F,20,4); // declare LCD
OneWire oneWire(ONE_WIRE_BUS); // declare 1-Wirebus
DallasTemperature sensors(&oneWire); // declare sensors
float tempset;
float watertemp;
int poti;
void setup() { void setup() {
// Setup GPIO
pinMode(9, OUTPUT); // Output "Wecktopf"
pinMode(8, OUTPUT); // Fan
// Setup sensors
sensors.begin();
// Setup I2C-LCD // Setup I2C-LCD
lcd.init(); lcd.init();
lcd.backlight(); lcd.backlight();
@ -19,15 +33,53 @@ void setup() {
void loop() { void loop() {
// //
lcd.setCursor(6, 0); settemp();
lcd.print("Nothing"); readtemp();
lcd.setCursor(9, 1); lcdoutput();
lcd.print("to");
lcd.setCursor(9, 2);
lcd.print("do");
lcd.setCursor(8, 3);
lcd.print("jet.");
delay(1000000000); delay(100);
if (tempset >= watertemp) {
digitalWrite(9, HIGH);
}
else {
digitalWrite(9, LOW);
}
} }
//------------------------------------------
// Read temp from DS18B20
void readtemp() {
/* Read temp of first sensor and take if for watertemp.
* In future we might add others.
*/
sensors.requestTemperatures();
watertemp = sensors.getTempCByIndex(0);
}
//------------------------------------------
// LCD output
void lcdoutput() {
// Output temperatureset
lcd.setCursor(0, 1);
lcd.print("s:");
lcd.print(tempset);
// Output watertemp
lcd.setCursor(9, 1);
lcd.print("t:");
lcd.print(watertemp);
}
//------------------------------------------
// Read Poti
void settemp() {
poti = analogRead(A3);
tempset = (poti*0.1);
}

File diff suppressed because it is too large Load diff