Hey everyone, I'm creating a schoolproject (PC Cooler). Now my code is basically finished but I have one problem. I'm using While (Serial) { ;} for when the serial monitor opens the code would be intercepted to be able to put data in 'gemetenTemperatuur' which stands for measured temperature. This works absolutely fine but the problem is, when I close my serial monitor the normal code doesn't start running again. The code inside the while keeps running untill I reopen the serial monitor.
Anyone knows how to fix this?
#include <LiquidCrystal.h>
#define LM_35 A0
#define rode_led 6
#define blauwe_led 5
#define groene_led 3
#define startTemperatuur 85
#define fan 10
#define fan2 11
float gemetenTemperatuur;
LiquidCrystal lcd(12, 2, 9, 8, 5, 7);
void setup() {
// put your setup code here, to run once:
pinMode(rode_led, OUTPUT);
pinMode(blauwe_led, OUTPUT);
pinMode(groene_led, OUTPUT);
pinMode(fan, OUTPUT);
pinMode(fan2, OUTPUT);
analogWrite(13, 100);
lcd.begin(16,2);
lcd.setCursor(0, 0);
lcd.print("Temperatuur:");
Serial.begin(9600);
}
void loop() {
if (Serial.available()){
while(Serial) {
gemetenTemperatuur = leesWaarde();
Serial.println(gemetenTemperatuur);
fanLedRegeling();
lcdPrint();
}
}
else {
int waardeTemperatuurSensor = analogRead(LM_35);
gemetenTemperatuur = waardeInCelcius(waardeTemperatuurSensor);
fanLedRegeling();
lcdPrint();
}
The used methods and functions in my code are not needed to be posted because they are unrelated to the problem imo.
Thanks for helping!