Zakres laboratorium:
  1. Przetwornik A/D
  2. Timer – generator sygnału PWM (link, link2)
  3. Regulator dwustawny (link)
  4. Regulator dwustawny z histerezą
  5. Regulator trójstawny
  6. Regulator PID(link)

 

Przed wysłaniem programu należy sprawdzić jego działanie dla wszystkich wykonanych regulatorów i w każdym zakresie ustawienia potencjometrów.

Czy program poprawnie reaguje na wartości ujemne itd.

Zastanowić się nad przykładami urządzeń, w jakich występują zaprezentowane regulatory, potrafić wymienić minimum 3 urządzenia dla każdego regulatora.

Zadanie 1 – ocena 3

Program realizujący funkcję woltomierza:

  • umieścić na schemacie mikrokontoler, dwa potencjometry zadający napięcie w zakresie 0-5V, dwa mierniki napięcia (Voltimeter) do mierzenia napięcia z potencjometrów i wyświetlacz LCD
  • podłączyć elementy i napisać program, gdzie mikrokontroler wykorzystuje przetwornik A/D do pomiaru napięcia i  wyświetla je na wyświetlaczu LCD
  • w pierwszej linii LCD wyświetlana jest wartość mierzonego napięcia w woltach i wartość od 0-100, proporcjonalnie odpowiadająca mierzonemu napięciu, 0V to 0, 2,5V to 50 itd.
  • w drugiej linii LCD wyświetlamy wartości z drugiego potencjometru

Przełączanie kanałów działa na symulatorze, proszę zapoznać się z rejestrem ADMUX. Najłatwiej przełączyć kanały przez wykorzystanie funkcji:

  • sbi(ADMUX, MUX0) – ustawia 1 w bicie MUX0, ustawia pomiar na 1 kanale
  • cbi(ADMUX, MUX0) – zeru bit MUX0, ustawia pomiar na 0 kanał
Zadanie 2 – ocena 4

Program realizujący funkcję regulatora dwupołożeniowego bez histerezy i z histerezą oraz regulatora trójpołożeniowego:

  • do programu z zadania 1 dodajemy:
    • diodę LED opisaną jako L1
    • diodę LED opisaną jako L2
    • 2 diody LED opisane jako L3A i L3B
  • tworzymy 3 funkcje, jedna funkcja to jeden regulator, funkcja przyjmuje parametr (uint8_t wartośćZadana, uint8_t wartoscRzeczywista)
  • zadaniem każdej funkcji jest realizacja następującego działania:
    • regulator dwupołożeniowy – realizuję działanie regulatora dwustanowego i wyświetla swoje stany na diodzie L1
    • regulator dwupołożeniowy z histerezą – realizuję działanie regulatora dwustanowego z histerezą i wyświetla swoje stany na diodzie L2, histerezę ustawić na 0,5V
    • regulator trójpołożeniowego – realizuję działanie regulatora trójpołożeniowego i wyświetla swoje stany na diodach L3A i L3B
  • wartość zadana to wartość z 1 potencjometru, a wartość rzeczywista to napięcie z 2 potencjometru,
  • jak działają poszczególne regulatory, jakie są ich wady i zalety?
Zadanie 3 – ocena 4,5

Do programu z zadania 2 dodajemy regulator PID:

  • dodajemy funkcję, realizującą zdanie regulatora PID – przyjmuje takie same parametry jak pozostałe funkcje regulatorów
    • w obecnym zadaniu działanie regulatora PID ograniczamy tylko do członu “P”,
    • wyliczamy uchyb regulacji,
    • uchyb przeliczamy przez współczynnik członu proporcjonalnego “Kp” i otrzymujemy wartość sterującą,
    • wartość sterująca powinna być w zakresie 0-100, gdzie 50 to gdy uchyb wynosi 0 a pozostałe wartości są proporcjonalne i wypełniają cały zakres sterowania,
    • wartość wyświetlamy w 3 linijce wyświetlacza LCD (dodatkową linię do LCD można dodać przez wywołanie “Properties” na elemencie wyświetlacza i używamy funkcji LCD_GoTo(20, 0) i LCD_GoTo(20, 1)), MOC:xxx%
Zadanie 4 – ocena 5

Do programu z zadania 3 dodajemy wyjście PWM ustawiane przez regulator PID:

  • należy ustawić Time1 do pracy w trybie PWM, należy wybrać odpowiedni tryb i skonfigurować układ licznikowy,
  • funkcja PID z zdania 3 powinna sterować wypełnieniem sygnału PWM w zakresie 0-100,
  • podłączyć do wyprowadzenia mikrokontrolera (tam gdzie będzie generowany sygnał PWM) oscyloskop, na którym będzie można obserwować sygnał PWM,