#include <Arduino.h>
#include <TM1637Display.h>
// Module connection pins (Digital Pins) for Display TM1637
#define CLK 5
#define DIO 4
#define GER 2
#define Button 3
TM1637Display display(CLK, DIO);
unsigned long lastturn, time_press; //переменные хранения времени
float SPEED; //переменная хранения скорости в виде десятичной дроби
float DIST; //переменная хранения расстояния в виде десятичной дроби
float w_length=2.050; //длина окружности колеса в метрах
boolean flag; //флажок для хранения (что выводим на дисплее, скорость или расстояние)
boolean state, button; //флажки для обработчика нажатия кнопки
void setup() {
// Setting up all buttons and switches
pinMode(GER, INPUT_PULLUP);
attachInterrupt(0,catchGER,FALLING); //подключить прерывание на 2 пин при повышении сигнала
pinMode(Button, INPUT_PULLUP);
display.setBrightness(1); // Setting brightness of TM1637 diplay
Serial.begin(9600);
}
void catchGER(){
SPEED = w_length/(((millis()-lastturn)/1000)*3.6); //расчет скорости, км/ч
lastturn = millis(); //запомнить время последнего оборота
DIST=DIST+w_length/1000; //прибавляем длину колеса к дистанции при каждом обороте оного
}
void loop() {
static uint32_t timer;
if (millis() - timer > 300){
timer = millis();
Serial.println(SPEED);
display.showNumberDec(int(SPEED*10));
}
}