Stap 4: Gebruik de rugzak voor 8 knoppen + interrupts
Deze rugzak is ook vrij eenvoudig te kappen voor het lezen van knoppen, waardoor u maximaal 8 knoppen per plaat (kan je 4 x 4 matrix, maar dat is buiten het bereik van dit instructable, ik kan het overzicht van de aanpak in de commentaren als u geïnteresseerd bent).
Ik heb gevonden rugzak's schematische van deze module op het internet, en het komt overeen met mijn board. Ik heb ook in kaart gebracht de IC pinnen en on-board verbindingen op de afbeelding van de Raad van bestuur voor u om te zien.
Zoals u uit het schema wellicht, zijn slechts 7 pinnen haalde op de externe kop. Allereerst laten we verbinden die beschikbaar. Alles wat de knoppen hoeft te worden aangesloten op pinnen van expander zoals ze op de tweede foto zijn, gewoon gebruik maken van pin 4-6 en 11-14. Vergeet niet de knop pullups, ik gebruik weerstanden van 1 K, maar u kunt grotere schijven gebruiken.
P3 de pin, echter, is niet aangesloten op de kop. Het het besturen van een transistor, evenals trok aan de VCC, dus je desolder zowel de transistor en de weerstand die de pin moet omhoog te trekken.
Als je board niet hetzelfde als de mijne is (ze zou kunnen hebben verschillende versie, gebruik van uw DMM continuïteit testen functie, houden een pin op de IC's P3 pin en touch verschillende weerstanden en transistors op het bord. Wanneer het ringen, hebt u gevonden een deel die met de "input" functie interfereren kan).
Zodra u hebt verwijderd de transistor en weerstand, hecht een draad aan een van de plekken die P3 is aangesloten op en sluit deze draad aan op de 8e knop. Nu heb je alle pinnen beschikbaar!
Enige probleem is dat om te begrijpen of een van de knoppen zijn ingedrukt of niet, u moet herhaaldelijk om opdrachten te verzenden aan boord, krijgen van de staat van pins en vergelijkt deze met de gegevens hebt. Dat is een CPU-intensieve benadering, wij annuleerteken verrichten wedder. Hoe?
Een andere handige functie om uit deze IC is interrupt functie. Kortom, dat is een GPIO pin die u kunt aansluiten op je Raspberry Pi dat staat verandert zodra een van de knoppen ingedrukt/uitgebracht zijn. Zo kunt u alleen controleren één GPIO pin en niet overspoelen de I2C-bus met aanvragen. Gelukkig, de INT-pin van de IC is niet verbonden met om het even wat, zodat u kunt gewoon een draad aan het soldeer. Dan moet u deze aansluiten op een van de Raspberry Pi GPIOs - ik koos GPIO4. Één meer ding niet te vergeten is dat dit INT pin moet een pullup - dus ik toegevoegd een 1 K weerstand.
Opnieuw verbinden met de rugzak je Raspberry Pi:
- GND--GND
- VCC--3,3 v
- SDA--SDA
- SCL--SCL
Hardware gedeelte is voltooid, zie de code!