SUM - instrukcja lab4 - ADC - Zakład Urządzeń Mechatronicznych
Transkrypt
SUM - instrukcja lab4 - ADC - Zakład Urządzeń Mechatronicznych
Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania Sterowniki Urządzeń Mechatronicznych – laboratorium Ćw. 4: ADC 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z moŜliwościami pomiaru wartości analogowych za pomocą wewnętrznego przetwornika analogowo cyfrowego ADC mikrokontrolerów serii AVR. 2) Zakres niezbędnych wiadomości - Rola sygnału odniesienia AREF w pomiarach ADC (w literaturze moŜna spotkać takŜe pod nazwą VREF) - MoŜliwe źródła sygnału odniesienia AREF w mikrokontrolerach serii AtMega. - Rola multipleksera w pomiarach ADC i ograniczenia wynikające z jego stosowania. - Umiejętność obliczenia częstotliwości pracy ADC znając wartość prescalera przetwornika. - Umiejętność obliczenia 10-bitowego wyniku końcowego (jednostka Wolt) znając bezwymiarową wartość odczytaną z ADC w rejestrach wynikowych 8-bitowych ADCH i ADCL. - Umiejętność poprawnego podłączenia na schemacie elektrycznym przetwornika ADC mikrokontrolera AVR. Rejestry i bity sterujące uŜywane podczas ćwiczeń do konfiguracji ADC: ADMUX: REFS0, REFS1, REFS2, ADCSRA: ADEN, ADIE, ADFR, ADPS0, ADPS1, ADPS2, ADSC Przerwanie od ADC: SIGNAL (SIG_ADC) { … } 3) Opis ćwiczenia Podczas ćwiczenia student ma za zadanie podłączyć prawidłowo potencjometr rezystancyjny do kanału ADC mikrokontrolera na płytce PCB i zrealizować aplikację pomiarową mierzącą sygnał analogowy uzyskany z potencjometru. Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania Sterowniki Urządzeń Mechatronicznych – laboratorium Ćw. 4: ADC 4) Przebieg ćwiczenia Podłączyć potencjometr i zrealizować pomiar napięcia z potencjometru. Wynik zaprezentuj za pomocą 3 pozycyjnego paska diodowego wykorzystując diody D2-D4. Jako wejście analogowe wykorzystać kanał ADC0, co uniemoŜliwi nam korzystanie z diody D1. #include <avr/io.h> #include <avr/interrupt.h> //====================================================== void ADC_Init(void) //nasza własna funkcja w której umieścimy konfigurację ADC { ADMUX |=(1<<REFS0); //AREF pobierane z AVCC (zakładamy 5V) ADMUX&=~(1<<REFS1); //AREF pobierane z AVCC (zakładamy 5V) ADCSRA|=(1<<ADEN); //adc enable ADCSRA|=(1<<ADIE); ADCSRA&=~(1<<ADFR); //przerywaj przerwaniem gdy zakończy się pomiar ADC //free runing mode ADCSRA …=…(1<<ADPS0); //ustawiamy prescaler (sprawdzić w nocie katalogowej moŜliwe wartości) ADCSRA …=…(1<<ADPS1); //ustawiamy prescaler (sprawdzić w nocie katalogowej moŜliwe wartości) ADCSRA …=…(1<<ADPS2); //ustawiamy prescaler (sprawdzić w nocie katalogowej moŜliwe wartości) ADCSRA|=(1<<ADSC); //start konwersji } //====================================================== int wynik; //tworzymy zmienną w której będziemy zapisywać wynik //====================================================== SIGNAL(SIG_ADC) //obsługa przerwania od ADC { //odczytujemy wynik z rejestrów ADCL i ADCH i zapisujemy go w zmiennej wynik. wynik = ADCH … … ADCL; //w miejscu kropek … umieścić odpowiednie działania matematyczne if (wynik>…) else … //zapal D1 … //zgas D1 if (wynik>…) else … //zapal D2 … //zgas D2 if (wynik>…) else … //zapal D3 … //zgas D3 if (wynik>…) else … //zapal D4 … //zgas D4 ADCSRA|=(1<<ADSC); //start ponownej konwersji ADC } //====================================================== void main(void) { //konfiguracja kierunków portów DDR (diody jako WY, kanał ADC jako WE) DDR… = … DDR… = … sei(); //globalne zezwolenie na przerwania ADC_Init(); //wywołanie funkcji konfigurującej ADC while(1) //pętla główna { //CPU nie ma tu nic do roboty. Wszystko dzieje się w przerwaniu } } Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania Sterowniki Urządzeń Mechatronicznych – laboratorium Ćw. 4: ADC 5) Sprawozdanie Sprawozdanie powinno zawierać: - schematy hardware do kaŜdego wykonanego zadania w ramach ćwiczeń - pod kaŜdym schematem powinien się znajdować opis i ewentualne wnioski - program, jaki grupa napisała na zajęciach - za kaŜdą linijką programu, jeŜeli będzie taka potrzeba, naleŜy umieścić bieŜący komentarz na temat danej linijki kodu - pod kaŜdym programem naleŜy umieścić własny opis działania programu i wnioski - obliczenia częstotliwości pracy ADC uŜytego w zadaniu - omówienie wzoru, jaki został uŜyty, aby obliczyć w jednostkach [wolt] wynik pomiaru ADC - ogólne wnioski i spostrzeŜenia na temat wykonanego ćwiczenia i zdobytej wiedzy