Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 14 kwi 2026, o 11:15


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 12 kwi 2026, o 15:23 
Offline
Użytkownik

Dołączył(a): 12 kwi 2012
Posty: 109
Pomógł: 0

Mam kłopot z pomiarem wilgotności czujką BME280 (na I2C i ATmega168P). Korzystam z bibliotek Mirka ( MK_PRESSURE_HUMIDITY i MK_I2C). Czujka działa lecz mierzy wilgotność w dziwny sposób.
To znaczy mierzy ją na poziomie 83%. Gdy wystawię ją na delikatne słońce (przez szybę, firanę, z odległości 0,5m) to wilgotność spada do około 49%.
Oczywiście przy okazji rośnie temperatura o jakieś 3 stopnie.

Mam też inną czujkę tj. BME680 i odpalony program na STM32... Ta pokazuje około 44% co jest zgodne z higrometrem mechanicznym który posiadam.

Moje pytanie brzmi: czy mam źle skonfigurowaną bibliotekę (w tej chwili tryb Normal), czy uszkodzoną czujkę? Oczywiście program z biblioteką wykrywa BME280.
A może jest jakiś niuans do ustawienia dla tej czujki / biblioteki? Może coś zmieni tryb Forced? Ale dla niego trzeba chyba dodać jakiegoś delay-a.
Ma może ktoś doświadczenie w użytkowaniu tej czujki?

------------------------ [ Dodano po: 31 minutach ]

Zmiana na BME280_FORCED_MODE spowodowała to że wilgotność stanęła na 81,92% i nie reaguje. Chyba nie tędy droga.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 17:05 
Offline
Użytkownik

Dołączył(a): 12 kwi 2012
Posty: 109
Pomógł: 0

Okazało się niestety że trafiłem na trefną czujkę. Drugi egzemplarz pokazuje dobrze wszystkie parametry. Przy okazji wyszła mi dziwna sytuacja. Biblioteka MK_PRESSURE_HUMIDITY wraz z MK_I2C gdy uruchomiłem przykład z biblioteki i odłączę czujkę BME280 wyświetla informację że jest podłączone BME280 a powinno zasygnalizować brak czujki.
Konfiguracja bibliotek to:
w mk_preasure_cfg.h:
#define USE_BME_BMP_280 1

w mk_i2c.h:
#define USE_TIMEOUTS 1
#define I2C_MODE 0
#define USE_SOFT_I2C 0

przy wyłączonym timeouts (0) program wpada w nieskończoną pętlę.

Pewnie popełniam jakiś błąd ale nie potrafię go znaleźć (zdebugować).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 18:34 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27455
Lokalizacja: Szczecin
Pomógł: 1045

andrzej381 napisał(a):
przy wyłączonym timeouts (0) program wpada w nieskończoną pętlę.

Pewnie popełniam jakiś błąd ale nie potrafię go znaleźć (zdebugować).


Nie ma co debugować - gdy nie ma podłączonej czujki ma wpadać w nieskończoną pętlę - tak się robi w 90% projektów - Pomyśl sobie robisz czujnik wilgotności - nie ma czujki to jaki jest sens żeby działał? tu jest sytuacja zero jedynkowa ... co to da że będzie pokazywał że brak czujki skoro i tak wiesz że nie ma bo nie pokazuje pomiaru i jest zawieszony?

Biblioteka wprawdzie pozwala żeby to zmienić ale to jest zbytek po przełączeniu tej konfiguracji trzeba podstawić własnego callbacka jak to wynika z biblioteki - na pewno nic nie podstawiasz to i nic nie pokazuje dlatego tak jest. Ja tam bym nie kombinował ;) jak ci już działa czujniczek to znaczy że jest ok - jak odłączasz go dla testu i się zawiesza - też jest ok ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: wczoraj, o 20:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 mar 2015
Posty: 332
Lokalizacja: Rybnik
Pomógł: 24

A ja z kolei powiem tak:
Skoro brak czujnika lub czujnik uszkodzony, to powinienem dostać informację chociażby taką: "Błąd czujnika. Sprawdź czujnik" I to tyle.
Wtedy jestem pewien, że cały układ działa (uC) ale są problemy z samym czujnikiem. Według mnie (ale tylko wg. mnie) tak się to powinno odbywać,
żeby nie trza było kombinować co nie działa. Nie działa czujnik i tyle. A tak? Może czujnik, może procek, może źle napisany program i się wysypał.
Myślę, że po to są instrukcje warunkowe typu IF, ELSE, żeby do tego celu to wykorzystać. Ja jestem tylko uczniem Mirka ale wg. mnie tak to powinno wyglądać.
Jeśli nie mam racji i się mylę, to uznajcie, że tej odpowiedzi nie było.

_________________
http://www.avrboss.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: dzisiaj, o 07:02 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27455
Lokalizacja: Szczecin
Pomógł: 1045

Ale jak ktoś chce to niech sobie dorabia ... niech się bawi ;) kto komu zabroni ... i tak po pewnym czasie będzie robił jak każdy inny bez takich zabaw....

W każdym bądź razie moja biblioteka daje różne możliwości i jedną z nich jest ustawienie Timeouts wtedy procek się nie zatrzymuje i można się bawić dalej w obsługę błędów - no w czym problem jak ktoś lubi rzeźbić ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO