• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Czujnik wilgotności gleby - odwrócenie wartości
#1
Witam,
Skombinowałem sobie czujnik wilgotności gleby, podłączony jest tylko pinem analogowym (z cyfrowego nie korzystam).
Program pobiera wartość czujnika z przedziału 0-1024 i zamienia to na procent. Wartość w % = (wartość pinu A0 / 1024) * 100.

Wszystko działa znakomicie, jest tyko jeden problem. Gdy ziemia jest sucha czujnik wskazuje 100% a gdy mokra 0%. Rozumiem że ta sytuacja ma miejsce ponieważ czujnik bazuje na oporności elektrycznej ośrodka w którym sie znajduje, w tym przypadku ziemi. Więc gdy jest sucha to oporność jest maksymalna a gdy mokra to oporność jest zerowa. 
Docelowo chcę aby program wyświetlał 0% gdy jest sucho i 100% gdy jest mokro.

Pytane, czy ktoś wie jak to rozwiązać i pomógłby mi z tą zagwozdką?
Pozdrawiam Smile
 
Odpowiedź
#2
x = map(x, 0, 100, 100, 0);
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#3
Map rozwiąże problem, ale to problem już na etapie projektowania i podłączenia tego czujnika. Dlatego widzi odwrotnie... Wiec i można by było przerobić podłączenie i też by wróciło do normy...
Arduino zostało wymyślone po to, by robić dobrze jedną prostą rzecz – migać diodą. 
 
Odpowiedź
#4
@Robson Kerman Bardzo dziękuję, zadziałało, przydatna funkcja.

@Jarewa0606 Przeanalizuję układ czujnika, może znajdę rozwiązanie na odwrócenie wartości u jej źródła.
 
Odpowiedź
#5
Nic nie trzeba odwracać u źródła, po prostu formuła była błędna, powinno być:
Wartość w % =100- (wartość pinu A0 / 1024) * 100,
i teraz masz tam gdzie 0 100, gdzie było 1 jest 99, gdzie było 100 jest 0.
To samo może zrobić funkcja map, gdzie od razu podajesz wartość z pinu a0, x = map(analogRead(A0), 0, 1023, 100, 0);
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości