Tastierino analogico
FunduinoUltimo aggiornamento il
Fünf Taster über einen einzigen analogen Eingang auslesen
Das analoge Keyboard-Modul
Anschluss und analoge Werte
Der Sketch
Tastendruck erkennen und im Seriellen Monitor ausgeben
int Taster;
int Analogwert = 0;
#define Taster1 1
#define Taster2 2
#define Taster3 3
#define Taster4 4
#define Taster5 5
#define KeinTaster 0
//Ab hier wird ein neuer Programmblock mit dem Namen "Tasterstatus" erstellt. Hier wird ausschließlich geprüft, welcher Taster gedrückt ist.
int Tasterabfrage()
{
Analogwert = analogRead(A0); // Auslesen des Tastermoduls am Analogen Pin A0.
Serial.println(Analogwert); //Diese Zeile sorgt dafür, dass der ausgelesene Analogwert im seriellen Monitor angezeigt wird. Das kann sinnvoll sein, wenn das Tastenmodul mit einer anderen Spannung als 5V versorgt wird, da sich daraus andere analoge Messwerte ergeben würden. Ansonsten kann diese Zeile weggelassen werden.
if (Analogwert > 1000) return KeinTaster; // Solange kein Taster gedrückt wurde, liegt der analoge Wert liegt bei 1023
if (Analogwert < 15) return Taster1; //Der analoge Wert für Taster1 beträgt ca. 0
if (Analogwert < 50) return Taster2; //Der analoge Wert für Taster2 beträgt ca. 30
if (Analogwert < 120) return Taster3; //Der analoge Wert für Taster3 beträgt ca. 85
if (Analogwert < 300) return Taster4; //Der analoge Wert für Taster4 beträgt ca. 163
if (Analogwert < 400) return Taster5; //Der analoge Wert für Taster5 beträgt ca. 348
return KeinTaster; // Ausgabe wenn kein Taster gedrückt wurde.
}
// Hier wird der Programmblock "Tasterstatus" abeschlossen.
void setup()
{
Serial.begin(9600); //Die Kommunikation mit dem seriellen Port wird gestartet. Das benötigt man, um sich den ausgelesenen Wert im serial monitor anzeigen zu lassen.
}
void loop()
{
Taster=Tasterabfrage(); //Hier springt der Loop in den oben angegebenen Programmabschnitt "Tasterstatus" und liest dort den gedrückten Taster aus.
if (Taster==0) Serial.println("Es wurde kein Taster gedrueckt"); // Diese Zeile kann weggelassen werden, wenn nur bei einem Tastendruck eine Ausgabe auf dem seriellen Monitor erscheinen soll.
if (Taster==1) Serial.println("Es wurde Taster 1 gedrueckt");
if (Taster==2) Serial.println("Es wurde Taster 2 gedrueckt");
if (Taster==3) Serial.println("Es wurde Taster 3 gedrueckt");
if (Taster==4) Serial.println("Es wurde Taster 4 gedrueckt");
if (Taster==5) Serial.println("Es wurde Taster 5 gedrueckt");
} //Loop beendenValuta le istruzioni