Sterowanie temperaturą

Z support
Skocz do: nawigacja, szukaj

Wyzwanie: E INTELIGENTNY DOM

Projekt: E02 STEROWANIE TEMPERATURĄ

Przypomnij sobie[edytuj]

Przed rozpoczęciem tego projektu warto wrócić do lekcji:

  • funkcje,
  • generowanie dźwięków,
  • instrukcje warunkowe prosta,
  • instrukcje warunkowe złożone,
  • liczby losowe,
  • operatory logiczne,
  • operatory porównania,
  • pętle,
  • tablice,
  • urządzenia wejścia,
  • urządzenia wyjścia,
  • wyświetlacz,
  • zmienne.

Cel projektu[edytuj]

Sterowanie temperaturą w własnym domu jest coraz bardziej popularne. Ludzie kochają systemy, które zrobią coś za nich.

Zadanie 1[edytuj]

Podłączenie modułów[edytuj]

Czujnik temperatury to moduł analogowy. Podłącz go do pinu oznaczonego literką A (Analog).

Opis[edytuj]

Wykorzystaj wyświetlacz jako stacje pogodową. Wypisz na nim aktualną temperaturę jaką wskazuje czujnik temperatury.

Przypomnij sobie jakie bloczki są potrzebne do prawidłowej pracy z wyświetlaczem:[edytuj]

  • włącz wyświetlacz (domyślnie wyświetlacz jest wyłączony, ta instrukcja powinna być użyta tylko raz),
  • wyczyść wyświetlacz (instrukcja wyczyści poprzednie zapiski na wyświetlaczu, np. logo producenta),
  • ustaw kursor (pozwala na wypisanie tekstu zawsze w tym samym miejscu),
  • wypisz na wyświetlaczu (wypisanie tekstu dołączonego z prawej strony bloczka),
  • wyświetl na wyświetlaczu (wyświetlenie powyżej zdefiniowanych tekstów i figur).

Pseudokod[edytuj]

włącz wyświetlacz
wyczyść wyświetlacz
ustaw kursor
wypisz na wyświetlaczu = czujnik-temperatury
wyświetl na wyświetlaczu 

Zadanie 2[edytuj]

Opis[edytuj]

Utwórz tablicę, której elementami będą nazwy pór roku.

Pamiętaj aby utworzyć tablicę postępuj według instrukcji:

1. Utwórz zmienną tablicową o typie wartości jakie chcesz aby były w niej przechowywane.

2. Wypełnij tablicę wartościami. Do utworzonej zmiennej podłącz bloczek „tablica typu” z wybranym typem wartości. Następnie podłącz bloczki z wartościami tablicy.

Zadanie 3[edytuj]

Podłączenie modułów[edytuj]

Przycisk jest modułem cyfrowym. Podłącz go pod pin oznaczony literką D (Digital).

Opis[edytuj]

Użyj przycisku jako mechanizmu losującego. Po jego naciśnięciu wylosuj jedną z pór roku zapisaną w wcześniejszej tablicy. W pierwszym kroku wylosuj liczbę będącą indeksem tablicy. Następnie odczytaj jaka wartość kryje się pod tym indeksem. Aby wylosować liczbę użyj bloczka <WYLOSUJ LICZBĘ CAŁKOWITĄ> ustawiając odpowiedni zakres liczb jakie mają zostać wylosowane.

Pamiętaj, że zawsze ta druga wartość, czyli maksymalna liczba jaka może zostać wylosowana, musi być o 1 większa od preferowanej maksymalnej wartości. Dodatkowo należy pamiętać, że najmniejszy indeks tablicy to 0 a największy to liczba elementów minus 1.

Zadanie 4[edytuj]

Opis[edytuj]

Skojarz pory roku z klimatyzacją i ogrzewaniem. Zimą, gdy na dworze mróz warto włączyć ogrzewanie aby zrobiło się ciepło. Natomiast latem dobrym pomysłem jest klimatyzacja aby ochłodzić powietrze.

W zadaniu stwórz warunki (w instrukcjach warunkowych) składające się z pory roku i temperatury poniżej której należy włączyć ogrzewanie lub powyżej której należy włączyć klimatyzację. Następnie aby sprawdzić poprawność warunków wylosuj porę roku, odczytaj temperaturę i wypisz na wyświetlaczu, które urządzenie należy włączyć.

Pseudokod[edytuj]

włącz wyświetlacz
wyczyść wyświetlacz
ustaw kursor
Jeśli pora-roku = „lato” i temperatura > 25
   wypisz na wyświetlaczu = „lato, temp>25, za goraco, wlaczam klimatyzacje”
w przeciwnym razie jeśli pora-roku = „zima” i temperatura < 3
   wypisz na wyświetlaczu = „zima, temp<3, za zimno, wlaczam ogrzewanie”
wyświetl na wyświetlaczu 
	

Zadanie 5[edytuj]

Opis[edytuj]

W tym zadaniu wykorzystaj wyświetlacz, aby pokazać zmianę temperatury przy klimatyzacji lub ogrzewaniu do optymalnej temperatury w pomieszczeniu. Wykorzystaj pętle <LICZ W GÓRĘ>/<LICZ W DÓŁ> aby pokazać jak działa urządzenie do zmiany temperatury. Pamiętaj aby na końcu pętli ustawić aktualną wartość zmiennej temperatura. W definicji pętli <LICZ W GÓRĘ>/<LICZ W DÓŁ> możemy używać tylko liczb całkowitych. Czujnik temperatury zwraca wartość w postaci liczby rzeczywistej. Aby poprawnie wykonać program musimy zamienić wartość czujnika temperatury na liczbę całkowitą. Wśród bloczków nie zostało przewidziane rzutowanie liczb z postaci rzeczywistej na całkowitą, dlatego aby wykonać to zadanie musimy sami napisać taką funkcję. Z tego powodu sami musimy napisać taką funkcję. Zadaniem funkcji jest poszukanie liczby całkowitej dla wartości czujnika temperatury. Dodatkowo aby przyśpieszyć szukaniu liczby całkowitej znak minus został pominięty i przypisany na końcu po znalezieniu odpowiednika. W poszukiwaniach została wykorzystana pętla <POWTARZAJ DOPÓKI> z krokiem co 1 w zmiennej j.

Wyszukaną liczbę podstawiamy w pętli dotyczącej zwiększania lub zmniejszania aktualnej temperatury. Na końcu wypisujemy żądaną temperaturę w pomieszczeniu. Przyjmij założenie, że zmiana temperatury o jeden stopień następuje w ciągu 1 sekundy. Tak więc ostatnim elementem instrukcji wykonywanych po naciśnięciu przycisku jest „czekaj 1s”. Element został umieszczony abyśmy mogli zobaczyć ostateczny efekt programu.

Pseudokod[edytuj]

Jeśli pora-roku = „lato” i temperatura > 25
   wypisz na wyświetlaczu = „lato, temp>25, za goraco, wlaczam klimatyzacje”
   licz w dół z i od i=temperatura do i > 21 co 1
      wypisz na wyświetlaczu = „schladzam pomieszczenie, aktualna temperatura to ”
      wypisz na wyświetlaczu = temperatura
      wyświetl na wyświetlaczu
      czekaj 1s
      temperatura = i
   wypisz na wyświetlaczu = „lato, pomieszczenie schłodzone do optymalnej temperatury ”
   wypisz na wyświetlaczu = temperatura
wyświetl na wyświetlaczu
Funkcja zmiana-temp-na-liczbe-calkowita()
   jeśli czujnik-temperatury < 0 
      tymczasowa-temp = czujnik-temperatury * -1
   w przeciwnym razie
      tymczasowa-temp = czujnik-temperatury
   j =0
   powtarzaj dopoki tymczasowa-temp >= j
      tymczasowa-temp = j
      j = j + 1 	
   jeśli czujnik-temperatury < 0
      tymczasowa-temp = tymczasowa-temp * -1

Zadanie 6[edytuj]

Podłączenie modułów[edytuj]

Głośniczek jest modułem cyfrowym. Podłącz go pod pin oznaczony literką D (Digital) oraz z specjalnym znaczkiem ~. Dzięki temu będzie można sterować częstotliwością i wysokością dźwięku.

Opis[edytuj]

W poprzednio utworzonej pętli pokazującej jak zmienia się temperatura dodaj sygnał dźwiękowy. Użyj bloczka <WYGENERUJ DŹWIĘK>.

Zadanie 7[edytuj]

Opis[edytuj]

W zmiennej temperatura ustaw wartość wylosowanej temperatury a nie tej odczytanej z czujnika temperatury. Uruchom swój program.

Zadanie 8[edytuj]

Podłączenie modułów[edytuj]

Diody są modułami cyfrowymi. Podłącz je pod piny oznaczone literką D (Digital).

Opis[edytuj]

Swoje poprzednio utworzone warunki wzbogać o sygnał wizualny – diody. W pętli temperatura jest zwiększana/zmniejszana co 1s. W tym zadaniu chcemy aby zmiana temperatury nastąpiła także co 1s. Biorąc pod uwagę, że dioda ma mrugać, sekunda została podzielona na dwie 0,5s i umieszczona pomiędzy bloczkami zmieniającymi stan diody. Inne instrukcje pozostały bez zmian.

Pamiętaj aby nie tylko zapalić odpowiednią diodę, ale także wyłączyć te które aktualnie nie są potrzebne. Dodatkowo należy pamiętać aby przed kolejnym sprawdzeniem warunków wyłączyć zieloną diodę wskazującą, że jest ok.

Zadanie 9[edytuj]

Opis[edytuj]

Przykładem powtarzających się instrukcji są te zdefiniowane wewnątrz pętli służącej do zmiany temperatury. Zauważ, że różni je tylko tekst w pierwszym bloczku <WYPISZ NA WYŚWIETLACZU>. Dobrym pomysłem byłoby stworzenie zmiennej tekstowej która byłaby ustawiona w każdej pętli innym teksem, a następnie w funkcji zamiast tekstu w pierwszym bloczki <WYPISZ NA WYŚWIETLACZU> wypisz wartość tej zmiennej.

Inny przykład funkcji to „mruganie-diody”, która odpowiada za mruganie diody czerwonej lub zielonej. Uwaga! Aby wykorzystać funkcję do mrugania pinu diody przechowywanego w zmiennej należy użyć bloczka <DLA WYJŚCIA CYFROWEGO…PRZYPISZ STAN…>. Dodatkowo trzeba było utworzyć zmienną pin-dioda-do-mrugania w której przechowywany jest pin diody, która powinna aktualnie mrugać.