Sygnał cyfrowy (np. dwustanowy 0/1) ma się nijak do sygnału analogowego. I to nie tylko w tym że jeden ma w określonym przedziale tylko dwie wartości (lub więcej ale dokładnie określoną liczbę) a drugi nieskończenie wiele. Ale i w tym, że wielkości analogowe mogą przyjmować wartości z baaaaardzo szerokiego przedziału. Taka na przykład oporność może się w praktyce zmieniać od mili omów (mΩ) do megaomów (MΩ) czyli lekko licząc 9 rzędów wielkości (109). Jeszcze gorzej jest z odległością – tu możemy mieć nanometry (10−9) cz Angstremy (10−10) i lata świetlne ( 1016 m).
Jeśli dla napięcia mamy wartość 100 to już coś wiemy. Możemy mieć wątpliwość co do jednostki (mnożnika) czy to jest 100 V , 100 mV (100 x 10−3 ) czy 100 kV(100 x 103 ). W systemach cyfrowych wartość 100 jest kompletnie bezużyteczna jeśli nie znamy przedziału w jakim może się ona zmieniać. I tak dla liczby 8 bitowej 100 oznacza ok 40% wartości maksymalnej a dla 16 bitowej 0,3 %. I to jeszcze nie wszystko. Dodatkowo musimy wiedzieć jakim rzeczywistym wartościom danej wielkości odpowiada minimum i maksimum naszej cyfrowej liczby. I tak jeśli cyfrowe 0 to 0 napięcia, a maksimum (dla 8 bitów to 255) odpowiada 5 V to liczba 100 oznacza 5/256 x 100 = 1.953125 V.
Ale cyfrowa wartość 100 ma jedną kolosalną zaletę – 100 oznacza DOKŁADNIE 100. W technice analogowej ustawienie wartości DOKŁDNIE 100 jest w praktyce niewykonalne.
Po co ten cały przydługi wstęp? Dla lepszego zrozumienia czym w aplikacji jest lub może być SLIDER. A pełni on jako element wyjściowy (sterujący) co najmniej dwie funkcje:
- ustawienie konkretnej liczby
- ustawienie wielkości analogowej
Ad.2 W przypadku zmian wartości analogowej sprawa jest bardziej skomplikowana. Po pierwsze nasz mikrokontroler musi mieć WYJŚCIE analogowe czyli przetwornik C/A zamieniający liczbę na wielkość napięcia. Dostępna w większości układów funkcja PWM (trochę wiedzy o PWM tu >>> i tu>>>> i tu>>>>) jest takim udawanym sygnałem analogowym. Bowiem w tym przebiegu stała jest jedynie wartość średnia napięcia ale amplituda zmienia się i to kilkaset razy na sekundę Dopiero przepuszczenie sygnału przez filtr dolnoprzepustowy lub zastosowanie układu scalonego zamieniającego PWM na sygnał analogowy da nam na wyjściu rzeczywiste stałe napięcie. Ale i takie ułomne wyjście analogowe jak PWM nadaje się znakomicie w wielu „analogowych” zastosowaniach typu zmiana jasności świecenia leda czy prędkości obrotu silnika prądu stałego. Ba, w tych zastosowaniach układ PWM jest lepszy niż zasilanie regulowanym prądem stałym ze względu na minimalne straty w regulatorze. Nie zmienia to jednak faktu, iż klasyczne wyjście analogowe powinno nam dać stały poziom napięcia, którym możemy sterować odpowiednimi komendami procesora. W takim przypadku SLIDER pozwala nam zdalnie zmieniać wartość napięcia na wyjściu analogowym.
Zakres zmian naszego wirtualnego potencjometru możemy sobie dowolnie ustawić w zakresie od 0 do 9999. Jak prawidłowo dobrać zakres pracy SLIDERa do przetwornika C/A lub PWM w naszym mikrokontrolerze? To zależy jaki efekt chcemy uzyskać. Jeśli zależy nam na wykorzystaniu w pełni rozdzielczości przetwornika maksymalna wartość suwaka musi odpowiadać liczbie wynikającej z tej rozdzielczości (dla przetwornika 8 bitowego = 255, 10 bitowego 1024, 12 bitowego 4096). Wtedy zmiana o 1 na suwaku spowoduje zmianę na wyjściu analogowym o jedną jednostkę napięcia wyjściowego przetwornika = Umax/2rozdzielczość
Możemy jednak tak ustawić SLIDER by wybrana jego wartość bezpośrednio odpowiadała napięciu na wyjściu mikroprocesora. Weźmy dla przykładu przetwornik C/A o napięciu maksymalnym 5 V i rozdzielczości 10 bitów Możemy więc ustawić wartość maksymalną SLIDERa na
- 5 i uzyskamy regulację co 1 V
- 50 uzyskamy regulację co 0,1 V
- 500 da nam możliwość zmiany co 10 mV
- 5000 powinno pozwolić na zmianę napięcia wyjściowego co 1 mV
Praktyczne aspekty konfiguracji tego widgeta będą jeszcze omawiane w rozdziale Przykłady.
SLIDER jako wskaźnik
Piękne jest to, że i ten widget jest elementem dwukierunkowym. Może nie tak wszechstronnym jak BUTTON ale w porównaniu z rzeczywistym potencjometrem bije go na głowę.Standardowo możemy dowolnie zmieniać kolor SLIDERa komendą
Blynk.setProperty(V1, "color", _RED)oraz tekst na etykiecie
Blynk.setProperty(V1, "label", "jakis tekst");Najciekawszym jednak efektem możliwym do uzyskania jest analogowy wskaźnik liniowy
Wysyłając jakąś wartość na pin wirtualny przyłączony do potencjometru możemy sterować położeniem suwaka standardową procedurą
Blynk.virtualWrite(V1, liczba);Co w efekcie daje nam bardzo użyteczny wskaźnik
Inne właściwości
Slider jest widgetem o zmiennym kształcie i tak naprawdę mamy dwa takie same elementy – ale o kierunku poziomym i pionowym.Ważną funkcją elementu jest możliwość zdalnego ustawiania zakresów minimum i maksimum. Jest to wygodny sposób wstępnej kalibracji parametrów pracy widgetu lepszy niż ustawianie ich ręcznie w aplikacji. Do tego celu służą specjalne funkcje
Blynk.setProperty(V1, "min", -55);
Blynk.setProperty(V1, "max", 102);Wśród zbioru widgetów nie ma odpowiednika potencjometru obrotowego. A szkoda.
Z doświadczenia mogę stwierdzić, iż widget SLIDER jest baaardzo użytecznym elementem szczególnie w układach testowych i prototypowych. Zamiast instalować jakikolwiek potencjometr do płynnej zamiany parametrów w programie dużo szybciej i taniej jest to zrobić BLYNKowym potencjometrem. I jeszcze odczytać na nim bieżącą wartość obserwowanej wielkości. I wszystko zdalnie i bez jednego choćby lutowania. Po prostu wirtualna elektronika na wyciągnięcie ręki.
23
Brak komentarzy:
Prześlij komentarz