Czujniki analogowe i cyfrowe
Typ i klasyfikacja czujnika pozwalają na częściowe określenie sposobu jego pracy, wielkości, które mierzy, oraz możliwych zastosowań. Czujniki jako przetworniki mogą być klasyfikowane na podstawie sygnału wejściowego (podział na czujniki propriocepcyjne, eksteroreceptywne i środowiskowe), a także ze względu na sygnał wyjściowy.
Najbardziej podstawowym podziałem czujników ze względu na sposób działania jest podział na modele analogowe i cyfrowe. Czujnik cyfrowy generuje nieciągły, dyskretny sygnał wyjściowy, a czujnik analogowy generuje sygnał, który ma charakter ciągły. Czujniki analogowe mają na celu przekształcenie na sygnał elektryczny parametrów środowiskowych, które nie są związane z elektrycznością. Sygnały wyjściowe obu rodzajów czujników muszą być przekształcone na format cyfrowy (procesor przetwarza tylko cyfrowe dane). Niektóre czujniki nie przekształcają swojego sygnału wyjściowego bezpośrednio na sygnał cyfrowy — generują sygnał analogowy, który zostanie poddany procesowi konwersji później.
Cyfrowe czujniki generują sygnały składające się z pojedynczych bitów — sygnał taki przypomina sygnał generowany przez proste przełączniki. Gdy przełącznik jest ustawiony w pozycji „włącz”, to domyka obwód, umożliwiając przepływ prądu, a gdy zostanie ustawiony w pozycji „wyłącz”, rozwiera obwód, uniemożliwiając przepływ prądu. Przełącznik jest przykładem urządzenia generującego binarny sygnał wyjściowy — sygnał ten może przyjąć jeden z dwóch stanów: 1 (włączony) albo 0 (wyłączony). Bity mogą być łączone w ciągi, tworząc bajty składające się z n przekazywanych równolegle bitów. Przykładem cyfrowego czujnika
jest optyczny enkoder inkrementalny wbudowany w silnik. Sygnał wyjściowy tego czujnika określa zmiany położenia wału silnika.
Enkoder połączony z mikrokontrolerem i tachometrem umożliwia pomiar prędkości i kierunku obrotów silnika. Enkodery optyczne wykrywają ruch serwomotorów. Cyfrowe czujniki zawierają także wbudowane układy elektroniczne, które dokonują bezpośredniej konwersji sygnału generowanego przez czujnik. Dane wyjściowe czujnika są przekazywane w formie sygnału cyfrowego — na jakość transmitowanego sygnału nie wpływają długość kabla, jego rezystancja czy impedancja ani zakłócenia elektromagnetyczne. Cyfrowy
czujnik może również zwracać wartości dostarczające dodatkowych informacji o odczytanych wartościach.
Analogowe czujniki generują sygnał wyjściowy w postaci określonego napięcia. I to wszystko. Prawdziwe analogowe czujniki nie mają wbudowanych układów scalonych, a więc konwersja sygnału musi przebiegać poza czujnikiem. Czujniki analogowe są dokładniejsze, ponieważ nieprzekształcony sygnał charakteryzuje się większą rozdzielczością. Niestety analogowy sygnał jest bardziej podatny na zakłócenia. Ponadto trudno jest korzystać z sygnałów analogowych podczas wykonywania operacji matematycznych i porównywania. Konwersja sygnału analogowego na cyfrowy wiąże się z utratą danych. W tabeli 5.3 przedstawiliśmy różne właściwości czujników analogowych i cyfrowych.
Tabela 5.3. Właściwości czujników analogowych i cyfrowych
Parametr | Czujnik analogowy | Czujnik cyfrowy |
Rodzaj sygnału | Ciągły | Dyskretny |
Odwzorowanie sygnału | Duża dokładność — sygnał bliski oryginalnemu sygnałowi | Utrata niektórych danych |
Konwersja sygnału na cyfrowy | Utrata dokładności po konwersji na dane cyfrowe | Brak konwersji |
Użyteczność sygnału z punktu widzenia mikrokontrolera |
Konieczność konwersji Trudność w zastosowaniu w obliczeniach |
Może być użyty bezpośrednio |
Przetwarzanie sygnału |
Przetwarzanie sygnału poza czujnikiem Wymaga wzmocnienia |
Sygnał przetwarzany przez wbudowaną elektronikę czujnika Brak konieczności wzmacniania |
Przesyłanie sygnału | Sygnał może ulec degradacji i jest wrażliwy na zakłócenia |
Brak degradacji przesyłanego sygnału |
Sygnał wyjściowy | Odczyt w postaci napięcia | Sygnał może zawierać dodatkowe informacje |
Odczyt sygnałów analogowych i cyfrowych
Czujniki analogowe i cyfrowe generują sygnał, który powinien być odpowiednio zinterpretowany, ale czym tak naprawdę jest sygnał? Jak można go zmapować lub zinterpretować? Przede wszystkim sygnał jest zmieniającą się wraz z upływem czasu wielkością, która niesie jakieś informacje. Sygnał zmienia się w czasie, czyli nie przyjmuje stałej wartości — zmiany mogą mieć
formę zmian napięcia lub natężenia prądu. Takie sygnały można przekazywać za pomocą przewodów lub technologii radiowych takich jak Wi-Fi lub Bluetooth.
Czujniki analogowe generują sygnał, który jest ciągły, a czujniki cyfrowe generują dyskretny sygnał wyjściowy. W przypadku czujnika analogowego sygnał wyjściowy jest proporcjonalny do mierzonej wielkości. Czujniki analogowe mogą być używane do mierzenia następujących właściwości:
- temperatura,
- ciśnienie lub siła,
- prędkość lub przyśpieszenie,
- dźwięk,
- natężenie światła.
Wszystkie te wielkości są z natury ciągłe. Analogowy sygnał może charakteryzować się napięciem wahającym się od 0 do 5 V (wolt). Gdy czujnik nie wykrywa żadnego dźwięku, to jego sygnał wyjściowy charakteryzuje się potencjałem 0 V, a gdy wykryje maksymalnie głośny dźwięk, napięcie sygnału wyjściowego wynosi 5 V. Czujniki dźwięku mogą wykrywać fale dźwiękowe o dowolnym natężeniu mieszczącym się w zakresie ich pracy. Rysunek 5.3(a) przedstawia analogowy, ciągły sygnał o napięciu wahającym się od 0 do 5 V — sygnał prezentuje zmiany mierzonej wielkości w sposób ciągły wraz z upływem czasu. Wykres tego sygnału jest gładki i ciągły. Aby mikroprocesor robota mógł skorzystać z takiego sygnału (użyć go w obliczeniach albo porównać z innymi sygnałami), musi przetworzyć go na sygnał cyfrowy za pomocą przetwornika analogowo-cyfrowego (A/C). Konwerter A/C może być elementem mikrokontrolera lub czujnika. Konwersję analogowego sygnału na wartości dyskretne określamy mianem kwantyzacji. Proces ten został pokazany narysunku 5.3(b).
Rysunek 5.3. Sygnał analogowy jest ciągłym sygnałem o napięciu wahającym się od 0 do 5 V (a); konwersja sygnału analogowego na wartości dyskretne (b)
Przetwornik A/C dzieli zakres pomiarowy na dyskretne wartości. Maksymalna liczba woltów jest dzielona na n bitów generowanych przez konwerter. W płytkę Arduino wbudowano konwerter 10-bitowy, a więc do opisu każdej próbki sygnału używanych jest 10 bitów. Oznacza to możliwość odzwierciedlenia 210 = 1024 dyskretnych, analogowych poziomów sygnału. Długość zakresu pojedynczego poziomu napięcia — rozdzielczość — można określić, dzieląc całkowity zakres pomiarowy przez maksymalne wskazanie (1023):
5 V / 1023 = 0,00488 V 4,9 mV
Pojedynczy poziom napięcia obejmuje 4,9 mV (miliwolt). Niektóre przetworniki są 8-bitowe (28 = 256 dyskretnych poziomów przy rozmiarze 19,4 mV) lub 16-bitowe (216 = 65 536 dyskretnych poziomów przy rozmiarze 0,076295109 mV). Rozdzielczość określa różnicę napięć pomiędzy dwoma najbliższymi napięciami rozróżnianymi przez przetwornik. Im niższa różnica między tymi
napięciami, tym większą dokładnością będzie charakteryzował się sygnał cyfrowy powstały w wyniku konwersji. Im więcej bitów jest używanych do zapisu jednego stanu sygnału, tym lepszy i bardziej dokładny jest otrzymany cyfrowy sygnał.
Niektóre cyfrowe czujniki są tak naprawdę czujnikami analogowymi z wbudowanymi przetwornikami analogowo-cyfrowymi. Prawdziwe cyfrowe czujniki generują cyfrowy sygnał w sposób bezpośredni. Czujnik taki może wygenerować różne wartości, ale muszą one wzrastać stopniowo. Wykresy sygnałów cyfrowych zwykle swym wyglądem przypominają schody (zobacz rysunek 5.4).
Rysunek 5.4. Wykres stanów sygnału cyfrowego
Przykładem cyfrowego czujnika jest cyfrowy kompas. Określa on kierunek, w którym jest zwrócony, wysyłając 9-bitowy odczyt przyjmujący wartość od 0 do 359 (sygnał może przyjąć 360 możliwych wartości).
Sygnał wyjściowy czujnika
Analogowy czujnik generuje analogowy sygnał w postaci płynnych zmian napięcia. Sygnał ten jest następnie konwertowany na postać cyfrową za pomocą przetwornika analogowo-cyfrowego. Co zwróciłby taki przetwornik po skierowaniu do niego sygnału o napięciu 4,38 V? Załóżmy, że przetwornik ten jest 3-bitowy. W takim przypadku przetwornik generuje sygnał przyjmujący
jeden z ośmiu stanów, a rozdzielczość napięcia to:
5 V / 8 = 0,625 V
W związku z tym w wyniku skierowania do przetwornika wspomnianego sygnału zwróci on wartość 111. W tabeli 5.4 została przedstawiona binarna reprezentacja danych kierowanych do tego przetwornika. Jak widzisz, zakresy rozpoznawanych analogowych sygnałów zależą od szerokości pojedynczego poziomu (0,625 V). Napięcie 4,38 V znajduje się w zakresie od 4,371 do 5,00 V.
Tabela 5.4. Analogowe odczyty i ich postać binarna
Poziom napięcia (V) (rozdzielczość: 0,625 V) |
Postać binarna (3-bitowa) |
0 – 0,62 | 000 |
0,621 – 1,25 | 001 |
1,251 – 1,87 | 010 |
1,871 – 2,5 | 011 |
2,51 – 3,12 | 100 |
3,121 – 3,75 | 101 |
3,751 – 4,37 | 110 |
4,371 – 5,00 | 111 |
Wartości dziesiętne można obliczyć za pomocą wzoru:
8/5 V = Odczyt konwertera A/C / Wartość uzyskana
W tym przypadku:
8/5 V = Odczyt konwertera A/C / 4,38 V
(8 / 5 V) * 4,38 V = Odczyt konwertera A/C
7,008 = Odczyt konwertera A/C
Otrzymana wartość może być przedstawiona za pomocą zapisu binarnego:
111 7,008
Wartości dziesiętne są mapowane do wartości (takich jak na przykład kolory) lub interpretowane przez odpowiednie zakresy (np. zakresy definiujące jasne i ciemne światło).
Programowanie robotów. Sterowanie pracą robotów autonomicznych Autorzy: Cameron Hughes, Tracey Hughes Wydawnictwo: Helion