Kurs Arduino #11: Obsługa przekaźników

KURS11YTW świecie elektroniki mamy do czynienia nie tylko z urządzeniami nisko napięciowymi. Często zdarza się tak, że musimy sterować skomplikowanym urządzeniem, które jest zasilanie wysokim napięciem np. 230V. Niestety mikrokontroler nie jest w stanie wydać takiej energii ze swoich pinów, ponieważ jest zasilany napięciem 5V co jest maksymalnym napięciem na pinach. Dlatego używamy przekaźników. W dzisiejszej części poradnika przedstawię w jaki sposób sterować przekaźnikiem. Zapraszamy

 

 

 

 

Spis treści:
1.Co to jest przekaźnik. Zasada działania
2.Pierwszy program: Włączanie przekaźników
3.Drugi program: Przykład zastosowania przekaźnika #1

Co będziemy potrzebować:

  • 1x Arduino
  • 1x moduł 2-przekaźnikowy (ewentualnie dwa przekaźniki
  • 1x zestaw przewodów połączeniowych
  • 1x czujnik DS18B20

1.Co to jest przekaźnik. Zasada działania.

Przekaźnik jest to urządzenie elektryczne, przy pomocy którego możemy sterować urządzeniem bądź urządzeniami o wysokim napięciu. Jest to pewnego rodzaju „przełącznik”, gdzie wysyłający sygnały o niskim napięciu ( 5-12V ) sterujemy stanem załączenia obwodu o wysokim napięciu. Na potrzeby dzisiejszego poradnika omówimy sobie sposób działania przekaźnika elektromagnetycznego.
Przekaźnik elektromagnetyczny- jak sama nazwa wskazuje- działa na zasadzie elektromagnesu. Przedstawię na bazie poniższego obrazka:
budowaprzekznika

Do zacisków zasilających cewkę, podłączamy napięcie (przeważnie jest ono podane na obudowie przekaźnika – 12V albo 24V). W ten sposób uruchamiamy elektromagnes, który przyciąga do siebie kotwicę. Kotwica natomiast odchyla ruchomy styk, przez co nasz układ podłączony do złącz przekaźnika jest uruchamiany. I to jest cała tajemnica dziania przekaźnika elektromagnetycznego. Złącza przekaźnika zrobione są z grubszego metalu, aby mogły przez siebie dostarczyć większą moc.
W dzisiejszym poradniku wykorzystam gotowy moduł przekaźnikowy. Jest on nie drogi bo kosztuje jakieś 7zł, a zapewnia nam optyczną izolację od strony mikrokontrolera, przez co w razie uszkodzenia przekaźnika, napięcie sterowane przez przekaźnik nie dostanie się do mikrokontrolera i go nie uszkodzi. Cena 7zł nie jest wygórowana w stosunku do bezpieczeństwa jakie zapewnia nam taki moduł.

Zatem zacznijmy programować ;)

2.Pierwszy program: Włączanie przekaźników

Przekaźniki te co zakupiłem wyzwalane są stanem niskim. Zatem stan wysoki (1) to wyłączony przekaźnik, a stan niski (0) to włączony przekaźnik. Zatem można powiedzieć, że sterowanie przekaźnikiem odbywa się jak sterowanie diodą, gdzie katoda podłączona jest Arduino, a anoda przez rezystor do +5V
kurs11.1_bb

 

Program:

Jesteśmy już na 11. kursie Arduino, także mogę stwierdzić, że tłumaczenie podstaw typu podłączanie peryferii do pinów oraz ustawianie ich jako I/O to możemy sobie już odpuścić. Będziemy tłumaczyć tylko przy trudniejszych programach.
Tworzymy dwie zmienne boolowskie sp1 odpowiadającą za stan przekaźnika 1. i sp2, za stan przekaźnika 2. Ich wstępne wartości ustawiamy na true czyli na 1 (dlatego że przekaźniki wyzwalane są 0 czyli false, a nie 1 true).
Wcześniej wspomniałem, że nie musimy wykorzystywać rezystorów podciągających przyciski do 5V, a teraz wytłumaczę dlaczego. Rezystory podciągające dajemy po to, aby drgania styków przycisków, przypadkowo nie wpływały na działanie naszego programu- żeby się nie „wciskały”. Dlatego możemy wyróżnić podciągnięcie sprzętowe, przez rezystor 10k ohm, albo podciągnięcie programowe. Podciągnięcie programowe wstawiamy przy pomocy INPUT_PULLUP, na przykładzie naszego programu:

Zamiast samego INPUT wpisujemy INPUT_PULLUP  przez co funkcja programowego podciągnięcia zostaje uruchomiona. Przykład ten daję jako ciekawostkę, jako jedną z funkcji Arduino IDE, ale nie zalecam jej używać. Nie zalecam dlatego, ponieważ przy wykorzystaniu zasilania sieciowego przyciski stają się bardzo czułe, przez co samo dotknięcie przycisku wywołuje rozpoznanie go jako wciśniętego. Problemu takiego nie ma, jeżeli zasilamy Arduino np. z baterii.
Następnie ustawiamy stan początkowy przekaźników na 1 logiczne, aby przy uruchomieniu Arduino, zakłócenia nie spowodowały uruchomienia przekaźników. W pętli głównej programu wstawiamy dwa warunki, dla przycisku 1 i 2. Jeżeli przycisk1 zostanie wciśnięty to zaneguj stan zmiennej sp1, a następnie ten stan ustaw na przekaźniku 1. Ta sama pętla dzieje się dla przycisku2.

Efekt naszego programu: