Arduino MEGA2560 und LEONARDO

Das LCD-Shield und seine API ist für den Betrieb zusammen mit dem Arduino UNO ausgelegt. Dennoch ist die Verwendung mit anderen Modellen der Arduinofamilie wie beispielsweise dem MEGA oder dem LEONARDO wenn auch mit Einschränkungen möglich.
Franzis LCD am Arduino MEGA
Unterschiede in der Hardware
Der Hardwareaufbau des Arduino MEGA sowie des LEONARDO haben im Bezug auf die Verwendung des LCD-Shields einen entscheidenden Nachteil. Die SPI-Schnittstelle liegt bei beiden Systemen lediglich am 6-poligen ISP-Stecken an. Der Arduino UNO hingegen stellt diese zusätzlich an den Pins 11, 12 und 13 bereit. (Referenz)
Ein weiterer Unterschied betrifft die Verbindung der Displaytasten. Diese sind separat mit dem Arduino MEGA/LEONARDO verbunden und hängen nicht parallel zu den analogen Eingängen A4 und A5.
Das in der Anwendnung "Scope" bereitgestellte Testsignal über Timer2 kann auf dem Arduino LEONARDO nicht generiert werden und entfällt.
Lösung
Neben einer HardwareSPI-Verbindung zum 12864 LCD kann die SPI-Schnittstelle auch in Software abgebildet werden. Im Handbuch wird diese Methode mit dem Beispiel "Hardware Playground" vorgestellt. Der Datendurchsatz ist bei dieser Methode stark reduziert. Für die meisten Anwendungen ist das kein Problem und fällt auch nicht weiter auf. Die Anwendung "FlappyBird" ist damit jedoch nicht mehr spielbar.
Die Displaytasten sind bei den Systemen MEGA/LEONARDO über den I²C-Bus erreichbar. Der linke Button ist mit dem Pin SDA und der rechte mit dem Pin SCL verbunden.
Alternativer Download
Für die Nutzer der genannten Geräte habe ich einen alternativen Download erstellt. Alle Beispielanwendungen und die API sind für den Betrieb am Arduino MEGA2560/LEONARDO umgestellt. Eine zeitoptimierte Implementierung für FlappyBird ist in Arbeit.
Links und Referenzen: