Skalowanie napięcia dla wejścia analogowego Arduino, dzielników napięciowych

16

Niedawno zbudowałem światłowodowe czujniki zgięcia i chcę odczytać wartości, które otrzymuję od nich do komputera za pośrednictwem Arduino. Mierzę światło za pomocą tej fotodiody od Industrial Fibre Optics . Obecnie podaję diodę LED na drugim końcu, a także fotodiodę 2,2 V. Moje pytanie dotyczy tego, że fluktuacje napięcia mierzone za pomocą multimetru na fotodiodzie są liniowe, ale raczej niewielkie, ponieważ włókno ulega deformacji, nawet dość radykalnej. Gdy światłowód jest prosty, w zależności od światłowodu (trudno jest je ocenić identycznie), napięcie oscyluje na przykład wokół 1,92 V, a przy zginaniu wzrośnie do, powiedzmy, 1,93-1,94 V. Nie martwię się o uzyskanie identycznych napięć, ponieważ mogę skalować w oprogramowaniu.

Martwi mnie utrata rozdzielczości podczas robienia A / D z Arduino. Jeśli moje wahania napięcia są rzędu 10 mV, to czy 10-bitowe A / D Arduino nie zmierzą się z tym, nawet jeśli zwiększę napięcie do 5 V za pomocą dzielnika napięcia? To, czego szukam, to skaler analogowy. Jak mogę rozciągnąć ten zakres od 1,92 do 1,94, aby objąć pełny zakres, od 0 V do 5 V, aby móc skorzystać z pełnego zakresu Arduino A / D?

Wydaje mi się, że musi to być powszechna operacja w elektronice, ale nigdy nie studiowałem tego formalnie, więc straciłem wiele rzeczy.

(Być może zastanawiałeś się, tak jak dawid), „dlaczego używasz światłowodów do wykrywania zgięcia? Dlaczego miałbyś oczekiwać zmiany napięcia, gdy światłowód jest zgięty?”. Sztuczka polega na zdjęciu okładziny po jednej stronie kabla światłowodowego Pozwala to na rozlanie się światła. Kiedy kabel jest zgięty od nacięcia, jeszcze więcej światła jest wypuszczane z kabla, powodując spadek napięcia w odbiorniku i odwrotnie.)

taras
źródło
Czy byłbyś tak uprzejmy, aby pokazać schemat odbiornika? Czy dostarczasz napięcie polaryzacji 1,9 V?
endolith,
Jeśli masz na myśli schemat samego odbiornika, podłączyłem się do arkusza danych powyżej. Oto znowu: i-fiberoptics.com/pdf/IFD91.pdf Jeśli masz na myśli sposób, w jaki to podłączyłem, możesz to zobaczyć na zdjęciu. Odbiornik jest czarny. Daję mu 2,2 V (choć na zdjęciu jest to bateria litowo-jonowa) przez czerwony przewód z boku odbiornika z pomarańczową kropką i mierzę napięcie na rezystorze, który przechodzi na masę druga strona.
taras

Odpowiedzi:

11

Więc jeśli dobrze rozumiem, chcesz być w stanie „odczytać” zmianę 10 mV na sygnał 1,9 V?

Jeśli tak jest, sugerowałbym dwa osobne etapy. Pierwszym będzie wzmacniacz fotodiody (strona 9 jest najbardziej standardowym układem ). Pomoże to przekształcić prąd z fotodiody w napięcie.

Drugim etapem będzie wzmacniacz instrumentacyjny, taki jak rodzina INA z Texas Instruments (najlepszy, ale też może być drogi). Pomoże to usunąć sygnał „trybu wspólnego”, którym w tym przypadku jest 1,9 V. Możesz także dodać wzmocnienie do wzmacniacza instrumentacyjnego lub naprzemiennie dodać prosty wzmacniacz operacyjny w konfiguracji nieodwracającej na końcu, aby pomóc uzyskać twój sygnał do niezbędnego 5 V.

Nie twierdzę, że będzie idealnie, ale myślę, że to dobry początek.

Na koniec podoba mi się powyższy pomysł Davida na temat zacisków, mimo że mogą one powodować pewne błędy pomiarowe w przetworniku A / C. Ważniejsze jest jednak to, że jeśli możesz go wymachiwać, wypróbuj lepszy wzmacniacz operacyjny niż 741. Są one powszechne, ale specyfikacje są okropne. Przesunięcie napięcia 3 lub 4 mV na zaciskach wejściowych może naprawdę zepsuć mały sygnał, jakbyś próbował zmierzyć.

~ Chris Gammell

Chris Gammell
źródło
1
Nie potrzebujesz wzmacniacza instrumentacyjnego. Wystarczy prosty wzmacniacz różnicowy. Potrzebne jest jednak stałe źródło zasilania o napięciu 1,9 V. Domyślam się, że coś takiego już istnieje w obwodzie jako stronniczość czujnika. Pomoże to mieć schemat. Ponadto, po usunięciu obciążenia, musisz ponownie dodać kolejne obciążenie, aby uzyskać od 0 do 5 V ADC.
endolith,
1
Zgadzam się, że NIE POTRZEBUJESZ jednego, ale to dobry pomysł. Wzmacniacz instrumentalny to po prostu wzmacniacz różnicowy z buforami przed nim (czasami z dodatkowymi rezystorami dla wzmocnienia). Jeśli użyjesz tylko wzmacniacza różnicowego, jesteś na łasce rezystorów we wzmacniaczu różnicowym; czasami nawet 1K. Jeśli próbuje coś zmierzyć, ta wysoka impedancja (z buforów iAmp) może naprawdę pomóc (tj. Brak przepływu prądu do urządzenia pomiarowego).
Chris Gammell,
12

W tym sensie warunkowanie sygnału jest niezwykle powszechne. Chcesz użyć wzmacniacza, aby zakres 10 mV (na przykład) był całym zakresem 0–5 V arduino. Można to zrobić za pomocą wzmacniaczy operacyjnych, takich jak LM741. Prawdopodobnie zechcesz również użyć „cęgów napięciowych” (np. Dwóch diod Zenera) na wyjściu wzmacniacza sygnału / wejścia do ADC, aby upewnić się, że wartość nie przekracza 5 V. Jeśli rozejrzysz się online w arkuszach danych wzmacniacza operacyjnego i / lub obwodach warunkujących sygnał, powinieneś znaleźć przewodniki, które dokładnie tego szukasz.

David Brenner
źródło
4

Sugeruj, aby spojrzeć na połączenie różnicowego PGA (programowalnego wzmacniacza wzmocnienia) i przetwornika cyfrowo-analogowego, z wyjściem czujnika skierowanym na wejście „+”, a przetwornikiem cyfrowym na wejście „-”. (Lub coś zintegrowanego, który zapewnia równoważną funkcjonalność.) Zasadniczo spójrz na sygnał o niskim wzmocnieniu, dowiedz się, jakie jest jego przesunięcie, umieść to napięcie na przetworniku cyfrowo-analogowym i zwiększ wzmocnienie.

PGA308 TI wygląda na to, że może to być miłe rozwiązanie.

Jeśli chcesz tańszego rozwiązania, użyj wzmacniacza różnicowego o stałym wzmocnieniu (wystarczyłby standardowy 4-rezystor + wzmacniacz operacyjny) + stabilny, cichy 8-bitowy przetwornik cyfrowo-analogowy (stabilność / charakterystyka szumu ważniejsza niż dokładność), po raz kolejny wyjście czujnika na wejściu „+” do wzmacniacza różnicowego i wyjście DAC na wejściu „-”.

Ćwiczenie dla czytelnika: pokaż, że możesz wyprowadzić wyjście wzmacniacza różnicowego z nasycenia do liniowego zakresu, używając techniki wyszukiwania binarnego z przetwornikiem cyfrowo-analogowym i upewniając się, że wzmocnienie nie jest większe niż G1 = napięcie wejściowe ADC w pełnej skali, podzielone przez sumę nominalnej wielkości kroku DAC i jego DNL (nieliniowość różnicowa). Prawdopodobnie użyłbym mniejszego z (G1 / 2) i G2, gdzie G2 = pełne napięcie wejściowe ADC podzielone przez zakres napięcia wyjściowego czujnika, na którym ci zależy.

Jason S.
źródło
W tej chwili zdecydowanie zbyt ambitny, biorąc pod uwagę ograniczenia czasowe, ale dziękuję za sugestię. Jestem podekscytowany, że zagłębiłem się w analogowe warunkowanie sygnałów dla przyszłych prototypów.
taras,
Dlaczego potrzebujesz DAC-a? Po prostu generujesz z nim offset DC? To wydaje się raczej przesadą.
endolith,
Tak. Przetwornik DAC został założony przy założeniu konieczności zmiany przesunięcia DC w szerokim zakresie. Jeśli masz system z napięciem obejmującym tylko wąski zakres (przy założeniu prawidłowej analizy tolerancji), dzielnik rezystorowy i odniesienie mogą być wystarczające do wytworzenia napięcia przesuniętego. Lub dla nieco większej złożoności sieć rezystorowa + multipleksery (takie są niektóre przetworniki cyfrowo-analogowe). Przetwornik cyfrowo-analogowy nie jest tak skomplikowanym ani drogim urządzeniem, jeśli nie potrzebujesz ultra-wysokiej prędkości lub bardzo wysokiej rozdzielczości.
Jason S
3

Używanie światłowodów jako czujnika zgięcia może być złym wyborem, czyż nie cały sens światłowodów pozwala łatwo zginać światło wokół narożników przy minimalnej stracie?

davr
źródło
2
Tak, ale jeśli zdejmiesz kurtkę i delikatnie zetrzesz okładzinę po jednej stronie żyletki, ilość światła, które przeniknie, będzie się zmieniać w miarę zginania włókna. Przyjemną cechą jest to, że otrzymujesz sygnał dwukierunkowy. Jeśli zginasz się od punktacji, mniej światła przenika, jeśli się zginasz, więcej światła przenika. Aby to osiągnąć, musisz użyć dwóch tradycyjnych czujników zgięcia. Wyglądają również świetnie.
taras,
2

Potrzebujesz dwóch rzeczy: aby użyć wejścia różnicowego do porównania ze standardem 1,9 V (lub blisko niego) oraz wzmacniacza, aby zwiększyć rozdzielczość tej różnicy.

Aby uzyskać najlepsze wyniki, należy używać zewnętrznych wzmacniaczy instrumentacyjnych wysokiej jakości lub wzmacniaczy operacyjnych. Ale możesz spróbować użyć funkcji wbudowanych w mikrokontroler. Zarówno Arduino Mega (chip ATMega2560), jak i Arduino Leonardo zawierają opcję różnicowych, wzmocnionych wejść do ADC bezpośrednio na chipie. (Uno tego nie ma). ATMega2560 może wykonywać wiele kanałów (zmultipleksowanych) wzmocnionego różnicowego przetwornika ADC dla wielu czujników - przeczytaj arkusz danych, aby zobaczyć, jakie kombinacje pinów są możliwe. Ma opcję wzmocnienia 200x, która zapewniłaby rozdzielczość 1024 kroków przy 25 mv. Musisz tylko ustawić to okno 25 mV tam, gdzie jest to potrzebne!

To może, ale nie musi, być wystarczająco wolne od hałasu dla twoich celów - nie jest tak wysokiej jakości, jak można zbudować na zewnątrz, aby uzyskać więcej $$.

Najtrudniejszą częścią może być uzyskanie stabilnego i dokładnego odniesienia 1,9 V do porównania.

Zeph
źródło
Przybyłem tutaj, aby to powiedzieć. +1!
Nick Johnson