mirror of
https://github.com/KevinMidboe/Arduino.git
synced 2025-10-29 17:40:11 +00:00
Init commit with many years of arduino sketches and projects. I dont know if the esp8266 includes much, but there are also libraries. I hope they dont have crazy automatic versioning through the Arduino IDE.
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
/* @file EventSerialKeypad.pde
|
||||
|| @version 1.0
|
||||
|| @author Alexander Brevig
|
||||
|| @contact alexanderbrevig@gmail.com
|
||||
||
|
||||
|| @description
|
||||
|| | Demonstrates using the KeypadEvent.
|
||||
|| #
|
||||
*/
|
||||
#include <Keypad.h>
|
||||
|
||||
const byte ROWS = 4; //four rows
|
||||
const byte COLS = 3; //three columns
|
||||
char keys[ROWS][COLS] = {
|
||||
{'1','2','3'},
|
||||
{'4','5','6'},
|
||||
{'7','8','9'},
|
||||
{'*','0','#'}
|
||||
};
|
||||
|
||||
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
|
||||
byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad
|
||||
|
||||
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
|
||||
byte ledPin = 13;
|
||||
|
||||
boolean blink = false;
|
||||
boolean ledPin_state;
|
||||
|
||||
void setup(){
|
||||
Serial.begin(9600);
|
||||
pinMode(ledPin, OUTPUT); // Sets the digital pin as output.
|
||||
digitalWrite(ledPin, HIGH); // Turn the LED on.
|
||||
ledPin_state = digitalRead(ledPin); // Store initial LED state. HIGH when LED is on.
|
||||
keypad.addEventListener(keypadEvent); // Add an event listener for this keypad
|
||||
}
|
||||
|
||||
void loop(){
|
||||
char key = keypad.getKey();
|
||||
|
||||
if (key) {
|
||||
Serial.println(key);
|
||||
}
|
||||
if (blink){
|
||||
digitalWrite(ledPin,!digitalRead(ledPin)); // Change the ledPin from Hi2Lo or Lo2Hi.
|
||||
delay(100);
|
||||
}
|
||||
}
|
||||
|
||||
// Taking care of some special events.
|
||||
void keypadEvent(KeypadEvent key){
|
||||
switch (keypad.getState()){
|
||||
case PRESSED:
|
||||
if (key == '#') {
|
||||
digitalWrite(ledPin,!digitalRead(ledPin));
|
||||
ledPin_state = digitalRead(ledPin); // Remember LED state, lit or unlit.
|
||||
}
|
||||
break;
|
||||
|
||||
case RELEASED:
|
||||
if (key == '*') {
|
||||
digitalWrite(ledPin,ledPin_state); // Restore LED state from before it started blinking.
|
||||
blink = false;
|
||||
}
|
||||
break;
|
||||
|
||||
case HOLD:
|
||||
if (key == '*') {
|
||||
blink = true; // Blink the LED when holding the * key.
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user