Servus zusammen,
anbei die andere Hälfte des Codes für meinem Pulverofen.
Hier ist die Tasterabfrage noch anders codiert. Wobei diese auf am Ofen funktioniert.
@Deltaflyer Kannst du mir evtl. wenn es dir recht ist die Hälften mit dem Counter Code zusammenfügen? Das wäre super nett ![]()
//Letzte aktualisierung -> 04.01.2024 um 17:51 Uhr
#include <LCD_I2C.h>
#include <max6675.h>
LCD_I2C LCD1(0x27, 20, 4);
LCD_I2C LCD2(0x23, 20, 4);
//Taster für Temperatursensoren
const int tasterPin = 27;
const int tasterPin_2 = 25;
const int tasterPin_3 = 24;
const int tasterPin_4 = 26;
int tasterZustand = LOW;
int vorherigerTasterZustand = HIGH;
int zaehler = 0;
int tasterZustand_2 = LOW;
int vorherigerTasterZustand_2 = HIGH;
int zaehler_2 = 0;
int tasterZustand_3 = LOW;
int vorherigerTasterZustand_3 = HIGH;
int zaehler_3 = 0;
int tasterZustand_4 = LOW;
int vorherigerTasterZustand_4 = HIGH;
int zaehler_4 = 0;
//Temperatursensor 1
int thermoDO = 11;
int thermoCS = 12;
int thermoCLK = 10;
MAX6675 thermocouple1(thermoCLK, thermoCS, thermoDO);
//Temperatursensor 2
int thermoDO_2 = 5;
int thermoCS_2 = 4;
int thermoCLK_2 = 13;
MAX6675 thermocouple2(thermoCLK_2, thermoCS_2, thermoDO_2);
//Temperatursensor 3
int thermoDO_3 = 3;
int thermoCS_3 = 2;
int thermoCLK_3 = 1;
MAX6675 thermocouple3(thermoCLK_3, thermoCS_3, thermoDO_3);
//Temperatursensor 4
int thermoDO_4= 0;
int thermoCS_4 = 22;
int thermoCLK_4 = 23;
MAX6675 thermocouple4(thermoCLK_4, thermoCS_4, thermoDO_4);
//Variablen für Berechnungen und Anzeigen
double Temperatur_1;
double Temperatur_2;
double Temperatur_3;
double Temperatur_4;
int Summe_1 = Temperatur_1 + Temperatur_2;
int Summe_2 = Temperatur_1 + Temperatur_3;
int Summe_3 = Temperatur_1 + Temperatur_4;
int Summe_4 = Temperatur_2 + Temperatur_3;
int Summe_5 = Temperatur_2 + Temperatur_4;
int Summe_6 = Temperatur_3 + Temperatur_4;
int Summe_7 = Temperatur_1 + Temperatur_2 + Temperatur_3;
int Summe_8 = Temperatur_1 + Temperatur_2 + Temperatur_4;
int Summe_9 = Temperatur_2 + Temperatur_3 + Temperatur_4;
int Summe_11 = Temperatur_1 + Temperatur_3 + Temperatur_4;
int Summe_10 = Temperatur_1 + Temperatur_2 + Temperatur_3 + Temperatur_4;
float Mittelwert_1 = Summe_1 / 2.0;
float Mittelwert_2 = Summe_2 / 2.0;
float Mittelwert_3 = Summe_3 / 2.0;
float Mittelwert_4 = Summe_4 / 2.0;
float Mittelwert_5 = Summe_5 / 2.0;
float Mittelwert_6 = Summe_6 / 2.0;
float Mittelwert_7 = Summe_7 / 3.0;
float Mittelwert_8 = Summe_8 / 3.0;
float Mittelwert_9 = Summe_9 / 3.0;
float Mittelwert_10 = Summe_10 / 4.0;
float Mittelwert_11 = Summe_11 / 3.0;
void setup()
{
LCD1.begin();
LCD1.backlight();
LCD2.begin();
LCD2.backlight();
Serial.begin(9600);
updateLCD_1();
updateLCD();
pinMode(Poti_Counter, INPUT);
pinMode(tasterPin, INPUT_PULLUP);
pinMode(tasterPin_2, INPUT_PULLUP);
pinMode(tasterPin_3, INPUT_PULLUP);
pinMode(tasterPin_4, INPUT_PULLUP);
}
void loop()
{
//*******************************************Abfrage der Temperatur************************************************************
//Temperatursensor_1 Abfrage
TemperaturSensor_1 = thermocouple1.readCelsius();
//Temperatursensor_2 Abfrage
TemperaturSensor_2= thermocouple2.readCelsius();
//Temperatursensor_3 Abfrage
TemperaturSensor_3 = thermocouple3.readCelsius();
//Temperatursensor_4 Abfrage
TemperaturSensor_4 = thermocouple4.readCelsius();
//*****************************************************************************************************************************
//Tasterabfrage und Änderung des Zählerstandes für S1
tasterZustand = digitalRead(tasterPin);
if (tasterZustand == HIGH && vorherigerTasterZustand == LOW)
{
zaehler = 1 - zaehler;
Serial.println("Zählerstand_1: ");
Serial.println(zaehler);
}
vorherigerTasterZustand = tasterZustand;
//Tasterabfrage und Änderung des Zählerstandes für S2
tasterZustand_2 = digitalRead(tasterPin_2);
if (tasterZustand_2 == HIGH && vorherigerTasterZustand_2 == LOW)
{
zaehler_2 = 1 - zaehler_2;
Serial.println("Zählerstand_2: ");
Serial.println(zaehler_2);
}
vorherigerTasterZustand_2 = tasterZustand_2;
//Tasterabfrage und Änderung des Zählerstandes für S3
tasterZustand_3 = digitalRead(tasterPin_3);
if (tasterZustand_3 == HIGH && vorherigerTasterZustand_3 == LOW)
{
zaehler_3 = 1 - zaehler_3;
Serial.println("Zählerstand_3: ");
Serial.println(zaehler_3);
}
vorherigerTasterZustand_3 = tasterZustand_3;
//Tasterabfrage und Änderung des Zählerstandes für S4
tasterZustand_4 = digitalRead(tasterPin_4);
if (tasterZustand_4 == HIGH && vorherigerTasterZustand_4 == LOW)
{
zaehler_4 = 1 - zaehler_4;
Serial.println("Zählerstand_4: ");
Serial.println(zaehler_4);
}
vorherigerTasterZustand_4 = tasterZustand_4;
updateLCD();
}
void updateLCD()
{
delay(1000);
switch (1000 * zaehler + 100 * zaehler_2 + 10 * zaehler_3 + 1* zaehler_4)
{
case 1000: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("T1 = ");
LCD1.print(Temperatur_1);
LCD1.setCursor(0, 1);
LCD1.print("Temperatur 2 = AUS");
LCD1.setCursor(0, 2);
LCD1.print("Temperatur 3 = AUS");
LCD1.setCursor(0, 3);
LCD1.print("Temperatur 4 = AUS");
Serial.println("case 1000");
break;
case 100: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("Temperatur 1 = AUS ");
LCD1.setCursor(0, 1);
LCD1.print("T 2 = ");
LCD1.print(Temperatur_2);
LCD1.setCursor(0, 2);
LCD1.print("Temperatur 3 = AUS");
LCD1.setCursor(0, 3);
LCD1.print("Temperatur 4 = AUS");
Serial.println("case 100");
break;
case 10: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("Temperatur 1 = AUS");
LCD1.setCursor(0, 1);
LCD1.print("Temperatur 2 = AUS");
LCD1.setCursor(0, 2);
LCD1.print("T3 = ");
LCD1.print(Temperatur_3);
LCD1.setCursor(0, 3);
LCD1.print("Temperatur 4 = AUS");
Serial.println("case 10");
break;
case 1: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("Temperatur 1 = AUS");
LCD1.setCursor(0, 1);
LCD1.print("Temperatur 2 = AUS");
LCD1.setCursor(0, 2);
LCD1.print("Temperatur 3 = AUS");
LCD1.setCursor(0, 3);
LCD1.print("T4 = ");
LCD1.print(Temperatur_4);
Serial.println("case 1");
break;
case 1100: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("T1= ");
LCD1.print(Temperatur_1);
LCD1.setCursor(0, 1);
LCD1.print("T2= ");
LCD1.print(Temperatur_2);
LCD1.setCursor(11, 1);
LCD1.print("D= ");
LCD1.print(Mittelwert_1);
LCD1.setCursor(0, 2);
LCD1.print("Temperatur 3 = AUS");
LCD1.setCursor(0, 3);
LCD1.print("Temperatur 4 = AUS");
Serial.println("case 1100");
break;
case 1010: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("T1 = ");
LCD1.print(Temperatur_1);
LCD1.setCursor(0, 1);
LCD1.print("Temperatur 2 = AUS");
LCD1.setCursor(0, 2);
LCD1.print("T3 = ");
LCD1.print(Temperatur_3);
LCD1.setCursor(11, 2);
LCD1.print("D=");
LCD1.print(Mittelwert_2);
LCD1.setCursor(0, 3);
LCD1.print("Temperatur 4 = AUS");
Serial.println("case 1010");
break;
case 1001: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("T1 = ");
LCD1.print(Temperatur_1);
LCD1.setCursor(0, 1);
LCD1.print("Temperatur 2 = AUS");
LCD1.setCursor(0, 2);
LCD1.print("Temperatur 3 = AUS");
LCD1.setCursor(0, 3);
LCD1.print("T4 = ");
LCD1.print(Temperatur_4);
LCD1.setCursor(11, 3);
LCD1.print("D=");
LCD1.print(Mittelwert_3);
Serial.println("case 1001");
break;
case 110: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("Temperatur 1 = AUS");
LCD1.setCursor(0, 1);
LCD1.print("T2 = ");
LCD1.print(Temperatur_2);
LCD1.setCursor(0, 2);
LCD1.print("T3 = ");
LCD1.print(Temperatur_3);
LCD1.setCursor(11, 2);
LCD1.print("D=");
LCD1.print(Mittelwert_4);
LCD1.setCursor(0, 3);
LCD1.print("Temperatur 4 = AUS");
Serial.println("case 110");
break;
case 101: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("Temperatur 1 = AUS");
LCD1.setCursor(0, 1);
LCD1.print("T2 = ");
LCD1.print(Temperatur_2);
LCD1.setCursor(0, 2);
LCD1.print("Temperatur 3 = AUS");
LCD1.setCursor(0, 3);
LCD1.print("T4 = ");
LCD1.print(Temperatur_4);
LCD1.setCursor(11, 3);
LCD1.print("D=");
LCD1.print( Mittelwert_5);
Serial.println("case 0101");
break;
case 11: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("Temperatur 1 = AUS");
LCD1.setCursor(0, 1);
LCD1.print("Temperatur 2 = AUS");
LCD1.setCursor(0, 2);
LCD1.print("T3 = ");
LCD1.print(Temperatur_3);
LCD1.setCursor(0, 3);
LCD1.print("T4 = ");
LCD1.print(Temperatur_4);
LCD1.setCursor(11, 3);
LCD1.print("D=");
LCD1.print(Mittelwert_6);
Serial.println("case 0011");
break;
case 1110: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("T1 = ");
LCD1.print(Temperatur_1);
LCD1.setCursor(0, 1);
LCD1.print("T2 = ");
LCD1.print(Temperatur_2);
LCD1.setCursor(0, 2);
LCD1.print("T3 = ");
LCD1.print(Temperatur_3);
LCD1.setCursor(11, 2);
LCD1.print("D=");
LCD1.print(Mittelwert_7);
LCD1.setCursor(0, 3);
LCD1.print("Temperatur 4 = AUS");
Serial.println("case 1110");
break;
case 1101: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("T1 = ");
LCD1.print(Temperatur_1);
LCD1.setCursor(0, 1);
LCD1.print("T2 = ");
LCD1.print(Temperatur_2);
LCD1.setCursor(0, 2);
LCD1.print("Temperatur 3 = AUS");
LCD1.setCursor(0, 3);
LCD1.print("T4 = ");
LCD1.print(Temperatur_4);
LCD1.setCursor(11, 3);
LCD1.print("D=");
LCD1.print(Mittelwert_8);
Serial.println("case 1101");
break;
case 1011: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("T1 = ");
LCD1.print(Temperatur_1);
LCD1.setCursor(0, 1);
LCD1.print("Temperatur 2 = AUS");
LCD1.setCursor(0, 2);
LCD1.print("T3 = ");
LCD1.print(Temperatur_3);
LCD1.setCursor(0, 3);
LCD1.print("T4 = ");
LCD1.print(Temperatur_4);
LCD1.setCursor(11, 3);
LCD1.print("D=");
LCD1.print(Mittelwert_11);
Serial.println("case 1011");
break;
case 111: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("Temperatur 1 = AUS");
LCD1.setCursor(0, 1);
LCD1.print("T2 = ");
LCD1.print(Temperatur_2);
LCD1.setCursor(0, 2);
LCD1.print("T3 = ");
LCD1.print(Temperatur_3);
LCD1.setCursor(0, 3);
LCD1.print("T4 = ");
LCD1.print(Temperatur_4);
LCD1.setCursor(11,3);
LCD1.print("D=");
LCD1.print(Mittelwert_9);
Serial.println("case 0111");
break;
case 1111: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("T1 = ");
LCD1.print(Temperatur_1);
LCD1.setCursor(0, 1);
LCD1.print("T2 = ");
LCD1.print(Temperatur_2);
LCD1.setCursor(0, 2);
LCD1.print("T3 = ");
LCD1.print(Temperatur_3);
LCD1.setCursor(0, 3);
LCD1.print("T4 = ");
LCD1.print(Temperatur_4);
LCD1.setCursor(11, 3);
LCD1.print("D=");
LCD1.print(Mittelwert_10);
Serial.println("case 1111");
break;
default: /*-------------------------------------------Fertig-------------------------------------*/
LCD1.clear();
LCD1.setCursor(0, 0);
LCD1.print("Temperatur 1 = AUS");
LCD1.setCursor(0, 1);
LCD1.print("Temperatur 2 = AUS");
LCD1.setCursor(0, 2);
LCD1.print("Temperatur 3 = AUS");
LCD1.setCursor(0, 3);
LCD1.println("Temperatur 4 = AUS");
break;
}
}