summaryrefslogtreecommitdiffstats
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp
new file mode 100644
index 0000000..30f2b87
--- /dev/null
+++ b/src/main.cpp
@@ -0,0 +1,65 @@
+#include <Arduino.h>
+#include <LiquidCrystal.h>
+#include "Bounce.h"
+
+void setup();
+void loop();
+
+#define BUFFER_SIZE 64
+char buf[BUFFER_SIZE];
+
+// initialize the library with the numbers of the interface pins
+LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
+
+// A0 = prev; A1 = pause; A2 = next
+byte buttons[] = {A0, A1, A2};
+#define NUMBUTTONS sizeof(buttons)
+#define DEBOUNCE 10
+Bounce bounce_buttons[NUMBUTTONS];
+
+void setup() {
+ byte i;
+ lcd.begin(16, 2);
+ Serial.begin(9600);
+ Serial.setTimeout(5000);
+
+ for (i = 0; i < NUMBUTTONS; i++) {
+ pinMode(buttons[i], INPUT);
+ digitalWrite(buttons[i], HIGH);
+ bounce_buttons[i] = Bounce(buttons[i], DEBOUNCE);
+ }
+
+ Serial.println("ready");
+}
+
+bool button_just_pressed(int i) {
+ bounce_buttons[i].update();
+ return bounce_buttons[i].fallingEdge();
+}
+
+void loop() {
+ if (button_just_pressed(0)) {
+ Serial.println("previous");
+ }
+
+ if (button_just_pressed(1)) {
+ Serial.println("pause");
+ }
+
+ if (button_just_pressed(2)) {
+ Serial.println("next");
+ }
+
+ // output what we got over serial
+ if (Serial.available() >= 32) {
+ lcd.setCursor(0, 0);
+ Serial.readBytes(buf, 32);
+ for (int i = 0; i < 32; i++) {
+ if (i == 16) {
+ lcd.setCursor(0, 1);
+ }
+ lcd.write(buf[i]);
+ }
+ }
+}
+