I2C Tastatur PIC18F4550 Mikrocontroller

I2C Tastatur

Diese instructable wird erläutert, wie mit einer 4 × 4-Tastatur über einen I2C-Bus koppeln.

Ich begann dieses Projekt, weil ich einige Plug & Play-Ein- und Ausgangsmodule für die einfachen und schnellen Prototyping meiner Elektronik-Projekte (meist mit PIC-Mikrocontroller) gesucht. Natürlich können Sie LEDs und Dip-Schalter verwenden, aber sie erfordern viele Stifte auf dem Mikrocontroller und Sie nur binäre I / O haben.

I2C Tastatur PIC18F4550 Mikrocontroller

In einer nächsten Iteration des Projektes werde ich die Komponenten PCB bewegen.

Komponenten

-1x PCF8574 I2C-Chip (remote 8-Bit-I / O-Expander für die I2C-Bus)
-1x 4 × 4 Keypad
-2x 2,2 kOhm Pull-up-Widerstände
-1x PIC18F4550 (oder ein anderes programmierbaren I2C-Master-Gerät)

Optionale Komponenten (abhängig vom Ausgang):

-1x PCF8574 I2C-Chip
-1x 7-Segment-Anzeige
-7x 330 Ohm-Widerstand
-1x seriell auf USB-Dongle

I2C Tastatur PIC18F4550 Mikrocontroller

Weil der I2C-Bus verwendet nur 4 Leitungen (Leistung, Masse, Takt und Daten) ist die Schaltung sehr simple.The Mikrocontroller (MCU) und der I2C-Chip sind beide mit dem 5 V von der Stromquelle. In meinem Fall ist die Schaltung von meinem MCU Programmierer betrieben, die es Strom aus dem USB-Anschluss meines Computers wird.

Der 8 I / O-Pins des I2C-Chips ist mit den Stiften 8 der Tastatur verbunden ist. Es ist einfacher für das Schreiben des Codes, wenn wir die Verbindungen in einer logischen Reihenfolge zu machen. I verbunden, um die Spaltenstifte auf einer Seite des Chips und die Zeilenstifte auf der anderen Seite des Chips.

Daten (SDA) und Takt (SCL) von dem I2C-Chip an dem Daten- und Taktstift der MCU verbunden ist.

Beiden SCL und SDA Linien sind „open drain“ Treiber. Das bedeutet, dass der Chip seinen Ausgang niedrig fahren kann, aber es kann es nicht hoch fahren. Für die Leitung der Lage sein, hoch zu gehen, müssen Sie Pull-up-Widerstände an die 5V-Versorgung zur Verfügung stellen. Es sollte ein 2,2 kOhm Widerstand von der SCL-Leitung auf die 5 V und eine andere Linie von der SDA-Leitung an die 5v Linie sein. Sie benötigen nur einen Satz von Pull-up-Widerstände für den gesamten I2C-Bus.

3 Bits der 8-Bit-Adresse des Gerätes werden durch Verbinden des Adreßpins bis 5 V oder auf Masse gelegt.

Der serielle Ausgang (UART / RS232) geht an meinen Seriell-zu-USB-Dongle, der an meinem PC angeschlossen ist.

Der zweite PCF8574 Chip ist mit dem I2C-Bus verbunden, indem die Daten- und Taktleitung zur Daten- und Taktleitung von dem ersten Chip zu verbinden.

Für den zweiten Chip benötigen wir eine andere Adresse, damit ich die erste Adresse Stift auf 5V anstelle der Erde verbunden.

Die gemeinsame Anode der 7-Segment-Anzeige ist mit dem 5 V von der Stromquelle verbunden ist. Die anderen Stifte werden mit dem I / O-Pins des I2C-Chips (unter Verwendung von 330 Ohm Strombegrenzungswiderständen) verbunden ist.

Schritt 3: Code

Der Code implementiert die Standardtastatur Abtastroutine durch Lesen und an den I2C-Chip zu schreiben. Das Tastenfeld wird durch die Auswahl einer Spalte gescannt und dann die Zeilen zu lesen, um zu sehen weicht eine der Tasten gedrückt wird.

In Verbindung stehende Artikel