Модели железной дороги > Электроника в моделизме

Спидометр на Arduino за два вечера и $8

(1/2) > >>

VVRR:
На соседнем форуме наткнулся на интересный топик посвященный измерению масштабной скорости.
Решил повторить, но в процессе увлекся и "сильно" доработал (читай написал с нуля) исходный код.
Итак, имеем Arduino Pro mini, пару датчиков препятствий типа FC51, пару тактовых кнопок, пару резисторов на 10кОм, подстроечный резистор на 10кОм, двухстрочный шестнадцатизначный ЖК дисплей, макетную плату 8х12см

После включения, при "удачном стечении обстоятельств"   ;) видим экран готовности

после пересечения первого датчика, начинается процесс измерения и появляется бегущая стока указывающая направление движения локомотива

После пересечения второго датчика, производятся расчеты и на экран на 5 сек (задается программно, можно выставить нужно значение в скетче) выводятся результаты

Если после пересечения первого датчика длительное время не было сигнала от второго датчика (время тоже можно менять в скетче) на 5 сек выводится сообщение таймаут после чего спидометр возвращается в режим готовности

В случае нештатных ситуаций, например при включении локомотивом были перекрыты оба датчика - выводится сообщение об ошибке. опрос готовности проводится каждую секунду и при устранении причины нештатной ситуации, спидометр возвращается в режим готовности


Кнопки - одна переключает единицы измерения, а при длительном удержании режим работы, вторая переключает масштаб и опции в режиме работы "Таймер"
Масштабы и единицы описаны в массивах скетча и могут быть дополнены или изменены

В режиме "Таймер", на первом экране отображается готовность к работе

После нажатия на кнопку масштаба, таймер переходит в режим ожидания первого срабатывания датчика

После сигнала от датчика, начинается отсчет времени текущего круга.
После повторного пересечения, фиксируется время прохождения круга и начинается отсчет времени нового круга
На экране в верхнем левом углу отображается время предыдущего круга, в левом нижнем углу - время предпоследнего круга, в правом верхнем - время текущего круга и в правом нижнем - общее время с начала отсчета (в правой колонке циферки постоянно меняются)

Для остановки таймеров, нажимаем еще раз кнопку масштаба.
Если в процессе измерения кратковременно нажать на кнопку единиц измерения - то переключимся на второй экран таймера.
На нем отображается количество пройденных кругов и среднее время прохождения круга. Измерения при этом не останавливаются.

Для возврата к первому экрану, еще раз нажимаем кнопочку единиц измерения.

Режим таймера, по сути "фенечка", но поскольку она не требует изменений в аппаратной части - почему бы и нет. Есть еще мысль сделать счетчик вагонов, но это уже надо будет на действующем агрегате проверить. Вчера уже не осилил :)

Ну и фотки того, что получилось за пару вечеров.






Хочу сделать корпус тунельного типа, как у Accutrack

VVRR:
[youtube]http://www.youtube.com/watch?v=qsBzMYaS7tQ[/youtube]

vnefedov:
Володь, а можно мили в километры программно перевести - интересная приблуда.
И подсчет вагонов тоже...  ::)

VVRR:

--- Цитата: vnefedov от 30 Сентябрь 2016, 20:56:08 ---можно мили в километры программно перевести
--- Конец цитаты ---
Слав, у меня и мили в час и километры в час меряет, в видео я прокликивал еиницы измерения. можно хоть дюймы в сутки сделать :)
В пятницу будет полная версия с рассказом, что и где менять/дополнять.
Вагоны привез с дачи, "буду попробовать". Боюсь, что на темных бочках он лестницу может за разрыв посчитать, а может и просветы в Nашем масштабе не увидеть, нужно по колдовать будет с уменьшением угла срабатывания датчиков.

vnefedov:

--- Цитата: VVRR от 01 Октябрь 2016, 21:34:45 ---В пятницу будет полная версия с рассказом, что и где менять/дополнять.
--- Конец цитаты ---
ОК. Посмотрим.
А грузовые вагоны на время замера можно и бумажным скотчем обмотать, чтобы не было лишних разрывов...

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Ошибка во время нажатия Спасибо
Спасибо...
Перейти к полной версии