Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /************************
- * Ultratimer
- * Authors:
- * Lugovcov Gleb
- * Pahomov Daniil
- * Kolpakov Vladimir
- * http://ut60.ru
- * 21.04.2016
- ************************/
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- #include <Ultrasonic.h>
- Ultrasonic ultrasonic(9,8); // (Trig PIN,Echo PIN)
- LiquidCrystal_I2C lcd(0x3f,16,2);
- // Если ваш экран не работает, возможно у него другой адрес
- // Попробуйте вместо lcd(0x3f,16,2) написать lcd(0x27,16,2)
- boolean start = 0;
- long startTime = 0;
- long endTime = 0;
- int prevTime1, prevTime2;
- void setup(){
- lcd.init();
- lcd.backlight();
- lcd.setCursor(3,0);
- lcd.print("UltraTimer");
- lcd.setCursor(4,1);
- lcd.print("ver. 1.0");
- delay(3000);
- lcd.clear();
- lcd.setCursor(5,0);
- lcd.print("Ready!");
- }
- void loop(){
- if (ultrasonic.Ranging(CM) < 30) { //на каком расстоянии датчик
- //будет видеть робота
- if (start == 0) {
- startTime = millis();
- lcd.clear();
- lcd.setCursor(5,0);
- lcd.print("Start!");
- start = !start;
- delay(3000); //чтобы робот успел уехать от датчика
- }
- else if (start == 1 && startTime != endTime) {
- endTime = millis() - startTime; //начинаем отсчёт
- lcd.setCursor(0,0);
- lcd.print("Time: ");
- //разбиваем время (считаемое в мс) для вывода в виде "3.345 с"
- lcd.print(endTime/1000); //выводим кол-во секунд
- lcd.print(".");
- lcd.print(endTime%1000); //выводим количество мс
- lcd.print(" s");
- lcd.setCursor(0,1);
- lcd.print("Pr time: "); //выводим предыдущий результат
- lcd.print(prevTime1);
- lcd.print(".");
- lcd.print(prevTime2);
- lcd.print(" s");
- prevTime1 = endTime/1000;
- prevTime2 = endTime%1000;
- start = !start;
- startTime = endTime;
- delay(5000);
- lcd.setCursor(15,0);
- lcd.print("*");
- }
- }
- else if (ultrasonic.Ranging(CM) > 20 && start == 1){
- //если таймер запущен, выводим на экран время попытки
- //чтобы примерно можно было отслеживать время
- lcd.setCursor(0,1);
- lcd.print((millis()-startTime)/1000);
- lcd.print(".");
- lcd.print((millis()-startTime)%1000);
- lcd.print(" s");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement