Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

// LCD Connections:

// RS (LCD pin 4) to Arduino pin 0


// E(LCD pin 6) to Arduino pin 8
// LCD pins D4, D5, D6, D7 to Arduino pins 4, 5, 6, 7

#include<LiquidCrystal.h>
LiquidCrystal lcd(0, 8, 4, 5 ,6 ,7);
volatile static double pulse_distance=0.00040225;
volatile double travelled_distance;
volatile unsigned long counter, avg_speed_divider, dist_pulse_count,
all_speed_values;
volatile unsigned int speed, avg_speed, max_speed;

void setup()
{
noInterrupts();
lcd.begin(16,2);

TCCR1A = 0;
TCCR1B |= ((1<< CS10) | (1<< CS11));
TIMSK1 |= (1 << TOIE1);
TCNT1 = 3036;

pinMode(2, INPUT);

attachInterrupt(digitalPinToInterrupt(2), distance_count, FALLING);

interrupts();
}

void loop(){
if(millis()%500 == 0){
lcd.clear();

lcd.setCursor(0,0);
lcd.print("S:");
lcd.setCursor(3,0);
lcd.print(travelled_distance);

lcd.setCursor(8,0);
lcd.print("V:");
lcd.setCursor(10,0);
lcd.print(speed);

lcd.setCursor(0,1);
lcd.print("MS:");
lcd.setCursor(4,1);
lcd.print(max_speed);

lcd.setCursor(8,1);
lcd.print("AS:");
lcd.setCursor(11,1);
lcd.print(avg_speed);

}
}

ISR(TIMER1_OVF_vect) {
counter++;
if(counter>3){

counter = 0;
}
TCNT1 = 3036;
}
void distance_count(){
dist_pulse_count++;
}

You might also like