Skocz do zawartości

SHARP GP2Y0A02 - CZUJNIK ODLEGŁOŚCI 20-150 CM


Pomocna odpowiedź

Napisano

Witam. Posiadam taki czujnik jak ten w temacie, i mam parę pytań, ponieważ cha-ka jest nie liniowa co stwarza pewne problemy w stworzeniu programu do odczytu odległości. Czy ktoś dysponuje jakimś przykładem jak to zrobić? I mógłby pokazać? Ewentualnie mnie nakierować bo myślałem żeby zapisać odległości w pamięci flash w uC w tablicach (tylko jak później z przetwornika adc wybrać odpowiednią wartość z tablicy?) i ewentualnie użycie jakieś matematycznej funkcji przeliczającej. Pozdrawiam

Z tego, co pamiętam temat przewijał się kilka razy. Najczęściej pojawiała się odpowiedź, że trzeba tabelaryzować dane. Nie przypominam sobie, aby pojawiła się gdzieś gotowa funkcji do aproksymacji. Jednak może się mylę...

Czyli tabela to najlepsze rozwiązanie, ok, dzięki za pomoc

[ Dodano: 14-12-2013, 15:04 ]

OStatnie pytanie, czy dobrze myślę że mając tablice

int czujnik_sharp[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,
149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,
134,133,132,131,130,129,128,127,126,125,124,123,122,121,120,
119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,
104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,
85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,
64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,
43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20}

po uzyskaniu z przetwornika adc wartości np adc=30

 czujnik_sharp[adc]

to z tablicy zostanie wybrana wartość na pozycji na 30? czyli 150?

Dokładnie tak jak myślisz.

Powinieneś stworzyć tablicę odwrotną, tzn. np. z ADC przyciąć wyniki pomiędzy 0..255 i stworzyć tablicę, która dla odpowiednich wyników z ADC (czyli odpowiedniego napięcia) zwróci wartość odległości wg. informacji z dokumentacji czy własnych pomiarów.

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