1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | #include “Adafruit_Keypad.h” int LAUTSPRECHER = 13; // Größe des Tastenfeldes // 3 Spalten const byte SPALTEN = 3; // 4 Zeilen const byte REIHEN = 4; // die Ziffern/Zeichen: // Array 3 x 4 char Tasten[REIHEN][SPALTEN] = { { ‘#’, ‘0’, ‘*’ }, { ‘9’, ‘8’, ‘7’ }, { ‘6’, ‘5’, ‘4’ }, { ‘3’, ‘2’, ‘1’ } }; // die Pins für die 3 Spalten byte SpaltenPins[SPALTEN] = { 3, 4, 5 }; // die Pins für die 4 Zeilen byte ReihenPins[REIHEN] = { 6, 7, 8, 9 }; // TastenFeld ⇒ Name des Keypads // -> Zuordnung der Pins zu den REIHEN und SPALTEN des Arrays Adafruit_Keypad Tastenfeld = Adafruit_Keypad(makeKeymap(Tasten), ReihenPins, SpaltenPins, REIHEN, SPALTEN); /* C‑Dur Tonleiter Frequenzen c’ -> 264 d’ -> 297 e’ -> 330 f’ -> 352 g’ -> 396 a’ -> 440 h’ -> 495 c” -> 528 */ void setup() { // Tastenfeld starten Tastenfeld.begin(); pinMode(LAUTSPRECHER, OUTPUT); Serial.begin(9600); // auf serielle Verbindung warten while (!Serial) { ; } } void loop() { // gedrückte Taste lesen Tastenfeld.tick(); while (Tastenfeld.available()) { keypadEvent Taste = Tastenfeld.read(); // wenn die Taste losgelassen wurde -> Lautsprecher ausschalten if (Taste.bit.EVENT == KEY_JUST_RELEASED) noTone(LAUTSPRECHER); // solange die Taste gedrückt wird -> Ton abspielen if (Taste.bit.EVENT == KEY_JUST_PRESSED) { // ASCII-Code der gedrückten Taste anzeigen Serial.println(Taste.bit.KEY); /* Tastencode entspricht dem ASCII-Code: 49 = 1 50 = 2 … 56 = 8 */ switch (Taste.bit.KEY) { case 49: tone(LAUTSPRECHER, 264); break; case 50: tone(LAUTSPRECHER, 297); break; case 51: tone(LAUTSPRECHER, 330); break; case 52: tone(LAUTSPRECHER, 352); break; case 53: tone(LAUTSPRECHER, 396); break; case 54: tone(LAUTSPRECHER, 440); break; case 55: tone(LAUTSPRECHER, 495); break; case 56: tone(LAUTSPRECHER, 520); break; } } } } |
Letzte Aktualisierung: