!!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.
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.
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í!