62fab13acda7195e4b6c58d1436062eae5601be8
[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         count++;
35         break;
36       case 10 :
37         count = 0;
38         break;
39     }
40   }
41 }
42
43 void next() {
44   if (outputState == LOW) {
45     outputState = HIGH;
46   } else {
47     outputState = LOW;
48   }
49   digitalWrite(outPin, outputState);
50 }