Zakres laboratorium:
Na zajęcia należy przynieść kątomierz.
Zadania do wykonania:
- Wejściówka
- Zadanie 2.1
- Zadanie 2.2
- Zadanie 2.3 – zadanie na ocenę 5,5
- Zadanie 3.1
1. Sygnał PWM
Przygotować informacje o sygnale PWM (wejściówka):
- co to jest sygnał PWM?
- do czego służy – wymienić 3 zastosowania
- narysować przebiegi sygnału PWM (sygnał o długości 3 okresów):
- urządzenie wyłączone
- urządzenie włączone na 50% mocy
- urządzenie włączone na 100% mocy
2. Serwo modelarskie – sterowanie
Podstawowe informacje o serwomechanizmach modelarskich można znaleźć na stronie: Link. Serwo modelarskie jest urządzeniem, któremu za pomocą sygnału nazywanego RC-PWM można zadać położenie ramienia, układ wewnętrzny serwa ustawia ramię odpowiednio do podanego sygnału. Sygnał sterujący jest to sygnał ciągły o częstotliwości 50Hz (długość pojedynczego impulsu to 20ms). Do sterowania wykorzystywane jest tylko część tego sygnału, ponieważ sterujący impuls posiada szerokość w zakresie 0,5-2,5ms (w zależności od serwa). Proces sterowania widać na poniższym rysunku:

Ustawienie pozycji skrajnej “+90” oznacza podanie sygnału o okresie 20ms ale długość stanu wysokiego to tylko 0,9ms. Położenie “-90” to podanie sygnału, w którym stan wysoki wynosi 2,4ms. Inne długości stanu wysokiego oznaczają inne pośrednie położenia.
Pierwsze kroki:
- podłączyć serwomechanizm do płytki EDU według poniższego schematu:
- podłączyć dwa przyciski do mikrokontrolera zgodnie z wcześniejszymi laboratoriami
- utworzyć projekt według szablonu i skopiować:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
int main() { //Ustawic wyprowadzenie OC1A jako wyjscie //Ustawienia rejestrow Time1 //Tabela 16.2-16.4 - Fast PWM - Clear OC1A... //Tabela 16.5 - Fast PWM - Top: ICR1 //Prescaler: clk/8 //Zapisac do rejestru ICR1, wartosc aby czestotliwosc sygnalu wynosila 50Hz ICR1 = 0; while (1) { //Ustawic pozycje -90 OCR1A = 0; _delay_ms(2000); //Ustawic pozycje 0 _delay_ms(2000); //Ustawic pozycje +90 _delay_ms(2000); //Ustawic pozycje 0 _delay_ms(2000); } } |
Zadanie 2.1
- serwo podłączone jest do nóżki PD5 posiadającą funkcję OC1A (wyjście Kanału A z Timer1), dzięki takiej konfiguracji na tym wyprowadzeniu można generować sprzętowo sygnały z wykorzystaniem Time1, skopiować powyższy kod programu i uzupełnić zgodnie z komentarzami
- w pętli while(1) – dopisać sterowanie (ustawianie wypełnienia/długości stanu wysokiego) zgodnie z komentarzami. Serwo powinno poruszać się według następującej sekwencji: -90, 0, +90, 0, …
Zadanie 2.2
Za pomocą dwóch podłączonych przycisków zrealizować następujące zadanie:
- Przycisk Up – zwiększa wychylenie serwomechanizmu
- Przycisk Down – zmniejsza wychylenie serwomechanizmu
Zadanie 2.3 – zadanie na ocenę 5,5
- podłączyć wyświetlacz LCD (jak podłączyć LCD) i wyświetlić wartość:
- aktualnie podawanego wypełnienia – szerokości impulsu w ms
- kąt aktualnego położenia serwomechanizmu – 0-180 st.
- zmieniać wartość przy pomocy przycisków i zrobić tabelkę, w której zostanie porównana wartość wypełnienia z kątem wychylenia, narysować wykres
Zagadnienia na przyszłe zajęcia:
- powtórzenie całego materiału
- RS232/UART – komunikacja z komputerem PC
3. Propozycja oceny – zaliczenie kursu
Warunki zaliczenia: Link
Zadanie 3.1
- przedstawienie propozycji oceny
- odpowiedź ustna