// Weiterentwickelter Code nach längerem Praxisbetrieb 03/20 // Das Programm ist zur Steuerung des SEVERIN-Grill&Toast konzipiert. // Dieser Grill läuft nur mit voller Leistung (2x350W) ungeregelt bis 600°C. // Um die Grilltemperatur auf etwa 250°C zu begrenzen und vorgebackene Brötchen // damit nachzubacken, wird ab 250°C der Betrieb mit halbierter Leistung betrieben. // Das "Pieps-Regime" meldet sich nach jeder Minute mit einem kurzen Piep, // nach der Aufbackzeit für ein Paar Brötchen (8 Min.) mit Doppelpiep, // beim automatischen ENDABSCHALTEN (nach 24Min) mit einem Dreifachpieps. // Danach eine Abkühlzeit von 15Mi ( 4 lange Piepser). // Er schaltet startet softwaremässig ab und startet erst nach 24 St. wieder, // falls man das Ausschalten mal vergessen hat. // Der Grill kann jederzeit abgeschaltet werden, es ist aber // beim Wiedereinschalten ohne Abkühlzeit damit zu rechnen, // dass dann die Grilltemperatur über 250 °C liegt und es // zu Hitzeschäden am Grillgut kommen kann. // Bei Anwendungen mit anderen Grills die höhere Leistungswerte // haben, sind höher belastbare Festkörperrelais zu einzubauen. // Dann ist auch die veränderte Temperatursteuerung evtl. anzupassen. int z = 0; //Minutenzähler (<8) int m = 0; //Sekundenzähler (<60) int b = 0; //Brötchenzykluszähler (<3) void setup() { pinMode(12,OUTPUT); // Pin 12 ist ein Relais pinMode(11,OUTPUT); // Pin 11 ist ein Relais pinMode(3,OUTPUT); // Pin 3 ist ein Pieper } void loop() // Das Hauptprogramm beginnt. { digitalWrite(3, HIGH); // Schalte den Piezo aus // ein pieps am Anfang digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(100); // Warte 50 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. // Aufheizen 90 Sek. digitalWrite(11, HIGH); //heiz ein digitalWrite(12, HIGH); delay(67500); // 90 sek // 90 Sek entspricht delay 75000, da 12Mhz // ein doppelpieps am Heiz-Ende digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(66); // Warte 50 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. delay(266); // 200 ms digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(66); // Warte 50 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. // jetzt hat die Heizschleife ca. 250°C erreicht // hier kommen die "while-Schleifen" rein // 3 x 2 Brötchen (je 8 Minuten) // 8 Minuten // 60 Sekunden while (b < 3) // wird auf 3 Zyklen eingestellt { while (z < 8) // jeweils 8 Minuten Aufbackzeit // stetiger Zyklus 1 Minute { while (m < 60) // 60 Sekunden Zyklen // Betrieb mit halber Leistung // abkühlen { digitalWrite(11, LOW); //heiz aus digitalWrite(12, LOW); delay(375); // 0,5 Sek entspricht delay 375, da 12Mhz auf der Platine // anstelle 16MhZ beim Arduino UNO // heizen digitalWrite(11, HIGH); //heiz ein digitalWrite(12, HIGH); delay(375); // 0,5 Sek entspricht delay 375, da 12Mhz m = m + 1; } // jetzt hat die Heizschleife ca. 250°C erreicht // und hält diese Temperatur. m = 0; z = z+1; // ein Erinnerungs-Pieps jede Minute digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(39); // Warte 50 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. } z = 0; b = b+1; // zweifach-Pieps beim Brötchenwechsel digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(100); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. delay(100); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(100); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. } // dreifach-Pieps beim automatischen Ausschalten digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(100); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. delay(100); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(100); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. delay(100); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(100); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. digitalWrite(11, LOW); //heiz aus digitalWrite(12, LOW); delay(900000); // 1000 sek 16,666 Min. // 16,66 Min Auskühlen // längerer Vierfachpieps nach 15 Mini. AUSKÜHLEN digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(500); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. delay(100); // Warte 75 Millisekunden. digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(500); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. delay(100); // Warte 75 Millisekunden. digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(500); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. digitalWrite(3, LOW); // Schalte den Piezo-Lautsprecher an. delay(500); // Warte 75 Millisekunden. Es hat gepiepst digitalWrite(3, HIGH); // Schalte den Piezo aus. // End-Abschaltung nach 25 Min delay(64800000); // startet erst nach 24 St. wieder // falls man das Ausschalten mal vergessen hat. // // Wenn man höhere Temperaturen zum Grillen möchte, // schaltet man den Einschalter Oberhitze kurz aus // und nach einer gewünschten Zeit wieder ein. // Jetzt startet das Programm mit einer höheren // Anfangstemperatur, aber dem gleichen Schema. // Eine Minute entspricht etwa 150 °C. // Das kann man ja in etwa einschätzen. // Diese Temperatur wird dann gehalten. // Das gesamte Regime mit Erinnerungspiepsen // und Endabschaltung wird immer ausgeführt.