!!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í:
Testovací program pro Arduino, který čte data po I2C a odesílá je na sériový port, je ke stažení: