- wyjście aktywowanie jest po ustabilizowaniu się stanu wejścia na czas dłuższy niż 40 ms,
- wejścia zabezpieczone przed skutkami wyładowań ESD,
- komunikacja i odczyt stanu wejść poprzez interfejs I²C,
- moduł dopasowany do płytki Raspberry Pi Zero,
- zasilanie 3,3 V.
Moduł bazuje na układzie MAX6818, którego budowę wewnętrzną jednego z ośmiu kanałów pokazano na rysunku 1. Wejście zawiera elementy zabezpieczające, a dzięki zastosowanej logice wyjście aktywowanie jest po ustabilizowaniu się stanu wejścia na czas dłuższy niż 40 ms.
Budowa i działanie
Schemat minimodułu pokazano na rysunku 2. Dzięki zastosowaniu specjalizowanego układu aplikacja jest niewiarygodnie prosta i składa się z U1 typu MAX6818 oraz ekspandera GPIO magistrali I²C U2 typu MCP23008. Prostota okupiona jest niestety nieco wyższą ceną U1 w porównaniu do kilkunastu elementów niezbędnych dla realizacji dyskretnej np. na bramkach HC14.
Współpracujące elementy stykowe podłączone są do złącz SWxx zgodnych ze standardem Grove. Każde złącze umożliwia podłączenie pary styków. Element stykowy podłączony jest do wejść SWx i masy układu. Opcjonalnie płytka umożliwia wlutowanie złącza SW typu IDC10, na które wyprowadzono są wszystkie sygnały SW1...8 i zasilanie 3,3 V. Wyjście SWOx układu U1 aktywowanie jest po ustabilizowaniu się stanu wejścia SWx na czas dłuższy niż 40 ms.
Wolne od zakłóceń sygnały SWO1...8 podłączone są do ekspandera GPIO magistrali I²C. Dla uproszczenia obwodu drukowanego odwrócono podłączenia styków SW1...8 z układem U2. MCP23008 ma możliwość generowania przerwania po zmianie stanu wejścia, po wlutowaniu rezystora R5, przerwanie doprowadzone jest do GPIO4 Raspberry.
Moduł zasilany jest napięciem 3,3 V z Raspberry, pobór prądu nie przekracza kilku mA. Zwory adresowe A0, A1 umożliwiają ustawienie czterech adresów modułu (0x24...0x27). Dodatkowo wyprowadzono magistralę I²C (złącze I²C, 3,3 V).
Montaż i uruchomienie
Moduł zmontowany jest na miniaturowej płytce dwustronnej, której schemat został pokazany na rysunku 3. Moduł nie wymaga uruchamiania, po ustaleniu adresu zworami A0, A1, podłączeniu do Raspberry Pi oraz elementów stykowych jest gotowy do pracy.
Dla szybkiego sprawdzenia można zastosować pakiet i2c_tools. Domyślnie po resecie układ U2 skonfigurowany jest jako brama wejściowa, której stan wyprowadzeń można odczytać poleceniem:
Przy pomocy polecenia:
można zanegować logicznie stan wejść SW1...8. Szczegółowa konfiguracja opisana jest w nocie katalogowej MCP23008.
Przykładowy oscylogram pokazujący skuteczność układu został pokazany na rysunku 4, (2-IN, 1-OUT).
Jeżeli wszystko działa poprawnie, moduł można zastosować we własnych aplikacjach. Będzie przydatny w projektach automatyki domowej czy robotyce.
Adam Tatuś, EP
- R1, R2: 4,7 kΩ 5% (SMD0603)
- R3, R4: 10 kΩ 5% (SMD0603)
- R5: 100 Ω 5% (SMD0603)
- C1, C2, C3, C4, C5: 0,1 μF 16 V (SMD0603)
- U1: MAX6818EAP (SSOP20)
- U2: MCP23008SS (SSOP20)
- GPIO: złącze IDC40 żeńskie
- SW12, SW34, SW56, SW78, I²C: złącze Grove kątowe (110990037)
- SW: złącze IDC10 kątowe