Hallo liebe Leute,
EDIT: NEUES PROBLEM -> siehe #40
ich bin im Vergleich zu den anderen hier wahrscheinlich als "blutiger Anfänger" zu bezeichnen.
Dennoch bitte ich Euch um Hilfe.
Die Funktion hinter dem Code soll sein, dass ich über einen Schalter einen gewissen Modus wähle:
Start, Temp1, Temp2, Temp 3, Temp 4, Temp 5 & den Abschalt-Modus.
Es handelt sich hierbei um eine Temperatursteuerung für einen Pelletsgrill. Ich wähle eine vordefinierte Temperatur. (Temp1-5)
Der Lüfter soll immer in Betrieb sein.
Im Start-Modus soll "Heizung" sowie "Schnecke" auf HIGH sein bis ich den Modus wechsle.
In den Temp-Modi soll "Schnecke" HIGH sein bis die definierte Temp erreicht ist. (Abfrage der Temp alle 15sek.)
Das Problem:
Sobald der Sketch hochgeladen wurde sollte ja theoretisch der Lüfter schon auf HIGH sein, ist er aber nicht.
Sobald ich aber einen der 5 Temp-Modi bzw. Start-Modus wähle geht der Lüfter zwar an aber sonst nichts.
Entschuldigt die wahrscheinlich viel zu lange schreibweise im Sketch und ignoriert den Abschalt-Modus mit delay(..)
Hoffe ihr könnt mir helfen :
EDIT: NEUES PROBLEM -> siehe #40
DANKE AN ALLE UNTERSTÜTZER UND DIE, DIE NOCH DAZU KOMMEN
#include <Wire.h>
#define DEV_ID 0x78
int Th,Tl = 0;
double val = 0;
int Schnecke = 2;
int Heizung = 3;
int Luefter = 4;
int Start = 6;
int Eins = 8;
int Zwei = 10;
int Drei = 11;
int Vier = 12;
int Fuenf = 13;
int Shutdown = 22;
int START;
int EINS;
int ZWEI;
int DREI;
int VIER;
int FUENF;
int SHUTDOWN;
double Temp = 0;
unsigned long prev = 0;
const int intervalTemp = 15000;
void setup() {
Serial.begin(9600);
Wire.begin();
pinMode(Schnecke, OUTPUT);
pinMode(Heizung, OUTPUT);
pinMode(Luefter, OUTPUT);
pinMode(Start, INPUT);
pinMode(Eins, INPUT);
pinMode(Zwei, INPUT);
pinMode(Drei, INPUT);
pinMode(Vier, INPUT);
pinMode(Shutdown, INPUT);
digitalWrite(Heizung, LOW);
digitalWrite(Schnecke, LOW);
}
void loop() {
unsigned long current = millis();
START = digitalRead(Start);
EINS = digitalRead(Eins);
ZWEI = digitalRead(Zwei);
DREI = digitalRead(Drei);
VIER = digitalRead(Vier);
FUENF = digitalRead(Fuenf);
SHUTDOWN = digitalRead(Fuenf);
digitalWrite(Luefter, HIGH);
// Temperaturmessung
Wire.requestFrom(DEV_ID,2);
Th = Wire.read();
Tl = Wire.read();
Temp = double(((Th<<8 | Tl))/64.0) - 32.0;
Serial.print(" val=");
Serial.println(Temp);
// Start Modus
if(START == HIGH)
{
digitalWrite(Heizung, HIGH);
digitalWrite(Schnecke, HIGH);
}
else
{
digitalWrite(Heizung, LOW);
digitalWrite(Schnecke, LOW);
}
// Temp1 Modus
if(EINS == HIGH)
if(current - prev > intervalTemp);
prev = current;
if(Temp < 80)
digitalWrite(Schnecke, HIGH);
else
digitalWrite(Schnecke, LOW);
// Temp2 Modus
if(ZWEI == HIGH)
if(current - prev > intervalTemp);
prev = current;
if(Temp < 100)
digitalWrite(Schnecke, HIGH);
else
digitalWrite(Schnecke, LOW);
// Temp3 Modus
if(DREI == HIGH)
if(current - prev > intervalTemp);
prev = current;
if(Temp < 120)
digitalWrite(Schnecke, HIGH);
else
digitalWrite(Schnecke, LOW);
// Temp4 Modus
if(VIER == HIGH)
if(current - prev > intervalTemp);
prev = current;
if(Temp < 140)
digitalWrite(Schnecke, HIGH);
else
digitalWrite(Schnecke, LOW);
// Temp5 Modus
if(FUENF == HIGH);
if(current - prev > intervalTemp);
prev = current;
if(Temp < 160)
digitalWrite(Schnecke, HIGH);
else
digitalWrite(Schnecke, LOW);
// Abschalt-Modus
if(SHUTDOWN == HIGH)
{
digitalWrite(Heizung, LOW);
digitalWrite(Schnecke, LOW);
digitalWrite(Luefter, LOW);
}
delay(100);
}