While Schleife läuft nicht

Hallo Arduino Freunde, ich möchte 2 Temperaturwerte (temp1 und temp2) miteiander vergleichen und bei Überschreitung einer bestimmten Temp.( hier 5°C) eine LED blinken lassen.
Ich habe schon viele Varianten mit if oder while versucht, aber keinen Erfolg gehabt. Vielleicht kann mir einer helfen. Vielen Dank im vorraus. Hier der Ausschnitt aus dem Sketch:

void Temp1_Temp2 () // gelbe LED blinkt bei Solaranlage an,
{
while(digitalRead(Temp1-Temp2>5)==HIGH); // Temp. Differenz zwischen Sol VL u. Sol RL > 5°C zum blinken,
{
Serial.print(".");
{
digitalWrite(led11,HIGH);
delay(500);
digitalWrite(led11,LOW);
delay(2000);
}
}
}

Ich kenne zwar die Programmiersprache nicht, aber die While- Schleife sieht mir falsch aus. Das ; vor den {} sollte möglicherweise weg. Zusätzlich wird wohl die digitalRead()- Funktion falsch benutzt. Siehe:
http://arduino.cc/de/Reference/DigitalRead

Hi,

Arduino kannte ich noch nicht, auch weil es Hunderte Programmiersprachen gibt.

Für mich sieht es nach einem Logikfehler aus:
while(digitalRead(Temp1-Temp2>5)==HIGH);

Ich gehe davon aus, dass digialRead() einen Wert einliest. Dann müsste es heißen:

(digitalRead(Temp1) - digitalRead(Temp2)) > 5

Das ergibt einen boolschen Wert: Entweder true oder false. Der Vergleich mit „== HIGH“ läuft damit ins Leere und kann weggelassen werden.

Liebe Grüße
Franz

Hallo Ihr beiden, vielen Dank für die schnelle Antwort auf mein Problem.
Leider hatte ich noch keinen Erfolg.
Nochmals den umgeschriebenen Sketch. Vielleicht endeckt Ihr noch einen Fehler. Bin noch neu mit Arduino beschäftigt und auch etwas älter (73). Danke für die Mühe.
Mit besten Grüßen elektronik

void Temp1_Temp2 () // gelbe LED blinkt bei Solaranlage an,
{
while(digitalRead(Temp1)-digitalRead(Temp2)>5) // Temp. Differenz zwischen Sol VL u. Sol RL > 5°C zum blinken,
{
Serial.print(".");
{
digitalWrite(led11,HIGH);
delay(500);
digitalWrite(led11,LOW);
delay(2000);
}
}
}

Hallo,
Leider kann ich Dir da nicht weiterhelfen.

LG
Andrea

Hallo,

nach dem ich mich etwas mit Arduino beschäftigt habe, kann ich Dir jetzt vielleicht besser helfen.

Ist der Pin „led11“ richtig deklariert?
z.B. int led11 = 11;

Häufig ist es nützlich mehr Klammern zu verwenden:
while((digitalRead(Temp1)-digitalRead(Temp2))>5)

Es kann vorkommen, dass Temp2 kleiner ist als Temp1, dann funktioniert der Vergleich nicht. Deshalb sollte zusätzlich eine if-Abfrage erfolgen:

if (digitalRead(Temp1) >= digitalRead(Temp2))
{
// Temp1 ist größer oder gleich Temp2
}
else
{
// Temp2 ist größer als Temp1
}

Liebe Grüße
Franz

Hallo franz, ich hatte auch schon die Idee mit nicht richtiger Deklaration und habe es mit dem " Bink- Sketch" überprüft. An PIN11, alles in Ordnung.
Es wird die Temp. des Solar VL und RL gemessen (mit DS18B20,12 Sensoren für noch andere Temp. und Anzeige auf dem LCD Display) klappt alles prima. Es können also keine negativen Werte auftreten. Deinem Hinweis für eine „if-else Schleife“ werde ich probieren und davon berichten.
Vielen Dank für die Hilfe
Gruß elektronik