f4d8c6a90665c2943c86705577fc0dceb1dba056
[speedo_scaler.git] / speedo_scaler.ino
1 int inPin = 2;
2 int outPin = 3;
3 int ledPin = 13;
4
5 int lastState = 0;
6 int count = 0;
7 int outputState = HIGH;
8
9 void setup() {
10   pinMode(inPin, INPUT_PULLUP);
11   pinMode(outPin, OUTPUT);
12   pinMode(ledPin, OUTPUT);
13   next();
14 }
15
16 void loop() {
17   int current = digitalRead(inPin);
18   if (current != lastState) {
19     lastState = current;
20     digitalWrite(ledPin, current);
21     count++;
22     switch (count) {
23       case 0 :
24       case 3 :
25       case 6 :
26       case 9 :
27         next();
28         break;
29       case 10 :
30         count = 0;
31         break;
32     }
33   }
34 }
35
36 void next() {
37   if (outputState == LOW) {
38     outputState = HIGH;
39   } else {
40     outputState = LOW;
41   }
42   digitalWrite(outPin, outputState);
43 }