don't increment twice!
[speedo_scaler.git] / speedo_scaler.ino
1 #include <Streaming.h>
2
3 int inPin = 2;
4 int outPin = 3;
5 int ledPin = 13;
6
7 int lastState = 0;
8 int count = 0;
9 int outputState = HIGH;
10
11 void setup() {
12   pinMode(inPin, INPUT_PULLUP);
13   pinMode(outPin, OUTPUT);
14   pinMode(ledPin, OUTPUT);
15   next();
16   
17   Serial.begin(115200);
18   Serial << "online" << endl;
19 }
20
21 void loop() {
22   int current = digitalRead(inPin);
23   if (current != lastState) {
24     lastState = current;
25     digitalWrite(ledPin, current);
26     count++;
27     Serial << current << " " << count << endl;
28     switch (count) {
29       case 0 :
30       case 3 :
31       case 6 :
32       case 9 :
33         next();
34         break;
35       case 10 :
36         count = 0;
37         break;
38     }
39   }
40 }
41
42 void next() {
43   if (outputState == LOW) {
44     outputState = HIGH;
45   } else {
46     outputState = LOW;
47   }
48   digitalWrite(outPin, outputState);
49 }