04-05-2019, 15:32
Pewnie mu chodzi tylko to by to co on uznaje za w pełni podlane i w pełni suche dawało wyniki w granicach 0-100%.
Na początek pamiętaj, by czujnik zasilać tylko na czas pomiaru, nieco wydłużysz mu życie, nóżki szybko ulegają elektrolizie. Ewentualnie szukaj pojemnościowych, są odizolowane od gleby lakierem.
Co do konwersji zamieniasz max z min i może tu jest problem, nie mam czym dzisiaj przetestować tej funkcji, ale w przykładowym szkicu są takie funkcje:
Tu jest jednak pokazane, że podajesz w kolejności min i max. Jak chcesz to odwrócić to wystarczy wstawić
output_value = map(1023-output_value,224,812,0,100);
Podmiana z ifami też powinna działać ograniczając odczyty od 224 do 812, może co pomieszałeś w kodzie testowym.
Bardzo łatwo też przetestujesz wszystkie możliwe wartości podstawiając swoją zmienną x 0-1023 w pętli while czy for, drukując wyniki na serial i potem pętla while(1) by spokojnie obejrzeć wyniki.
Na początek pamiętaj, by czujnik zasilać tylko na czas pomiaru, nieco wydłużysz mu życie, nóżki szybko ulegają elektrolizie. Ewentualnie szukaj pojemnościowych, są odizolowane od gleby lakierem.
Co do konwersji zamieniasz max z min i może tu jest problem, nie mam czym dzisiaj przetestować tej funkcji, ale w przykładowym szkicu są takie funkcje:
Kod:
sensorValue = analogRead(sensorPin);
// apply the calibration to the sensor reading
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);
// in case the sensor value is outside the range seen during calibration
sensorValue = constrain(sensorValue, 0, 255);
// fade the LED using the calibrated value:
analogWrite(ledPin, sensorValue);
output_value = map(1023-output_value,224,812,0,100);
Podmiana z ifami też powinna działać ograniczając odczyty od 224 do 812, może co pomieszałeś w kodzie testowym.
Bardzo łatwo też przetestujesz wszystkie możliwe wartości podstawiając swoją zmienną x 0-1023 w pętli while czy for, drukując wyniki na serial i potem pętla while(1) by spokojnie obejrzeć wyniki.
Miło być decenianym https://buycoffee.to/kaczakat