На соседнем форуме наткнулся на интересный топик посвященный измерению масштабной скорости.
Решил повторить, но в процессе увлекся и "сильно" доработал (читай написал с нуля) исходный код.
Итак, имеем Arduino Pro mini, пару датчиков препятствий типа FC51, пару тактовых кнопок, пару резисторов на 10кОм, подстроечный резистор на 10кОм, двухстрочный шестнадцатизначный ЖК дисплей, макетную плату 8х12см
После включения, при "удачном стечении обстоятельств"
видим экран готовности
после пересечения первого датчика, начинается процесс измерения и появляется бегущая стока указывающая направление движения локомотива
После пересечения второго датчика, производятся расчеты и на экран на 5 сек (задается программно, можно выставить нужно значение в скетче) выводятся результаты
Если после пересечения первого датчика длительное время не было сигнала от второго датчика (время тоже можно менять в скетче) на 5 сек выводится сообщение таймаут после чего спидометр возвращается в режим готовности
В случае нештатных ситуаций, например при включении локомотивом были перекрыты оба датчика - выводится сообщение об ошибке. опрос готовности проводится каждую секунду и при устранении причины нештатной ситуации, спидометр возвращается в режим готовности
Кнопки - одна переключает единицы измерения, а при длительном удержании режим работы, вторая переключает масштаб и опции в режиме работы "Таймер"
Масштабы и единицы описаны в массивах скетча и могут быть дополнены или изменены
В режиме "Таймер", на первом экране отображается готовность к работе
После нажатия на кнопку масштаба, таймер переходит в режим ожидания первого срабатывания датчика
После сигнала от датчика, начинается отсчет времени текущего круга.
После повторного пересечения, фиксируется время прохождения круга и начинается отсчет времени нового круга
На экране в верхнем левом углу отображается время предыдущего круга, в левом нижнем углу - время предпоследнего круга, в правом верхнем - время текущего круга и в правом нижнем - общее время с начала отсчета (в правой колонке циферки постоянно меняются)
Для остановки таймеров, нажимаем еще раз кнопку масштаба.
Если в процессе измерения кратковременно нажать на кнопку единиц измерения - то переключимся на второй экран таймера.
На нем отображается количество пройденных кругов и среднее время прохождения круга. Измерения при этом не останавливаются.
Для возврата к первому экрану, еще раз нажимаем кнопочку единиц измерения.
Режим таймера, по сути "фенечка", но поскольку она не требует изменений в аппаратной части - почему бы и нет. Есть еще мысль сделать счетчик вагонов, но это уже надо будет на действующем агрегате проверить. Вчера уже не осилил
Ну и фотки того, что получилось за пару вечеров.
Хочу сделать корпус тунельного типа, как у Accutrack