Требуется разработчик скетча для стрелкового таймера

StanislavChubar

✩✩✩✩✩✩✩
19 Янв 2020
1
0
Доброго времени суток! Ищу человека, который возьмется написать скетч для стрелкового таймера (аналог CED 7000 *видео*)
Вознаграждение: договорное (аванс + доплата при завершении проекта)
Связь через ЛС форума или ЛС ВК
СКЕТЧ И ПОДОБИЕ ТЕХ ДОКУМЕНТАЦИИ В АРХИВЕ

Уже есть: схема (см. ниже) и некоторые наброски скетча(с комментариями)

Необходимо реализовать:
1) Функцию подсчета времени выстрелов и их количества:
При нажатии кнопок SW10 и не позже 1.5 секунд SW11 сразу или через определенный промежуток времени (конкретный интервал или рандомное значение от 0 до 4000 мс) подается пищащий сигнал в течении 300-400 мс (желательно сделать ч/з #define, чтобы можно было подстроить). Когда фиксируется сильный всплеск звука (чувствительность и эхо настраивается) таймер добавляет +1 в счетчик выстрелов и записывает время выстрела от начала отсчета (у меня под это зарезервирован массив). На LCD обновляются данные (номер и время последнего выстрела), после фиксации первого выстрела во второй строке записывается его время.
 экран.png

2) Функция повторного сигнала
После старта отсчета через время заданное в настройках (ParTime) подается второй сигнал (таймер на него не должен реагировать). Если в настройках ParTime = 0, то сигнал не подается

3) Задержка от нажатия до старта
3.1) Фиксированное время (задается в настройках DELAY от 0 до 4000 мс). После нажатия START и REVIEW идет задержка на время указанное в настройках. По истечении времени подается звуковой сигнал старта и начинается отсчет времени
3.2) Рандомная задержка (задается в настройках RNDDELAY да/нет). После нажатия START и REVIEW таймер генерирует случайное число от 0 до 4000 включительно и начинает отсчет от 0 до сгенерированного времени. При достижении, подается звуковой сигнал старта и начинается отсчет времени

4) Просмотр выстрелов
При запущенном таймере и нажатии кнопки REVIEW таймер останавливается на экране показывается номер выстрела (с 1 по 99, после 99->1), время выстрела относительно старта, на второй строке время между предыдущим и текущим выстрелом. Номер выстрела меняется с помощью кнопок SW13(LEFT) SW14(RIGHT)
Режим просмотра.PNG

5) Меню и хранение значений в EEPROM Ардуино
Данные хранятся в EEPROM
5.1) Чувствительность микрофона (0...100%)
5.2) Задержка эхо (0..100мс) - игнорирование звуков в течении указанного времени после фиксации очередного выстрела
5.3) Время стартовой задержки (0мс...4сек00мс)
5.4) Включение рандомной задержки (да/нет)
5.5) Повторный сигнал (0...100сек00мс)
5.6) ЕКО режим (да/нет) - при включенном эко режиме подсветка дисплея выключается через 3 секунды после последнего нажатия, таймер выключается после 5 минут бездействия (если не идет отсчет). Если выключено, то подсветка 10 секунд, выключается через 15 минут. Если таймер еще не выключен, про при нажатии любой кнопки включается подсветка дисплея

6) Графический заряд аккумулятора (РЕАЛИЗОВАНО, НУЖНО ПРОВЕРИТЬ КОРРЕКТНОСТЬ)
на экране в последних двух ячейках первой строки выводится уровень заряда акб. При низком заряде Таймер выдает предупреждение и уходит в спящий режим
Без имени-2.png

7) Режим сна
Когда таймер выключен, ардуино каждые 5 секунд опрашивает кнопку SW18. Если зажата, то таймер включается
В режиме сна выключен дисплей (на схеме нет, но это планируется реализовать ч/з NPN транзистор)

СХЕМА (может содержать некоторые ляпы, суть в том, чтобы передать основной принцип работы)
схема.JPG
Комментарий к схеме:
А0 - вход кнопок
SW10 - Кнопка START
SW11 - Кнопка REVIEW
SW12 - Кнопка MENU
SW13 - Кнопка LEFT
SW14 - Кнопка RIGHT
SW15 - Кнопка UP
SW16 - Кнопка DOWN
SW17 - Кнопка CLEAR
SW18 - Кнопка ОК/ON_OFF
А1 - вход делителя напряжения (уровень заряда 18650 проверять будет)
А2 - выход на пищалку/динамик
А3 - вход с блока микрофона
А4,А5 - подключение i2c LCD1602
D3 - включение\выключение яркой подсветки дисплея
 

Вложения

Neoris

✩✩✩✩✩✩✩
6 Фев 2020
16
0
В схеме нет повышающего преобразователя, уже при 3,5 В на аккумуляторе начнутся проблемы с микроконтроллером и экраном. Я бы рекомендовал поставить два аккума параллельно и поставить понижающий стабилизатор.

A1 на схеме измеряет не заряд аккумулятора, а напряжение на выходе с модуля заряда, а оно может просто пропасть, если микросхема посчитает, что аккумулятор уходит в переразряд.

Экран вы не выключаете через транзистор, а только отключаете подсветку, при этом сам экран остаётся запитан.