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