Desbordamiento al restar tiempos

contador de objetos ( se requiere contar burbujas y medir el tiempo que trasladan de un sensor a otro) , por lo que monte un sistema con led infrarojo emisor y receptor y un transitor 2n2222, cuando la burbuja interrumpa la comunicación y produzca una variacion entre emisor y receptor empiezea contar y tomar el tiempo del primer contacto de la burbuja con el haz de luz infraroja y el segundo tiempo cuando la burbuja abandone el haz de luz .

int irojo1 = A1; //primer sensor
int evento1;
int contador1 = 0;

unsigned long Time1;
unsigned long Time2;

int ingreso1 = 0;
//////////////////////////////////////////////

const int irojo2 = A2;// segundo sensor
int evento2;
int contador2 = 0;
unsigned long Time3;
unsigned long Time4;

int ingreso2 = 0;
////////////////////////////


float Times1;
float Times2;


void setup() {
  pinMode(irojo1,INPUT);
  pinMode(irojo2, INPUT );
  Serial.begin(9600);
 
 }
void loop() {
  delay(100);
   evento1 = analogRead(irojo1);  
   evento2 = analogRead(irojo2); 
  
       
   
 if (evento1 >=370) { 
      if(ingreso1==0){}
      Time1= millis(); /// tiempo 1
     
 
 }
 else if(evento1 <370) { // menor a este umbral se detecta una variación en la comunicación y empieza a contar 
       contador1++;
        
       Serial.println("contador1:");
       Serial.println(contador1);
       Time2 = millis(); /// tiempo 2
       
    
       Serial.println("Time1:");
       Serial.println(Time1);
       
       Serial.println("Time2:");
       Serial.println(Time2);
       
       
 }


 if (evento2 >=370 ){ 
      if(ingreso2==0){
      Time3= millis();/// tiempo 1 del segundo sensor
       
                  
 }
 }
 
else if(evento2 < 370 ) { /// menor a este umbral se detecta una variación en la comunicación y empieza a contar 
       contador2++;
       Serial.println("contador2:");
       Serial.println(contador2);
       Time4= millis();/// tiempo 2 del segundo sensor


         
       Serial.println("Time3:");
       Serial.print(Time3);
       Serial.println("Time4");
       Serial.println(Time4);
       
            
      

       Times1 = (Time3-Time1);//// En esta operación se produce el OVF el desbordamiento 
       Serial.println ("Times1:");
       Serial.print(Times1);

               Times2 = (Time4-Time2);

probé el sistema con una burbuja y no sufre variación alguna la comunicacion entre los leds que sensor puedo utilizar para dectetar este tipo de esferas.

Moderador:
Bienvenido al Foro Arduino en Español.
Por favor, lee las Normas del foro y edita tu código usando etiquetas de código.
Ve a edición, luego selecciona todo el error que has publicado, lo cortas y click en </>


Porque usas esto?

evento1 = analogRead(irojo1);
evento2 = analogRead(irojo2);

y luego toda una complicación para superar un umbral cuando una lectura digital es mas que suficiente?
Bueno tu mismo defines a los ensores en pines A1 A2 normalmente usados para lecturas analógicas pero luego en el setup los defines como digitales y de nuevo en el loop lees como analógicos. Asi que hay que decidir que es lo que vas a usar.
Otro tema.
Serial.begin(9600) se pone en el setup no en el loop.

Explica que tipo de sensores usas y podremos orientarte mejor.

Tampoco dices cual es el timer que se desborda. Muestra el error usando etiquetas tmb.

Veo que no me has entendido.
Editar es modificar lo ya escrito, no crear un nuevo post donde se hace lo que se pide. Ahora tienes una repetición.
Edita por favor el primer post!!

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.