salut tous le monde, dans mon cas je dispose d'un capteur de lumière ( fréquence en fonction de la lumière) chaque 10 seconde je l’expose a une lumière (2 lumiere commendé par la pin 8 et 9 d'arduino) .... j'aimrais avoir le Max et le Min de la sortie de se capteur, j'ai essayé se programme mais sa marche pas, alors si quelqu'un peut me dire qui ce qui cloche sa serai bien et merci
Code:volatile unsigned long cnt = 0; int R_IR,value0; long temp,tim;unsigned long oldcnt = 0; unsigned long t = 0; int testR=0;int testIR=0; //unsigned int data;//time,triger,hz; unsigned long last; boolean test=false; boolean test1=false; boolean test2=false; long data,time,triger,hz,Max_PPG=0,Min_PPG=0,Max_PPG_I=0,Min_PPG_I=0; void irq1() { cnt++; if (cnt == 4){ last = micros(); } if (cnt == 24){ time = micros() - last; last = micros(); hz = (5000000000/time); data=hz;//-triger; cnt=0; } } void setup() { Serial.begin(115200); pinMode(2, INPUT); pinMode(8, OUTPUT); pinMode(9, OUTPUT); temp=millis(); digitalWrite(9, HIGH); digitalWrite(8, LOW); attachInterrupt(0, irq1, RISING); } void loop() { tim=millis()-temp; if(tim>10000 & tim<20000){ digitalWrite(8, HIGH); digitalWrite(9, LOW); long Max_PPG=max(Max_PPG, data); testR=testR+1; if (testR==1){Min_PPG=9000000;} long Min_PPG=min(Min_PPG, data); /* Serial.print("Max_PPG"); Serial.println(Max_PPG); Serial.print("Min_PPG"); Serial.println(Min_PPG);*/ } if(tim>20000){ digitalWrite(9, HIGH); digitalWrite(8, LOW); long Max_PPG_I=max(Max_PPG_I, data); testIR=testIR+1; if (testIR==1){Min_PPG_I=data;} long Min_PPG_I=min(Min_PPG_I, data); /* //Serial.print("\n"); Serial.print("Max_PPGI"); Serial.println(Max_PPG_I); Serial.print("Min_PPGI"); Serial.println(Min_PPG_I);*/ //R_IR=1; if(tim>30000){ temp=millis();} Serial.println (data); } }
-----