[PROJEKT] Sterowanie urządzeniami dużych mocy – KA-NUCLEO oraz moduł z przekaźnikami

Gdy już wiemy jakie funkcje będą pełniły poszczególne piny można podłączyć moduł przekaźnika do KA-NUCLEO oraz do urządzeń, którymi będziemy sterować. Można zacząć od połączenia z płytką z mikrokontrolerem. Należy to zrobić zgodnie z poniższą tabelką:

Pin KA-NUCLEO Pin modułu z przekaźnikami
+5V DC+
GND DC-
D7 IN1
D8 IN2

Urządzenia, którymi będziemy sterować (przy założeniu że przekaźniki będą załączać urządzenie a nie je rozłączać) należy podłączyć w następujący sposób:

Pin modułu z przekaźnikami Pin urządzania do sterowania
COM1 Plus urządzenia 1
NC1 Plus zasilania 12V
COM2 Plus urządzenia 2
NC2 Plus zasilania 12V

Zmontowany układ prezentuje się następująco:

Rys 11. Moduł z przekaźnikami podłączony do KA-NUCLEO

 

Po zmontowaniu układu można przejść do napisania programu w środowisku AC6. Będzie działał on następująco – gdy przyciśniemy przycisk 1 zostanie załączony przekaźnik 1, natomiast gdy drugi raz przyciśniemy przycisk 1 przekaźnik 1 zostanie rozłączony. Analogicznie będzie odbywało się to w przypadku drugiego przycisku oraz drugiego przekaźnika (projekt dla programu AC 6 z kodem programu wykorzystanym w projekcie znajduje się w sekcji do pobrania na końcu tego artykułu).

Najpierw deklarujemy dwie zmienne stan_przycisk_1 oraz stan_przycisk_2  należy je umieścić w sekcji Private variables:

Następnie w sekcji Private function prototypes znajduje się funkcja do obsługi przerwań:

Jeżeli wystąpi przerwanie zewnętrzne, najpierw sprawdzane jest od którego pinu pochodzi: PA10 (PRZYCISK_1) czy PB3 (PRZYCISK_2). Następnie ustalana jest wartość zmiennej przypisanej do konkretnego przycisku. Dla przykładu jeżeli wystąpiło przerwanie od pinu PA10, sprawdzana jest wartość zmiennej stan_przycisku_1, i jej wartość zostaje zamieniona na przeciwną (jeżeli jej wartość wynosiła 1 to jest ustawiane 0, jeżeli było 0 jest ustawiane 1). Dla przycisku drugiego kod wygląda analogicznie.

Następnie można przejść do omówienia do pętli głównej programu. W sekcji /* USER CODE BEGIN 3 */ umieszczony jest kod, który sprawdzi zmienną stan_przycisku_1, następnie odczeka 50 ms (ma to przeciwdziałać drganiom styków przycisków i przypadkowym zmianom stanów). Po 50 milisekundach sprawdzany jest stan przycisku 1. Jeżeli jest on wciśnięty (stan niski) na wyjściu wyj_przekaznik_1 ustawiany jest stan niski. Dla drugiego przycisku kod wygląda podobnie z tą różnica, że sprawdzana jest zmienna stan_przycisku_2 oraz załączane jest wyjście wyj_przekaznik_2.

 

 

Działanie programu zostało przedstawione na poniższym materiale wideo:

Do pobrania

O autorze