15-11-2016, 15:08
Wydaje mi się, że liniowo. Jeśli suchy, wiszący w powietrzu czujnik daje Ci odczyt 0, włóż go jeszcze do wody i wtedy sprawdź pomiar. Wtedy przeskaluj wynik funkcją map według wzoru:
int wilgotnosc = map(0,x,0,100);
gdzie x będzie wartością zanurzenia czujnika w wodzie.
Map działa tak, że możesz przekształcić jeden zakres w inny. Pierwsze dwie liczby w nawiasie to zakres, jaki uzyskujesz (np. od 0 do 256) z czujnika, natomiast drugie - zakres przelicznika. Dla przykładu, jeśli uzyskujesz pomiary o wartościach 10-150, a chcesz mieć wyniki w postaci 1-10, musisz wpisać: map(10,150,1,10);
int wilgotnosc = map(0,x,0,100);
gdzie x będzie wartością zanurzenia czujnika w wodzie.
Map działa tak, że możesz przekształcić jeden zakres w inny. Pierwsze dwie liczby w nawiasie to zakres, jaki uzyskujesz (np. od 0 do 256) z czujnika, natomiast drugie - zakres przelicznika. Dla przykładu, jeśli uzyskujesz pomiary o wartościach 10-150, a chcesz mieć wyniki w postaci 1-10, musisz wpisać: map(10,150,1,10);