Převodník USB klávesnice na I2C

!!POZOR CELÉ ZAPOJENÍ VYŽADUJE LOGICKÉ ÚROVNĚ 3,3V!!!

Pro plánovaný projekt jsem potřeboval sehnat klasickou qwertz klávesnici. Po dlouhém vymýšlení a přemýšlení padla volba na klasickou kompaktní USB klávesnici.
Tím jsem se ale dostal k problému, jak připojit USB klávesnici k Arduinu. Nakonec jsem postavil tento převodník který zpracuje data z USB klávesnice a odešle je po I2C sběrnici do nadřazeného systému.

převodník USB to I2C
modul převodníku

Jak je vidět na obrázku, modul se připojuje pomocí 5 kontaktů - +5V, +3.3V, GND, SCL a SDA.

Vlastní modul sestává z Mini USB Host Shield 2.0 ADK a Arduina pro mini - !3,3V! . Na USB vstupu je ještě zapojený spínací tranzistor, kterým se vypíná napájení USB - Bez toho se mi nepodařilo klávesnici zprovoznit. Tímto způsobem se po inicializaci modulu připojená klavesnice odpojí na 5s a poté zas připojí. Pak už funguje jak má.
USB shield je připojený přes SPI rozhraní, dále napájení +5 a +3.3V, RST je přímo na RST Arduina a INT na PIN 9. Dále je NUTNÉ přerušit cestu napájení k USB konektoru, jak je naznačeno na fotce!
Odpojovací tranzistor je připojený přes vhodný rezistor na pin 4.

Mini USB Host Shield 2.0 ADK
Mini USB Host Shield 2.0 ADK

Program komunikuje s klávesnicí a odesílá po I2C ASCII znaky stisknutých kláves, pokud jde o klávesy bez ASCII znaku pak vypíše HEX kód (dle převodní tabulky v programu). Klávesa Shift funguje jak má a sama nic neodesílá, stejně jako Caps Lock.

Program pro Arduino je ke stažení ZDE

Testovácí program pro Arduino, který čte data po I2C a odesílá je na sériový port, je ke stažení ZDE Opět je nutné použít 3,3V Arduino nebo převodník log. úrovní!

HOME