Witam,
Natknąłem się problem z odpowiednim wykonywaniem warunków w funkcji SwitchCase. w poniższym kodzie program nie chce wejść w case 2, oraz case 3.
void sensorTypeUpDate () {
switch (actualSensor) {
case 1:
Serial.print("wszedl w 1 petle");
int odczyt = analogRead(lightSensor);
light = map(odczyt, 0, 1023, 0, 100);
sensorType = "Jasnosc:";
sensorValue = String(light) + "%";
break;
case 2:
Serial.print("wszedl w 2 petle");
humidity = dht.getHumidity();
if (dht.getStatusString() == "OK") {
sensorType = "Wilgotnosc:";
sensorValue = String(humidity) + "RH%";
}
break;
case 3:
Serial.print("wszedl w 3 petle");
temperature = dht.getTemperature();
if (dht.getStatusString() == "OK") {
sensorType = "Temperatura:";
sensorValue = String(temperature) + "*C";
}
break;
}
}
Linia Serial.print potrzebna mi była do sprawdzenia czy program wchodzi w dany warunek.
O dziwo gdy zmienię kolejność warunków program działa poprawnie. Nie jest to pierwszy raz, jak się z tym spotykam. Poniższy kod działa.
void sensorTypeUpDate () {
switch (actualSensor) {
case 3:
Serial.print("wszedl w 3 petle");
temperature = dht.getTemperature();
if (dht.getStatusString() == "OK") {
sensorType = "Temperatura:";
sensorValue = String(temperature) + "*C";
}
break;
case 2:
Serial.print("wszedl w 2 petle");
humidity = dht.getHumidity();
if (dht.getStatusString() == "OK") {
sensorType = "Wilgotnosc:";
sensorValue = String(humidity) + "RH%";
}
break;
case 1:
Serial.print("wszedl w 1 petle");
int odczyt = analogRead(lightSensor);
light = map(odczyt, 0, 1023, 0, 100);
sensorType = "Jasnosc:";
sensorValue = String(light) + "%";
break;
}
}
Z góry dziękuje za pomoc.