Arduino: cronómetro, infrarrojo, cálculo y LCD

Hola a todos:
Estoy haciendo un proyecto de trabajo donde necesito programar Arduino para lo siguiente:
La idea es que pase un objeto por dos pares de infrarrojos; el de inicio inicie un cronómetro y cuando el objeto pase a través del segundo pare el cronómetro, y con ese tiempo haga un calculo y ese calculo se proyecte en un LCD.
Yo, sabiendo muy poco o nada de programación, he hecho el código siguiente, pero como era de esperar me da ciertos errores que no acabo de encontrar solución por google ni nada.
¿Alguien podría corregirme que tengo mal en el código?
El código es una mezcla un poco editada por mi de varios trabajos que vi por google que me salen errores o no son exactamente lo que necesitaba, y he mirado por este foro si veia algo y creo que no he visto nada, los post que he mirado no los entendia, puesto que no se mucho de esto. :confused:
Lo de los "#include" es para que detecte el LCD y lo de "TKLCD_Serial lcd = TKLCD_Serial()" también
Si sirve de algo tengo Arduino Leonardo y un LCD tinkerkit.

Muchas gracias!:)

Código:
#include <Wire.h>
#include <LiquidCrystal.h>
#include <matrix_lcd_commands.h>
#include <TKLCD.h>
 
long time1=0;  
long time2=0;  
long startTime ;                    
long elapsedTime ;                  

int fractional;                    
int buttonPin1 = 10;  //pin para el boton 1
int buttonPin2 = 9;   //pin para el boton 2
int ledPin =  13;      //Pin àra el led
int buttonState1 = 0; //Variable para leer boton1
int buttonState2 = 0; //Variable para leer boton2
int clock = 100;      //retardo del reloj
int hour = 0;         //horas
int min = 0;          //minutos
int sec = 0;          //segundos
int dcsec = 0;        //decimas de segundo
int mlsec = 0;        //milesimas de segundo
int tiempofinal = 0;    //temps final
int friccion = 0;       //friccio
int pinangle1 = 8;    
int pinangle2 = 9;
int pinangle3 = 10;
int pinangle4 = 11;
int angulo = 0;         
boolean run = true;

void setup() {
  TKLCD_Serial lcd = TKLCD_Serial();  
  lcd.begin(9600);
  lcd.clear();    
}

void loop() {
  TKLCD_Serial lcd = TKLCD_Serial();
    time1 = millis();  
    buttonState1 = digitalRead(buttonPin1); 
    buttonState2 = digitalRead(buttonPin2); }

  
    if (buttonState1 == LOW  &&  buttonState2 == LOW) {  
        dcsec = 0;
        run=false;          
        delay(500);  
        lcd.print("Parado");
  }
  
if (buttonState1 == HIGH)
{
    run == true;
  }
  
 if (run == true);
 {
   startTime = millis();
}

if (buttonState2 == HIGH)
{
  elapsedTime = millis() - startTime;
  tempsfinal = ( (int)(elapsedTime / 1000L));
  friccion = (((-(0,03 / tiempofinal)^2) / (11,76 * cos angle)) + tan angle)
  lcd.print = friccion  
}
 
Atrás
Arriba