Секундомер по фотодатчику с лазером.

petrovjch
Offline
Зарегистрирован: 25.04.2018
Собственно ищется исполнитель для создания секундомера на ардуино.
Планируется 2 базы с лазерным лучом, одна на старте, одна на финише, обе связаны по nrf24l01.
Момент старта ловить пересечением луча №1 или нажатием кнопки на первой базе, финиш ловить пересечением луча №2 (Точка финиша) или 2-й кнопкой на 1-й базе (Точка старта).
Должно стоять условие чтобы сработка 1-й базы (старта) была 1 раз и секундомер не должен останавливатся, сбрасыватся или начинать счет по новой пока не будет остановки на второй базе (Финиш) или же кнопкой на первой базе.
После финиша хотелось бы видеть вывод нескольких последних значений.

Схема

Ардуино только начинаю изучать, кое какой секундомер я нарыл в интернете немножко переделал на вывод под свой дисплей, но он работает от кнопок и начинает некоректно работать с модулями фотореле если я подключаю их в пины кнопок. Мож кому пригодится, пользуйтесь.

#include "LCD_1602_RUS.h"
LCD_1602_RUS lcd (0x3f, 16, 2);
 
void setup()
{
  lcd.init();
  lcd.backlight();
  lcd.begin(16, 2);
  lcd.clear();
  
  Serial.begin(9600);
  
  pinMode(8, INPUT);
  digitalWrite(8, HIGH);
  pinMode(9, INPUT);
  digitalWrite(9, HIGH);
}
double i = 0;
double a = millis();
double c ;
 
void loop()
{
lcd.clear();
lcd.print("Press Start");
delay(100);
  
 if(digitalRead(8) == LOW)
 {
 
    lcd.clear();
 a = millis();
   
   while(digitalRead(9) == HIGH)
   {
   
     c = millis();
   i = (c - a) / 1000;
   lcd.print(i);
   lcd.setCursor(13,0);
   lcd.print(L"Сек");
   lcd.setCursor(0,0);
   Serial.println(c);
   Serial.println(a);
   Serial.println(i);
   Serial.println("......");
   delay(100);
   }
   
   if(digitalRead(9) == LOW)
   {
     
     while(digitalRead(8) == HIGH)
     {
       lcd.setCursor(0,0);
       lcd.print(i);
       lcd.setCursor(11,0);
       lcd.print("");
       lcd.setCursor(0,0);
       delay(100);
     }
   }
 }
}
Green
Offline
Зарегистрирован: 01.10.2015

Пишите htpicc@gmail.com

Azat222
Offline
Зарегистрирован: 25.02.2018

Пишите azat222@gmail.com