之前就是这么测的,但是上电只能测一次,
在这是代码,麻烦你看下怎么改成多次测量 - #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- LiquidCrystal_I2C lcd(0x3F,16,2);
- unsigned long start, finished, elapsed;
- boolean D7_flag;
- boolean D8_flag;
- long int i=0;
- void setup()
- {
- lcd.begin();
- lcd.backlight();
- lcd.print("Ready Test!!!");
- Serial.begin(9600);
- pinMode(4, OUTPUT); // Coil action output signal
- pinMode(7, INPUT); // start ,Coil input signal
- pinMode(8, INPUT); // stop ,Contact input signal
- D7_flag = false;
- D8_flag = false;
-
- for(i=1;i<=100;i++)
- {
- digitalWrite(4, HIGH); // turn the LED on (HIGH is the voltage level)
- delay(50); // wait for a second
- digitalWrite(4, LOW); // turn the LED off by making the voltage LOW
- delay(50);
- lcd.setCursor(0, 1);
- lcd.print("CountDown=");
- lcd.print(100-i);
- if(i==1||i==90)
- {
- lcd.clear();
- lcd.print("Ready Test!!!");
- }
- }
- }
- void loop()
- {
- digitalWrite(4, HIGH);
- {
- if ((digitalRead(7) == HIGH) && (!D7_flag))
- {
- //start=millis();
- start=micros();
- D7_flag = true;
- //Serial.println("Started...");
- }
- if ((digitalRead(8) == HIGH) && (!D8_flag))
- {
- // finished=millis();
- finished=micros();
- D8_flag = true;
- //Serial.println("Stop...");
- Serial.print("Elapsed time= ");
- elapsed=finished-start-8;
- Serial.print(elapsed);
- Serial.println("us");
- lcd.clear();
- lcd.print("Elapsed time= ");
- lcd.setCursor(0, 1);
- lcd.print( elapsed);
- lcd.print("us , ");
- lcd.print( elapsed/1000);
- lcd.print("ms");
- }
- }
- }
复制代码 |