Opis wejścia analogowego mikrokontrolera PIC16 pod kątem programowania w języku C

Opis wejścia analogowego mikrokontrolera PIC16 pod kątem programowania w języku C
● Wyświetlacz wejścia analogowego
● Pomiar napięcia
● Kody konfiguracji ADC
r_206_27_2r_206_27_3
Wejście analogowe mikrokontrolera umożliwia przekształcenie napięcia zewnętrznego w postać cyfrową, przechowywanie i przetwarzanie.
Ten typ danych wejściowych występuje w rejestratorach danych, systemach sterowania, cyfrowych procesorach audio i sygnałowych, aby wymienić tylko kilka.
Zakres dsPIC został zaprojektowany specjalnie do szybkiego przetwarzania sygnałów analogowych.
Konfiguracja analogowa
Podstawowa konfiguracja do zademonstrowania wejścia analogowego pokazano na rysunku 1.
Mikrokontroler PIC16F877 ma osiem wejść analogowych, do których można uzyskać dostęp poprzez RA0, RA1, RA2, RA3, RA5, RE0, RE1 i RE2, w tym trybie zmieniono ich nazwy na AN0 na AN7.
Wszystkie te piny domyślnie działają w trybie analogowym, ale kombinację wejść analogowych i cyfrowych można wybrać za pomocą funkcji systemowej set_up_adc_ports ().
Wejścia te są multipleksowane w jeden konwerter, dzięki czemu można je odczytać tylko jeden na raz.
Funkcja set_ADC_channel(n) wybiera kanał wejściowy.
Moduł przetwornika analogowo-modulowego ma rozdzielczość 10 bitów, co daje wyjście binarne od 0 x 000 do 0 x 3FF (1023 w zapisie dziesiętnym).
Dlatego pomiar ma dokładność 1/1024 0215×100%, co jest nieco lepsze niż 0,1%.
Jest to wystarczające do większości praktycznych celów.
Do otrzymania tego wyniku potrzebna jest 16-bitowa zmienna całkowita lub zmiennoprzecinkowa.
Alternatywnie można użyć trybu niskiej rozdzielczości, jeśli 8-bitowa konwersja jest wystarczająco precyzyjna (wyjście = 0-255).
Ten tryb jest wybierany za pomocą dyrektywy #d evice ADC = 8.
Funkcja read_ADC () zwraca następnie wartość wejściową, jako liczbę całkowitą bez znaku.
Domyślny zakres napięcia wejściowego wynosi 0-5V, co nie daje dokładnego współczynnika konwersji.
W programie demonstracyjnym, Listing 1, 8-bitowa wartość wejściowa jest dzielona przez 32, aby dać dowolny poziom napięcia od 0 do 8.
Jest to następnie konwertowane na kod ASCII poprzez dodanie 0 × 30 i wysłanie go do wyświetlacza.
Operacja jest powtarzana bez końca, przy użyciu instrukcji for (;;), co oznacza bezwarunkowe wykonanie pętli for.
W następnym wpisie podamy opis pomiaru napięcia z wykorzystaniem mikrokontrolera PlC16F877.
Autor: Grant Smith

Komentarze z Facebooka

Komentarze obecnie - OFF.