- zastosowano dwa przekaźniki bistabilne typu RSM850B,
- wyjście zawiera dwa zestawy styków NC/NO dopuszczające obciążenie 30 VDC/2 A,
- wyprowadzona magistrala I2C,
- dodatkowe dwa wejścia cyfrowe.
Za sterowanie napięciami cewek przekaźników odpowiada użyty w nieco nietypowej roli podwójny driver silników prądu stałego układ typu A3901. Jego struktura wewnętrzna została pokazana na rysunku 1.
Układ zawiera wszystkie niezbędne elementy do sterowania dwoma uzwojeniami: dwa mostki MOSFET z niskim RDSon, logikę sterującą i zabezpieczającą mostki oraz wbudowany układ zabezpieczeń termicznych. Układ A3901 został wybrany ze względu na niską cenę oraz dobrą dostępność. Takie podejście upraszcza aplikację w porównaniu z realizacją dyskretną. Sterowanie kierunkiem obrotów, czyli kierunkiem przepływu prądu przez cewkę przekaźnika, odbywa się w konwencji L/R z wejść IN1/IN2 zgodnie z tabelą 1.
Budowa i działanie
Schemat modułu został pokazany na rysunku 2. Jako elementy wykonawcze zastosowano przekaźniki bistabilne RL1 i RL2 typu RSM850B, dopuszczające obciążenie 30 VDC/2 A. Sterowanie położeniem styków odbywa się poprzez zmianę polaryzacji impulsu sterującego cewką.
Układ drivera U4 zasilany jest napięciem 5 V ze złącza GPIO Raspberry. Kondensatory CE1 i C4 odsprzęgają zasilanie. Multiplekser U2 typu HC157 zapewnia przełączenie wejść U4 w stan kasujący przekaźniki podczas zaniku zasilania modułu, sygnalizowanego przez układ U2. Układ U1 ekspandera GPIO magistrali I2C typu PCA8574 służy do sterowania i monitorowania stanu przekaźników. Ustawienie stanów wysokich na liniach RST1, RST2 i niskich na SET1, SET2 kasuje przekaźniki – rozwarcie wyprowadzeń CM/NO. Ustawienie stanów niskich na liniach RST1, RST2 i wysokich na SET1, SET2 ustawia przekaźniki – zwarcie wyprowadzeń CM/NO.
Generowanie impulsów sterujących odbywa się na drodze programowej. Sygnały ACK1, ACK2 służą do monitorowania położenia styków RL1, RL2. Zworami RM1, RM2 można wybrać ich polaryzację. Dwa wolne wyprowadzenia GPIO U1 z sygnałami PB1, PB2 udostępniono na złączu IO. Linie PB1, PB2 mogą służyć do podłączenia przycisków ręcznego sterowania przekaźnikami lub dowolnych sygnałów cyfrowych.
Na złącze I2C wyprowadzono magistralę I2C Raspberry Pi. Wyprowadzenia I2C/IO są powielone na I2CA/IOA, aby można na płytce zastosować, w zależności od preferencji, złącza JST PH4 o rozstawie 2 mm lub złącza zgodne ze standardem Grove. Moduł umożliwia ustawienie zworą A2 dwóch adresów bazowych 0x23 lub 0x27.
Montaż i uruchomienie
Układ zmontowany jest na niewielkiej dwustronnej płytce drukowanej, której schemat został pokazany na rysunku 3. Montaż nie wymaga opisu, należy tylko poprawnie przylutować pad termiczny układu U4.
Dla sprawdzenia działania modułu można uruchomić prosty skrypt testowy bi.sh, którego zawartość pokazuje listing 1.
#!/bin/bash
echo ‘PI Zero Bistable Example’
i2cset -y 1 0x27 0xFF
sleep 1
echo ‘OUT1 ON’
i2cset -y 1 0x27 0xF7
sleep 0.1
i2cset -y 1 0x27 0xFF
sleep 3
echo ‘OUT1 OFF’
i2cset -y 1 0x27 0xFB
sleep 0.1
i2cset -y 1 0x27 0xFF
sleep 1
echo ‘OUT2 ON’
i2cset -y 1 0x27 0x7F
sleep 0.1
i2cset -y 1 0x27 0xFF
sleep 3
echo ‘OUT2 OFF’
i2cset -y 1 0x27 0xBF
sleep 0.1
i2cset -y 1 0x27 0xFF
sleep 1
echo ‘Quit’
Moduł można zastosować także z innymi płytkami uruchomieniowymi, w tym celu nie lutujemy złącza GPIO, a zwieramy jego piny 1–2 (V33 z V50). Moduł będzie zasilany i sterowany w tym przypadku przez złącze I2C napięciem 3,3...5 V, co umożliwia współpracę z magistralą I2C Arduino, MSP i STM. Należy pamiętać, że na czas przełączenia styków należy zapewnić odpowiednią wydajność prądową zasilania.
Adam Tatuś, EP
- R1, R2: 4,7 kΩ1% (SMD0603)
- R3, R4, R5, R6: 100 kΩ 1% (SMD0603)
- C1, C2, C3: 0,1 μF (SMD0603)
- CE1: 47 μFT/10 V tantalowy (SMD3528)
- C4: 4,7 μF/10 V (SMD0603)
- U1: PCA8574PW (TSSOP16)
- U2: 74HC157PW (TSSOP16)
- U3: ADM1815-5ART (SOT-23)
- U4: A3901SEJTR-T (DFN10)
- GPIO: złącze IDC40
- OUT1, OUT2: złącze DG381-3,5-3
- RL1, RL2: przekaźnik bistabilny jednocewkowy 3 V RSM850B-3V