#define CLK_PIN 25
int counter = 0;
int CLK_state;
int prev_CLK_state;
#include <LiquidCrystal_I2C.h>
int lcdColumns = 16;
int lcdRows = 2;
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
float time1=0;
float time2;
float Times;
float speed;
void setup() {
pinMode(CLK_PIN, INPUT);
prev_CLK_state = digitalRead(CLK_PIN);
lcd.init();
lcd.backlight();
}
void loop()
{
CLK_state = digitalRead(CLK_PIN);
if (CLK_state != prev_CLK_state && CLK_state == HIGH)
{
time2=millis();
Times=time2-time1;
if (Times<1000)
{
speed=(18)/(((Times)*(10^-3))/60); //in degrees per minute
lcd.setCursor(0,0);
lcd.print("Speed:");
lcd.print(abs(speed));
}
time1=time2;
}
if (millis()-time1>1000)
{
lcd.setCursor(0,0);
lcd.print("Speed:");
lcd.print(abs(0.000));
}
// save last CLK state
prev_CLK_state = CLK_state;
}