diff --git a/RoomyState/Counter.cpp b/RoomyState/Counter.cpp new file mode 100644 index 0000000..0a6a738 --- /dev/null +++ b/RoomyState/Counter.cpp @@ -0,0 +1,25 @@ +#include "Counter.h" + +void Counter::inc() { + if(init >= up_lim){ + init = 0; + } else{ + ++init; + } +} + +int Counter::getInit(){ + return this->init; +} + +Counter::Counter(int i, int up) { + up_lim = up; + if(i > up){ + init = up; + }else if(i < 0){ + init = 0; + }else{ + init = i; + } + +} diff --git a/RoomyState/Counter.h b/RoomyState/Counter.h new file mode 100644 index 0000000..60c1d94 --- /dev/null +++ b/RoomyState/Counter.h @@ -0,0 +1,13 @@ +class Counter { + +public: + Counter(int i, int up); + void inc(); + int getInit(); + ~Counter() = default; + +private: + int init; + int up_lim; + +}; diff --git a/RoomyState/RoomyState.ino b/RoomyState/RoomyState.ino new file mode 100644 index 0000000..b6d11d0 --- /dev/null +++ b/RoomyState/RoomyState.ino @@ -0,0 +1,31 @@ +#include "lcd.h" +int buttonState = 0; +Counter c (0, 3); + +void setup() { + lcdAwake(); + pinMode(BI, INPUT); +} + +void loop() { + buttonState = digitalRead(BI); + + if(buttonState){ + c.inc(); + delay(300); + } + + switch(c.getInit()){ + case 0: + setHome(); + case 1: + setAway(); + case 2: + setBusy(); + case 3: + setCome(); + default: + break; + } + +} diff --git a/RoomyState/lcd.cpp b/RoomyState/lcd.cpp new file mode 100644 index 0000000..69ed593 --- /dev/null +++ b/RoomyState/lcd.cpp @@ -0,0 +1,43 @@ +#include "lcd.h" + +void lcdAwake(){ + lcd.begin(16, 2); + lcd.clear(); + lcd.setCursor(0, 1); + lcd.print(" LCD awake "); + delay(1500); + lcd.clear(); +} + + +void setHome(){ + lcd.clear(); + lcd.setCursor(0, 1); + lcd.print(" Currently "); + lcd.setCursor(1, 1); + lcd.print(" Home "); +} + +void setAway(){ + lcd.clear(); + lcd.setCursor(0, 1); + lcd.print(" Currently "); + lcd.setCursor(1, 1); + lcd.print(" Not Home "); +} + +void setBusy(){ + lcd.clear(); + lcd.setCursor(0, 1); + lcd.print(" Currently "); + lcd.setCursor(1, 1); + lcd.print(" Busy "); +} + +void setCome(){ + lcd.clear(); + lcd.setCursor(0, 1); + lcd.print(" Free... "); + lcd.setCursor(1, 1); + lcd.print(" Come in! "); +} diff --git a/RoomyState/lcd.h b/RoomyState/lcd.h new file mode 100644 index 0000000..3581b51 --- /dev/null +++ b/RoomyState/lcd.h @@ -0,0 +1,14 @@ +#include "lib.h" + +LiquidCrystal lcd(RS, ENA, D4, D5, D6, D7); + +void lcdAwake(); + +//Displaying functions +void setHome(); + +void setAway(); + +void setBusy(); + +void setCome(); diff --git a/RoomyState/lib.h b/RoomyState/lib.h new file mode 100644 index 0000000..062d28e --- /dev/null +++ b/RoomyState/lib.h @@ -0,0 +1,5 @@ +#include +#include "Counter.h" +#include + +enum pinOut { RS, ENA, D4, D5, D6, D7, BI};