Skocz do zawartości

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


Pomocna odpowiedź

Czy wiecie jaki jest fizyczny typ sensora tego akcelerometru? (pojemnościowy/piezoelektryczny itd) W nocie katalogowej niestety brak informacji na ten temat.

  • 1 miesiąc później...

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?

  • 3 miesiące później...
  • 2 lat(a) później...
  • 3 tygodnie później...
  • 2 miesiące później...

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

@Bhoy67 dzięki za sygnał, sprawdzimy temat 😉 Ten kurs czeka gruntowne odświeżenie, więc nie wprowadzamy teraz małych poprawek (zrobimy to wszystko za jednym razem).

  • Lubię! 1
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.

@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

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ąć.

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.

  • 1 rok później...
(edytowany)

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

@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?

(edytowany)

@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

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