Arduino Analog Keyboard
Det analoge keyboard er monteret som standard på programmerings-shieldet, og er et 12 tasters nummerisk tastatur, men kan konfigureres som man ønsker.
Software
Da analoge keyboards ikke er standard, så er der skrevet et bibliotek til det analoge keyboard, der kan hentes i denne ZIP-fil. Biblioteket downloades og installeres som beskrevet under Arduinos biblioteker.
Anvendelsen af softwaren
Det der gennemgås her ligger i biblioteket under Basic Test eksemplet.
Det analoge keyboard sidder på programmerings-shieldet placeret på den analoge indgang A2, som det er angivet her.
Som alle andre biblioteker skal der sættes de grundlæggende ting op for at kontakte biblioteket og definere hvordan dette keyboard ser ud. Til sidst oprettes en instans af klassen Analog_Keypad (et keyboard-objekt):
#include <Analog_Keypad.h>
const byte NUM_KEYS = 12;
const byte KEYB_PIN = A2;
char hexaKeys[NUM_KEYS] =
{'0','1','2','3','4','5','6','7','8','9','A','B'};
//initialize an instance of class Analog_Keypad
Analog_Keypad myKeypad = Analog_Keypad(hexaKeys, KEYB_PIN, NUM_KEYS);Inde i setup() skal der sættes gang i objektet ved hjælp af begin-metoden som vist her:
void setup() {
myKeypad.begin();
}Der kan sættes yderligere ting op, men for at komme i gang er dette nok.
Herefter kan metoden getKey() anvendes som vist her. Hvis der ikke er trykket på en gyldig tast, så returneres der NO_KEY.
En vigtig ting at nævne er at metoden kun returnerer tasten EN gang i et tastetryk, men at der skal 5 kald til metode til før den gør det. Det betyder at metoden skal kaldes så ofte som muligt (polling). Eksemplet her viser en simpel anvendelse af metoden:
void loop() {
char key = myKeypad.getKey(); // Poll for a key value
if (key != NO_KEY) { // Are a valid key pressed?
Serial.println(key); // Do something with the aquired key
}
}Yderligere muligheder i softwaren
Der ligger yderligere muligheder i klassen man kan anvende, hvis man ønsker andre måder at anvende tastaturet på:
// Two different constructors for the class
Analog_Keypad(char *userKeyMap, byte analogPin, byte numKeys);
Analog_Keypad(char *userKeyMap, byte analogPin, byte numKeys, byte numAccept);
// Basic interface
char getKey();
void begin();
// Extended interface
bool isPressed(char keyChar);
void setDebounceTime(uint debounce);
void setHoldTime(uint hold);
void setHoldMode(bool mode);
void setNumAccept(byte count);
char waitForKey();Hardware
Princippet i det analoge keyboard er beskrevet på AD-tast, der er skrevet til software med PIC mikrocontroller, men den hardwaremæssige opbygning er præcis den samme.
Princip-diagram for det Analoge keyboard
Beregningerne og anvendelsen af et 12 eller 16 tasters keyboard er selvfølgelig samme princip, blot at spændingerne bliver anderledes.
Layout
Keyboardets placering på programmerings-shieldet kan ses her:
![]()
Angivelse af de 12 tasters placering og betydning i test-koden
| Programmerings-Shield | |
|---|---|
| Programmerings-Shield | Analogt Keyboard - Display - LED'er - Trykknapper - Analog - LM35 - Fugt Sensor - Servo Motor - RF-Transmitter - RF-Receiver - LED-Matrix - RFID-læser - IR-Modtager - GPS1 - GPS2 - Step Motor - Matrix Tastatur - Ultralyd Afstandsmåler - XY Joystick - LED Strip |
| I2C Enheder | I2C Display - Barometer BMP085 - Barometer BMP180 - Accelerometer MMA7660 - Gyroskop MPU6050 - Kompas HMC5883 - Real Time Clock DS1307 - Real Time Clock DS3231 - I2C |
| Grundlæggende | Oversigt - Monteringsvejledning - Testprogram - Programmering Shield Gammel version |
| Arduino-Modul-Oversigt | |
|---|---|
| Arduino | Generelt: Biblioteker - Board - Driver - Shield - Arduino Analog - Arduino Seriel Arduino-typer: Arduino UNO - Arduino Nano - Arduino Pro Mini - Arduino MEGA 2560 - LiliyPad Mikrocontroller - Arduino DUE - WeMOS |
| Input-moduler | Trådløse: Bluetooth - Transceiver modul - WiFi Modul - SMS Modul - I2C-RF-modtager - RF Link - GPRS/GSM - GSM_Modul Sensorer: GPS - Strøm-sensor - I2C Humidity - Lys og Nærhed - Magnetisk Kompas - I2C barometer - Farvegenkendelsesmodul - Alkoholsensor - Accelerometer - I2C Accelerometer - I2C Gyroskop - Vejecelleforstærker - IR Distance - AC Strømsensor - Afstand - XY Joystick - Humidity - Tryksensor - Vindhastighedsmåler |
| Output-moduler | Trådløse: Bluetooth - RF Link - GPRS/GSM - Transceiver modul - WiFi Modul - SMS Modul Display: Display Shield - Touch Display - Arduino Display - Nokia 5110 Display - Dot-Matrix - Lys-avis - I2C Display |
| I2C-Moduler | Funktionsmoduler: DS1307 RTC - I2C-RF-modtager - I2C tastatur Sensorer: I2C Humidity - Magnetisk Kompas - I2C barometer - I2C Accelerometer - I2C Gyroskop |