Auch das Auslesen der Zustände der fünf Taster auf dem Display Shield erfolgt über das Objekt aus der Adafruit-LCD-Shield-Library.
Programmierbeispiel
In diesem Beispiel wird der Zustand der Taster vom Display Shield ausgelesen und anschließend am Display angezeigt.
#include <Adafruit_RGBLCDShield.h>
#include <Adafruit_MotorShield.h>
Adafruit_RGBLCDShield LcdShield = Adafruit_RGBLCDShield();
void setup()
{
LcdShield.begin(16, 2);
}
void loop()
{
uint8_t Taster = LcdShield.readButtons();
if (Taster)
{
LcdShield.clear();
LcdShield.setCursor(0,0);
if (Taster & BUTTON_UP)
{
LcdShield.print("UP ");
}
if (Taster & BUTTON_DOWN)
{
LcdShield.print("DOWN ");
}
if (Taster & BUTTON_LEFT)
{
LcdShield.print("LEFT ");
}
if (Taster & BUTTON_RIGHT)
{
LcdShield.print("RIGHT ");
}
if (Taster & BUTTON_SELECT)
{
LcdShield.print("SELECT ");
}
}
}
Erklärungen zu diesem Programmierbeispiel
1: #include <Adafruit_MotorShield.h>
2: #include <Adafruit_RGBLCDShield.h>
Einbinden der benötigten Header-Dateien.
4: Adafruit_RGBLCDShield LcdShield = Adafruit_RGBLCDShield();
Hier wird das Objekt LcdShield vom Typ Adafruit_RGBLCDShield erzeugt.
8: LcdShield.begin(16, 2);
Initialisieren des Objekts LcdShield.
13: uint8_t Taster = LcdShield.readButtons();
Mit der Funktion readButtons() wird der Zustand aller fünf Taster ermittelt und dieser Wert in der Variable Taster abgelegt.
19: if (Taster & BUTTON_UP) { … }
In dieser Bedingung wird überprüft, ob der obere der fünf Taster gedrückt ist.