Arduino Polska Forum
Analogowy czujnik wilgotnosci gleby - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Czujniki (https://forum.arduinopolska.pl/dzial-czujniki)
+--- Wątek: Analogowy czujnik wilgotnosci gleby (/watek-analogowy-czujnik-wilgotnosci-gleby)



Analogowy czujnik wilgotnosci gleby - Win - 31-10-2016

Mam problem z czujnikiem wilgotnosci gleby a dokladnie to nie wiem co mam na wyjsciu. Podlaczylem czujnik do wejscia analogowego w arduino i odpalilem przykladowy program. Program wyswietlal komunikat czy ziemia jest wilgotna czy sucha a zaleznosci od ad_value wiec ustawilem zeby wyswietlal ad_value w szeregowym monitorze i pokazuje liczby od 0 (nie wbity w ziemie) do jakichs wartosci rzedu kilkaset (w podlanej ziemii ponad 500). Czytalem user Manual i nic tam nie ma jak przeskalowac te wartosci.

Czujnik mam taki:
https://botland.com.pl/czujniki-wilgotnosci/4504-czujnik-sonda-do-pomiaru-wilgotnosci-gleby-analogowy.html
W opisie czujnika jest przykladowy program ktorego uzylem i user Manual.


RE: Analogowy czujnik wilgotnosci gleby - krn78 - 15-11-2016

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);