Raspberry Pi: Använda 1 ryggsäckar $ I2C LCD för 1602 skärmar & knappar! (4 / 7 steg)
Steg 4: Använda ryggsäcken för 8 knappar + avbrott
Denna ryggsäck är också ganska lätt att hacka för att läsa knappar, vilket ger dig upp till 8 knappar per styrelsen (kan du göra 4 x 4-matris, men det är utanför omfånget för detta instructable, jag kan beskriva strategin i kommentarerna om du är intresserad).
Jag har hittat ryggsäck 's Schematisk av denna modul på internet, och det matchar min ombord. Jag har också mappas om IC stift och fordonsbaserad anslutningar på styrelsen bilden som du kan se.
Som ni kanske märker från schematiskt, kommas med endast 7 stift ut i yttre huvudet. Först och främst låt oss ansluta de tillgängliga. Alla knapparna måste vara ansluten till stift av expander som de är på den andra bilden, Använd bara stift 4-6 och 11-14. Glöm inte den knappen pullups, jag använder 1 K motstånd, men du kan använda större.
P3 pin, dock inte är ansluten till huvudet. Det driver en transistor som drog upp till VCC, så du behöver desolder både transistorn och resistorn dra stiftet upp.
Om din styrelse inte är samma som min (de kanske har annan version, Använd din DMM kontinuitet testa funktionen, hålla en pin på IC: s P3 stift och touch olika motstånd och transistorer i styrelsen. När det ringer, har du hittat en del som kan störa "input" funktion).
När du har tagit bort transistorn och motstånd, bifoga en tråd till någon av de ställen som P3 är ansluten till och ansluta denna tråd till knappen 8. Nu har du alla stift tillgängliga!
Enda problemet är att för att förstå om någon av knapparna har pressats eller inte, du behöver att upprepade gånger skicka kommandon till styrelsen, att få tillståndet för stift och jämföra dem med uppgifterna du har. Det är en CPU tidskrävande metod, vi kan göra bättre. Hur?
En annan användbar funktion att komma ur denna IC är avbryta funktion. Det är egentligen en GPIO PIN-kod kan du ansluta till din Raspberry Pi som ändrar tillstånd när någon av knapparna är pressade/släppt. Alltså kan du endast övervaka en GPIO stifts och inte översvämma I2C bussen med förfrågningar. Tack och lov, INT pin av IC är inte ansluten till något, så du kan bara löda en kabel till det. Då måste du ansluta det till en av Raspberry Pi GPIOs - jag valde GPIO4. En sak att komma ihåg är att denna INT pin behöver en pullup - så la jag en 1 K motstånd.
En gång ansluta ryggsäck till din Raspberry Pi:
- GND--GND
- VCC--3.3V
- SDA--SDA
- SCL--SCL
Järnvaror del är klar, låt oss se koden!