#include #include #define CLK A1 #define DIO A2 #define SIGNAAL 2 #define FREQUENZ 3 //#define POT A0 int pins[] = {4,5,6,7,8,9,10,11,12,13}; TM1637Display display(CLK, DIO); void setup() { for (int x=4; x<14; x++) { pinMode(x, OUTPUT); } pinMode(A2, OUTPUT); pinMode(A1, OUTPUT); pinMode(SIGNAAL, INPUT_PULLUP); Serial.begin(115200); // Funktion aufrufen, wenn immer der Zustand ändert. attachInterrupt(digitalPinToInterrupt(SIGNAAL), deltaT, CHANGE); } volatile long down; volatile long up; volatile long dt = 0; volatile long rpm = 0; void deltaT() { long zeit=micros(); if (digitalRead(SIGNAAL)==0) { down=zeit; } if (digitalRead(SIGNAAL)==1 && zeit-down>2200) { dt=zeit-up; up=zeit; rpm= 60000000/dt/3+rpm*2/3; } } void loop() { // int v = analogRead(POT); // float u = v*5.0/1023; // int f = ((170/5)*u); // Serial.print("U="); // Serial.println(f); // delay(10); // tone(FREQUENZ, f); // Serial.print("RPM="); // Serial.println(rpm); // delay(10); for (int i=0; i<10; i++) { digitalWrite(pins[i], (10000*i/10=10000) { display.setBrightness(7, false); // Turn off display.showNumberDec(0, true); for (int x=4; x<14; x++) { digitalWrite(x, LOW); } delay(100); display.setBrightness(7, true); // Turn on display.showNumberDec(0, true); for (int x=4; x<14; x++) { digitalWrite(x, HIGH);} delay(100); } }