Ze względu na to, że sterowanie przekaźnikiem nie jest trudne to przedstawię jeszcze jeden sposobów zastosowania.
3.Drugi program: Przykład zastosowania przekaźnika
W tym przykładzie zrobimy „mini-automatykę” tzn. wykorzystamy czujnik temperatury DS18B20 i zasada działania programu będzie następująca: Jeżeli temperatura przekroczy 30 stopni Celsjusza to włączymy nawiew, aby schłodzić obiekt, jeżeli temperatura jest mniejsza niż 30 to włączymy grzanie.
Ze względu na to, że na efekt z działania grzałki musielibyśmy czekać to zamiast grzałki zastosujemy zwykłą żarówkę.
Program:
|
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 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#include <OneWire.h> //dodaj biblitekę OneWire.h #include <DallasTemperature.h> //dodaj biblitekę DallasTemperature.h int przekaznik1 = 10; //przekaznikk1 podłączamy do pinu 10 int przekaznik2 = 11; //przekaznikk2 podłączamy do pinu 11 int one_wire = 2; //Transmisja 1-Wire na pinie 10 OneWire oneWire(one_wire); //wywołujemy transmisję 1-Wire na pinie 10 DallasTemperature sensors(&oneWire); //informujemy Arduino, ze przy pomocy 1-Wire void setup(void) { sensors.begin(); //rozpocznij odczyt z czujnika pinMode(przekaznik1, OUTPUT); //przekaznik1 jako wyjście pinMode(przekaznik2, OUTPUT); //przekaznik2 jako wyjście digitalWrite(przekaznik1, HIGH); //stan początkowy przekaznika1 wysoki digitalWrite(przekaznik2, HIGH); //stan początkowy przekaznika2 wysoki } void loop(void) { sensors.requestTemperatures(); //zażądaj odczytu temperatury z czujnika if(sensors.getTempCByIndex(0) >= 30) //jezeli temperatura jest większa bądź równa 30 stopni Celsjusza { digitalWrite(przekaznik1, LOW); //włącz przekaźnik1 - wiatrak digitalWrite(przekaznik2, HIGH); //wyłącz przekaźnik2- grzałkę } else if (sensors.getTempCByIndex(0) < 30) //jeżeli temperatura jest mniejsza od 30 stopni Celsujsza { digitalWrite(przekaznik1, HIGH); //wyłącz przekaźnik1- wiatrak digitalWrite(przekaznik2, LOW); //włącz przekaźnik2 - grzanie } } |
Pętla główna programu. Wywołujemy odczyt danych z czujnika. Jeżeli temperatura jest większa bądź równa 30 stopni Celsjusza to wyłącz grzanie, włącz chłodzenie. Jeżeli temperatura jest mniejsza od 30 stopni Celsjusza to włącz grzanie, wyłącz chłodzenie. W tym przypadku moglibyśmy spróbować zaimplementować funkcję if…else, ale ona by nam nie zadziała z prostej przyczyny- chcemy sterować więcej niż jedną zmienną pod funkcją if. Jeżeli byśmy mieli pod if jedną funkcję to by działało. W takim przypadku musimy utworzyć dwie funkcje warunkowe, które nie będą przeszkadzać sobie nawzajem. Przykładem tego jest else if.
Oczywiście przykładów wykorzystania przekaźników można pokazać bardzo dużo, ale po tej części kursu będziesz wiedzieć jak zaimplementować we własnym programie obsługę przekaźnika- co jest najważniejsze i nie ma większego sensu na tworzenie więcej przykładów zastosowania przekaźnika ;)
Słowem zakończenia:
Jak widać, dotychczasowe moduły są proste w użytkowaniu, lecz celem naszych kursów, nie jest tylko obsługa danego modułu lecz również nauka języka. Dlatego będę chciał teraz wprowadzać różne urozmaicenia w programach. Oprócz obsługi danego modułu w najprostszymi funkcjami, będziemy starać się pokazywać jeszcze alternatywne funkcję, którymi można osiągnąć ten sam efekt.
Materiały do tej części kursu:
![]()
Jeżeli chcesz być informowany na bieżąco o nowych częściach kursu to kliknij „Lubię to!” bądź subskrybuj naszą stronę, aby otrzymywać na adres e-mail nowości ze strony. Jeżeli masz jakieś pytania to śmiało zadawaj je na forum ; )
