Skocz do zawartości

[C] Niedokładny odczyt z akcelerometru analogowego


mhl

Pomocna odpowiedź

Witam, mam akcelerometr analogowy firmy Analog Device ADXL210 i interesuje mnie odczyt kąta w zakresie +-30 stopni. Rozdzielczość pomiaru to 10 bit, czyli 0-1023 napięcie zasilania to 5V a sensivity wg datasheet [LINK] wynosi 100mV/g. Wobec tego używam takiego kodu wyliczającego kąt:

#define RAD_TO_DEG 57.295779513082320876798154814105
s_val_X = analogRead(sensorPinX); 

// funkcja średniej ruchomej
//{}

X_axis =(double)(s_val_X-ref_val_X)*5000.0/1023.0/100.0;
kat = RAD_TO_DEG*X_axis;

ref_val_X - jest to wartość z kalibracji z 1000 pomiarów

s_val_X - jest to aktualna wartość z wyliczenia średniej ruchomej, czyli 16 ostatnich pomiarów

no i teraz problem polega na tym, że mimo wszystko ta wartość w spoczynku waha się ciągle o kilka stopni (0-2.8-5.6 czasem), czy urządzenie stabilizujące w pionie będzie w stanie działać przy tak zmiennym odczycie nawet w spoczynku? Korzystam ze średniej ruchomej dla 16 pomiarów ale to i tak nic nie daje, bo czasem jest kilkanaście odczytów pod rząd z wartością 2.8 stopnia i taka wychodzi też średnia.

Może jest jakiś sposób na zwiększenie precyzji?

Mierzę tylko oś X poziomą do podłoża

-----------> oś X

Czy ja dobrze zrozumiałem z załączonego datasheet, że powinienem był podzielić przez 100 aby uzyskać poprawne wskazanie?

mam tez inny problem, obracam akcelerometr w lewo o 20-30 stopni i wracam następnie do stanu początkowego to jego odczyt nie wynosi tyle samo co przed chwilą a muszę nim potrząsnąć na boki, żeby znów było 0.

Link do komentarza
Share on other sites

Nie znam dokładnie tego modelu, ale skoro interesuje Ciebie utrzymywanie pionu to gorszego akcelerometru wybrać nie mogłeś.

1. Akcelerometry analogowe są przeważnie mniej dokładne niż akcelerometry cyfrowe ( w tych drugich pewna obróbka danych jest już na etapie pomiaru, a do tego ponieważ cały układ przetwornika jest w jednym scalaku można ograniczyć wiele zakłóceń )

2. Akcelerometr ma bardzo szeroki zakres +/-10g, a Ciebie interesuje tak naprawdę +/-1g... duży zakres = mała rozdzielczość i stąd Twoje problemy.

3. Trudno o czymkolwiek mówić nie widząc schematu. Część wymienionych przez Ciebie błędów może wynikać ze słabego toru analogowego i/lub słabo odfiltrowanego zasilania, ale rozdzielczości tym nie poprawisz (chociaż możesz użyć lepszego ADC, ale dużo to raczej nie da z powodu zakłóceń).

Tak czy inaczej moim zdaniem powinieneś zmienić akcelerometr, bo z tym daleko nie zajedziesz. Osobiście polecałbym BMA180, bo do Twoich zastosowań można ustawić mały zakres i tym samym uzyskać bardzo dużą rozdzielczość. Przy zakresie +/-1.5g masz rozdzielczość 5460 jednostek na 1g czyli lepiej niż 0,2mg. Twoja obecna teoretyczna rozdzielczość to 10mg, więc mówimy o poprawie 50x...

PS. Twoje obliczenia kąta są błędne. Z akcelerometru nie dostajesz kąta w radianach. Polecam poczytać http://aitendo3.sakura.ne.jp/aitendo_data/product_img/sensor/MMA7260Q/MMA7260QT_AN3107.pdf

  • Pomogłeś! 1
Link do komentarza
Share on other sites

dzięki za rady, faktycznie ten akcelerometr nie nadaje się do takich rzeczy, ale będę miał jutro podobny model mierzący w zakresie +-2g i sprawdzę jak się sprawuje.

Oprócz tego modelu mam MPU6050, czyli cyfrowy moduł acc + gyro, ale do niego jest gotowa biblioteka i niewiele jest tam miejsca na własną inwencję, a chciałem powalczyć z odczytem analogowym sam, ewentualnie porównam oba urządzenia.

Dzięki też za pdf, trochę mi się rozjaśniło, bo z tymi urządzeniami mam do czynienia po raz pierwszy, z tego co widzę to po prostu trzeba było zamienić tę funkcję na asin (w sumie logiczne).

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.