Skocz do zawartości

BMP280 problem


ronnie91

Pomocna odpowiedź

Cześć,
mam problem z działaniem czujnika ciśnienia BMP280. Komunikuje się z nim poprzez magistrale I2C. Dodam że używam biblioteki wykonanej przez producenta czujnika. Komunikuje się z nim, odczutuje poprawnie device id, szczytuje współczynniki które są w pamięci czujnika, tylko ze pokazuje mi nieprawidłowe ciśnienie. Moim zdaniem nie jest problem w funkcji obliczającej skompensowane ciśnienie, ponieważ przez funkcje obliczająca przepuściłem przykład podany w nocie katalogowej i wyliczył dobre ciśnienie. Moim zdaniem z jakiegoś powodu odczytuje niewłaściwe działki (?). A drugi problem jest taki że jak wgram program na nowo do procka to raz pokazuje około 720 hPa, a raz 976 hPa, tylko dlatego że wgrałem ten sam program na nowo. Może źle napisałem funkcje odbierającą dane (ale id dobrze szczytuje), a w nocie nie widzę żeby było trzeba ustawiać coś w stylu "start conversion". Macie jakieś pomysły?

Z góry dzięki.

__________

Komentarz dodany przez: Treker

Link do komentarza
Share on other sites

Kod wstawiaj jako kod w poście. Po co utrudniać życie i zmuszać ludzi do pobierania Twojego pliku?

Czemu używasz programowej implementacji I2C?

Czemu nie wstawiłeś minimalnej, ale kompletnej wersji kodu pokazującej problem? W Twoim kodzie nie ma funkcji main.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Co do tego programu to sorry. Ale nie ma chyba problemu i2c bo inne czujniki na tym działają. Ale w mainie nic ważnego nie ma po prostu wywołanie funkcji init i w loopie głownym funkcji operate.

Link do komentarza
Share on other sites

Ten problem co opisałem w pierwszym poscie to jest nadal. Natomiast tam odnosiłem się do implementacji programowej I2C ze jest dobra i ze nie ma chyba problemu z kodem dotyczącym I2C, ale czujnik cisnienia nadal mi źle działa!!!

Link do komentarza
Share on other sites

Czujnik nie jest uszkodzony bo patrzylem na kilku egzemplarzach i ciagle jest tak samo zle. W sumie to juz nie wiem czego jestem pewien, widze ze nie zapisauja mi sie porawnie wartosci do rejestrow czujnika. Co do tego ze przy zaprogramowaniu mam rozne wartosci cisnienia tzn. raz okolo 720 hpa a raz 980, to widze ze nie zawsze on sie poprawnie konfiguruje. bo te 720 hPa to widze z noty ze jest reset state i wogole dzialki sie nie zmianiaja, a jak jest 950 to dzialki sie zmieniaja. Tylko dlaczego jak wgram program to raz czujnik sie inicjuje a raz nie, a w programie nic nie zmianiam?

Link do komentarza
Share on other sites

To może jednak coś nie tak jest z tym programem?

Ja mam taką teorię. Używasz tam biblioteki do software-owego i2c, która nie obsługuje tak zwanego clock-stretching, czyli sytuacji, kiedy mówisz do sensora za szybko i on przytrzymuje linię zegara żebyś poczekał. Ty to ignorujesz, więc czujnik w efekcie dostaje losowe dane i robi dziwne rzeczy, albo nie robi nic.

Pomóc może zmniejszenie szybkości transmisji (tak, żeby czujnik nie musiał cię hamować) albo użycie sprzętowego i2c, który clock-stretching ma zaimplementowany i rozumie.

[ Dodano: 04-08-2016, 14:01 ]

A, jeszcze jedno. Oporniki podciągające oczywiście tam masz?

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.