Professional Documents
Culture Documents
Arduino Cbordo
Arduino Cbordo
#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);
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++;
}