diff --git a/boil_kettle/boil_kettle.ino b/boil_kettle/boil_kettle.ino index e9e0980..1a2be78 100644 --- a/boil_kettle/boil_kettle.ino +++ b/boil_kettle/boil_kettle.ino @@ -8,11 +8,11 @@ #include #include #include // LiquidMenu_config.h needs to be modified to use I2C. -#include #include #include // My Includes +#include "button.h" #include "config.h" #include "menu.h" @@ -32,7 +32,7 @@ kettle_mode KettleMode = OFF; encoder_state EncoderState = ENC_ST_LINE; /* ---------- User I/O objects ---------- */ -Button EncoderButton(encoderBTN); +Button EncoderButton; MD_REncoder RotaryEncoder(encoderDT, encoderCLK); LiquidCrystal_I2C lcd(0x27,20,4); Adafruit_MAX31865 kettleRTD(kettleRTDCS); @@ -53,8 +53,8 @@ void setup() { Serial.begin(9600); RotaryEncoder.begin(); - EncoderButton.begin(); Ethernet.begin(mac, ip); + EncoderButton.begin(encoderBTN); kettleRTD.begin(MAX31865_3WIRE); mashRTD.begin(MAX31865_3WIRE); Serial.println("Setting up..."); diff --git a/boil_kettle/button.h b/boil_kettle/button.h new file mode 100644 index 0000000..dc0dd57 --- /dev/null +++ b/boil_kettle/button.h @@ -0,0 +1,22 @@ +#ifndef button_h +#define button_h + +#include "Arduino.h" + +class Button +{ + private: + uint8_t btn; + uint16_t state; + public: + void begin(uint8_t button) { + btn = button; + state = 0; + pinMode(btn, INPUT_PULLUP); + } + bool pressed() { + state = (state<<1) | digitalRead(btn) | 0xfe00; + return (state == 0xff00); + } +}; +#endif