Skocz do zawartości

Kurs STM32 F4 - #9 - Obsługa I2C, akcelerometr


Pomocna odpowiedź

Mam zagwozdkę co do rozdzielczości tego akcelerometru. Skoro ma 16 bit, to dlaczego wskazuje wartości co 16? (zakres full-scale +/- 2g i z wybranym high-resolution output mode, zmiana częstotliwości nie miała wpływu na wynik)

Da się w jakiś sposób wycisnąć z niego więcej?

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

Miałem pewien problem i udało się rozwiązać pewną banalną rzecz, ale napiszę w razie gdyby ktoś też na tym utknął 😄 Nie wiem czy to jakiś błąd u mnie, czy na każdej płytce tak to działa. Gdy przerabiając początkową część artykułu miałem ustawiony pomiar jedynie w osi Z (btw. w artykule nadal jest błąd, który wytknął kolega w poście poprzednim!) to potem przechodząc do pomiaru w trzech osiach musiałem odłączyć płytkę od komputera i podłączyć z powrotem. Bez tego wszystkie odczyty z akcelerometru były wyzerowane i długo mi zeszło na szukanie błędu 🙃

  • Lubię! 1
Link do komentarza
Share on other sites

Dnia 9.11.2019 o 23:29, Bhoy67 napisał:

Gdy przerabiając początkową część artykułu miałem ustawiony pomiar jedynie w osi Z (btw. w artykule nadal jest błąd, który wytknął kolega w poście poprzednim!) to potem przechodząc do pomiaru w trzech osiach musiałem odłączyć płytkę od komputera i podłączyć z powrotem. Bez tego wszystkie odczyty z akcelerometru były wyzerowane i długo mi zeszło na szukanie błędu 🙃

Poproszę o rozwiązanie.

Link do komentarza
Share on other sites

@radek04, ale jakie rozwiązanie, działający program z artykułu?

Ten co jest w kursie (na bieżąco pisany + dodany w załączniku) mi działa. Zgłaszałem tylko problem jaki miałem w trakcie, gdyby ktoś też na tym utknął, tak jest też u Ciebie? Odłączenie płytki od kompa i podłączenie ponowne pomogło, przypadkiem to mi wyszło. Być może wystarczałby zamiast tego reset ^^ Nie wiem, nie sprawdziłem potem tego. Sprawdziłem natomiast, że zawsze przejście z osi samej Z do osi XYZ powodowało u mnie zerowanie odczytów.

  • Lubię! 1
Link do komentarza
Share on other sites

Myślałem, że znalazłeś sposób na brak konieczności odłączania płytki przy zmianie programu. Pracuję teraz z różnymi czujnikami i zwykle muszę odłączać uC od zasilania, by zaczął dobrze działać nowy program. Szukam sposobu, by to ominąć.

Link do komentarza
Share on other sites

1 godzinę temu, radek04 napisał:

Pracuję teraz z różnymi czujnikami i zwykle muszę odłączać uC od zasilania, by zaczął dobrze działać nowy program. Szukam sposobu, by to ominąć.

Nie mniałem z tym problemu programowego (pomijam elektrycznej) ale zawsze używałem funkcji "ratunkowej" - Init I2c itp rzeczy. To z czym może byc problem to niektóre serie F1 (może podróby też to mają) tam trzeba więcej finezji.

Link do komentarza
Share on other sites

Mam pewien problem z odczytaniem jakiejkolwiek wartości z akcelerometru. Zarówno pierwszy jak i drugi przykład nie daje żadnych rezultatów, w zmiennych od każdej osi jest ciągle 0. W obu przykładach sprawdzałem wartości w STMStudio, a w tym drugim powinny zapalić się odpowiednie LEDy, a również nic się nie dzieje. W dodatku załączony projekt (w artykule) przy próbie kompilacji wyrzuca kilkaset błędów
Nie wiem gdzie popełniłem błąd, bardzo proszę o pomoc. 

 

lm303-acc.rar

Edytowano przez MrJW
Link do komentarza
Share on other sites

@MrJW nie masz zarejestrowanego zestawu, więc nie wiemy jakim sprzętem dysponujesz. Czy ćwiczenia wykonujesz dokładnie na tych samych elementach, które były użyte w kursie? Z jakiego środowiska korzystasz?

Link do komentarza
Share on other sites

@Treker Korzystam z płytki STM32F411E-DISCO (MB1115 B-02), czyli chyba dokładnie to samo co jest w kursie. Środowisko to STM32CubeMX oraz STM32CubeIDE. Zrobiłem już komunikację z OLEDEm (też tym samym co w kursie) i tutaj wszystko działa. Zastanawiam się, czy mój akcelerometr jest uszkodzony, ale nie mam pojęcia jak to zweryfikować.

//EDIT

Znalazłem rozwiązanie. Trzeba było całkowicie odłączyć płytkę od zasilania i znowu włączyć.

Edytowano przez MrJW
  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.