- dwa bistabilne wyjścia przekaźnikowe typu NO o obciążalności do 30 V (DC)/8 A,
- zasilanie cewek: 3,3 V,
- kompatybilność z Raspberry Pi Pico,
- wbudowane sprzężenie zwrotne do programowego monitorowania stanu wyjść przekaźników z poziomu Raspberry Pi Pico.
Schemat modułu zaprezentowano na rysunku 1. W roli elementów wykonawczych pracują przekaźniki bistabilne RL1,2 typu G6CU-2114P-US o dopuszczalnym obciążeniu do 30 VDC/8 A. Wybór przekaźników o znamionowym napięciu cewki równym 3 V umożliwia zasilanie ich z szyny 3,3 V dostępnej na płytce Raspberry Pi Pico, co zapewnia zgodność z nakładkami przeznaczonymi do podtrzymania zasilania (UPS).
Za kluczowanie napięcia cewek odpowiadają – użyte w nieco nietypowej roli – drivery silników prądu stałego U1,2 typu DRV8210. Strukturę wewnętrzną DRV8210 pokazano na rysunku 2.
Układ zawiera wszystkie elementy niezbędne do sterowania uzwojeniem: mostek MOSFET o niskiej wartości RDS(on), logikę sterującą i zabezpieczającą, wbudowany kompleksowy układ zabezpieczeń oraz generator napięć polaryzacji. DRV8210 został wybrany ze względu na niską cenę, łatwą dostępność oraz znaczące uproszczenie aplikacji w porównaniu z realizacją dyskretną. Sterowanie jednocewkowymi przekaźnikami bistabilnymi G6CU-2114P-US polega na impulsowej zmianie kierunku przepływu prądu przez cewkę. Generowanie impulsów sterujących cewkami odbywa się na drodze programowej. Podanie impulsu na linie O1,O3 ustawia odpowiedni przekaźnik (zwiera styk NO), a zasilenie wejść O2,O4 kasuje odpowiedni przekaźnik (rozwiera styk NO).
Logikę wejść sterujących IN1/IN2 układu DRV8210 opisano w tabeli 1.
Układy driverów U1,2 zasilane są napięciem 3,3 V ze złącza GPIO modułu RPi Pico. Kondensatory C1,2 i CE1 odsprzęgają zasilanie. Przekaźniki G6CU-2114P-US mają dwa niezależne styki NO/NC, przy czym styk NO używany jest do sterowania obciążeniem podłączonym do złącza OUT12, zaś styk NC – do monitorowania stanu przekaźnika. Sygnały FRL1,2 doprowadzono do GPIO21,18 RPi Pico.
Układ zmontowany jest na niewielkiej dwustronnej płytce drukowanej, której rozmieszczenie elementów pokazano na rysunkach 3a i 3b.
Montaż nie wymaga opisu. Gotową płytkę zaprezentowano na fotografii tytułowej.
import time
from time import sleep
O1 = Pin(20, Pin.OUT)
O2 = Pin(19, Pin.OUT)
FRL1 = Pin(21, Pin.IN)
O3 = Pin(16, Pin.OUT)
O4 = Pin(17, Pin.OUT)
FRL2 = Pin(18, Pin.IN)
O1.value(0)
O2.value(0)
O3.value(0)
O4.value(0)
flts=0
O1.value(0) # RL1 OFF 0/1
O2.value(1)
sleep(0.1)
O2.value(0)
flts=FRL1.value()
print(‘RL1 = OFF, FRL1 = ‘,flts)
sleep(1)
O1.value(1) # RL1 ON 1/0
O2.value(0)
sleep(0.1)
O1.value(0)
flts=FRL1.value()
print(‘RL1 = ON, FRL1 = ‘,flts)
sleep(1)
O3.value(0) # RL2 OFF 0/1
O4.value(1)
sleep(0.1)
O4.value(0)
flts=FRL2.value()
print(‘RL2 = OFF, FRL2 = ‘,flts)
sleep(1)
O3.value(1) # RL2 ON 1/0
O4.value(0)
sleep(0.1)
O4.value(0)
flts=FRL2.value()
print(‘RL2 = ON, FRL2 = ‘,flts)
sleep(1)
O1.value(0) # RL1 OFF 0/1
O3.value(0) # RL2 OFF 0/1
O2.value(1)
O4.value(1)
sleep(0.1)
O2.value(0)
O4.value(0)
print(‘RL1,2 = OFF’)
Listing 1. Skrypt testowy 2BiRelay.py
W celu sprawdzenia działania modułu można uruchomić prosty skrypt testowy 2BiRelay.py, którego zawartość pokazuje listing 1.
Adam Tatuś, EP
- R1, R2: 33 kΩ (SMD 0603, 5%)
- R3, R4: 330 Ω (SMD 0603, 5%)
- C1, C2: 0,1 μF/10 V (SMD 0603, X7R)
- CE1: 47 μF/10 V (SMD 3528, tantalowy)
- U1, U2: DRV8210DRL (SOT-563)
- IO1, IO2: gniazdo SIP20 żeńskie
- OUT12: złącze śrubowe DG 3,5 mm 4 pin (DG381-3.5-4)
- RL1, RL2: przekaźnik bistabilny 3 V (G6CU-2114P-US)