Проблемы с получением импульсов от монетоприемника
- Войдите на сайт для отправки комментариев
Пнд, 01/06/2020 - 16:18
Добрый день всем
Запрограммировал и настроил монетоприемник CH-926
Подключил к ардуинке, но такая проблема, что когда я запускаю скетч, то у меня выводит в логи каждую секунду строку что был считан импульс, хотя монету я не бросал
Я провел исследование и пришел к выводу что виновато подключение через розетку, я думаю что это импульсные помехи. Почему я так решил? Потому что я подключал монетоприемник через батарейки и все работало на ура.
Кто нибудь знает как избавиться от этого недуга как импульсные помехи?
Что можно с этим сделать?
Заранее всем благодарен
Взять качественный блок питания. И собрать схему по всем правилам.
Тоже думаю что в этом проблема
Сейчас использую хитрую схему с питанием
Взял провод 220В, адаптер с 220В -> 12 Вольт и диодный мост
Как думаете, в этом может быть проблема?
Схему выкладывайте. Только свою, а не "картинку из сети". Лучше ещё и фото сборки. Иначе тема сведётся к глуму и срачу.
Купил новый блок питания, как вы и посоветовали
Все работает хорошо, но есть проблемы
Если я вожу возле отверстия приема монеты своей монетой, то он может дать "ложный" импульс
И иногда такое происходит при включении
Как бороться с такого рода проблемами?
Не водить возле отверстия своей монетой.
Поставить резисторы на массу или питание, в зависимости от схемы, такие, что бы все возможные наводочные токи давали напряжения меньше пороговых. Без схемы что то посоветовать трудно, но принцип всегда одинаков - там где возможны наводки входное сопротивление входных цепей должно быть минимально. Не плохо мелкими конденсаторами по сотне пик обвязать входные ноги МК.
Вот так выглядит подключение
Попробуйте зашунтировать резистор конденсатором, скажем 104. Если не поможет, то оставьте его на месте и уменьшите резистор (только без фанатизма - меньше 1к не надо).
Завтра попробую
Надеюсь это поможет
Вряд ли поможет. Входные цепи монетоприемника надо смотреть. Срабатывает там. Сюда, в ардуину, уже после срабатывания сигнал приходит. Можно попробовать от монетоприёмника к ардуине через резистор 1к сигнал подать, а ногу 3 конденсатором 102 на массу, что бы сделать фильтр импульсных помех.
Простите за глупые вопросы, новичок в этом деле
1к сигнал подать это что?
И ногу конденсатора на массу, это куда?
И если у меня конденсатор с двумя ножками?
У Вас нога D3 UNO подключена к coin напрямую. Провод разорвать и в разрыв вставить резистор 1 кОм. Конденсатор одной ногой на вывод D3 UNO - второй на массу - GND.
Спасибо
Как опробую скажу результат
А по хорошему надо бы подключить осциллоскоп к выходу монетоприемника (при подключенной ардуине) и посмотреть форму и длительность импульса при бросании монеты и когда "водишь монетой"
Вы правы так будет правильней
Но зачем?
Я понимаю что получаю ложные импульсы, даже если я перепрограммирую монетоприемник на другие импульсы, проблема то не уйдет
Мошт у него в скетче ложные импульсы возникают независимо от питания. Или повесил на прерывание и соединил дюпонтом.
В скетче все нормально
Когда отсоединяю монетоприемник, ничего не происходит(как и должно)
А чем плох дюпонт?
Сделал как вы сказали, стало работать лучше, теперь вождение монеты возле приемника игнорируется
Спасибо за совет
Но ложные импульсы все равно срабатывают, когда кто то орудует в соседней розетке или когда я засовываю отвертку подальше в разъем приема монеты
SimpleDude, самый простой способ решить проблему -отказаться от использования прерываний в программе. Иначе нужна капитальная переделка всей аппаратной части.(тотальная экранировка и заземление всего, дополнительные фильтры, все провода в феррит, токовые или дифференциальные соединения для передачи данных и.т.п. )
А чем плох дюпонт?
Тем, что это ненадёжный контакт. Иногда попадается брак и проводок плохо соединён с самим разъемом/контактом дюпонт. Лучше пайка. По крайней мере, чтобы убедиться есть ли проблема в соединении дюпонт.
Благодарю всех за помощь
Очень помогли
Не могли бы подсказать чем я бы мог заменить прерывание?
Просто оно очень удобно в данной ситуации
Можно и не заменять. Достаточно в прерывании ещё раз прочитать порт через небольшую задержку - микросекунд 50 - 100 сделав её с помощью цикла. Если была импульсная помеха, вызвавшая прерывание, то повторное чтение покажет отсутствие сигнала. Если после задержки сигнал есть - то это оно, монетка, можно выставить флаг и в цикле обрабатывать.
Вы правы так будет правильней
Но зачем?
Я понимаю что получаю ложные импульсы, даже если я перепрограммирую монетоприемник на другие импульсы, проблема то не уйдет
Затем, что зная разницу между "правильными" и "неправильными" импульсами будет ясно как с "неправильными" надо бороться.
Ложные - короче. У "правильных" импульсов coin acceptor-a в pulse mode совершенно определенный диапазон длительности, зависящий от mode (fast/medium/slow). Ну, ещё у этих CH-xxx есть режим половинной суммы, который с ума может свести.
Все штуковины, которые имеют контакт с рукой человека следует тестировать на устойчивость к статическим разрядам, которые могут быть накоплены на том самом человеке. Существует ГОСТ на эту тему, где описана энергия разряда(-ов), какую должны выдерживать соотв. устройства.
В простейшем случае для тестов можно использовать пьезозажигалку, касаетесь ее массой корпуса устройства и щелкаете разок. Далее смотрится результат. Результаты бывают разные от полного сбоя устройства до полной нечувствительности. К чему и надо стремиться.
Скажите получилось ли собрать задумку? С Ардуино и монетоприемником
Монетоприемник переводите переключателем NC/NO в положение NO . Сигнальный провод (COIN) от монетника подаем на оптопару. Ну а с оптопары на ардуину. Это классическая схема подключения купюрника/монетника.
Монетоприемник переводите переключателем NC/NO в положение NO . Сигнальный провод (COIN) от монетника подаем на оптопару. Ну а с оптопары на ардуину. Это классическая схема подключения купюрника/монетника.
Всё так, но не совсем. Нужно ещё сверять ширину импульса с диапазоном "правильных" импульсов. Тогда и ложные срабатывания сойдут на нет
На прерываниях не надо ни чего сверять. Ставь на максималку 25мс и вперёд. Ни каких ложных срабатываний ни когда не было. Годами всё работает без сбоев.
Ардуино и монетоприемник питаются с одного источника ? От 12 перешли на 5 в для Ардуино? Схема подключения есть у вас?
Выше указана схема но на ней не видно как от 12вольт сделали 5 продали нас ардуино к какому выходу
На прерываниях не надо ни чего сверять. Ставь на максималку 25мс и вперёд. Ни каких ложных срабатываний ни когда не было. Годами всё работает без сбоев.
Это вы с зависанием устройств не сталкивались. Когда сенсор умирает, становится весело. Особенно когда в связке присутствует хоппер. Я на все устройства ввода/вывода делаю сравнение ширины импульса с заданным диапазоном.
Как минимум, это позволяет выпасть в ошибку и заблокировать приём оплаты ДО внесения платежа, который не засчитается, и тормознуть хоппер, чтобы тот не отстрелял весь бункер монет с сенсором, который внезапно "прилёг на массу".
О каком умершем сенсоре идет речь (где)? Для блокировки устройств купюрник/монетник есть линия INHIBIT. Хопер, это вообще простое устройство, плюнет только когда импульс будет дан. Так что он не может выплюнуть весь бункер при наличии плюса или нуля на управляющем входе при зависании управляющего контроллера. Чтобы зависал (не принимал) купюрник/монетник, я не встречал такого. Они могут только сломаться, вобще не принимать деньги. Но вот чтобы типа завис, выключил/ включил и опять они заработали, такого никогда на практике не было. Так что измерять период импульса - это избыточно. IMHO.
Ясно . А скетч можете скинуть . ?
А какой вам нужен скетч? В двух словах. Вешаете выходы устройств на входы прерывания процессора(через PC817), сами прерывания настраиваите по спаду импульса, в подпрограмме прерывания увеличиваете переменную на +1 у монетника и на +10 у купюрника. Всё.
Скетч нужен. Закидываешь монету потом в течении 30 секунд нажал кнопку без фиксации но чтоб без кнопки действие дальше не шло . После нажатия кнопки чтоб ардуино передал команду на реле
Тогда это вам в "Ищу исполнителя"
подскажите почему
А давайте я лучше подскажу Вам почему никто не станет читать Ваши скетч и разбираться в нём. Потому, что Вы его неправильно вставили. что делает невозможным его обсуждение (если Вас, конечно, не котсроит ответ - ошибка в строке № ХЗ)
где тут ошибка
Ошибка в том, что Вы начали постить на форуме, не прочитав правил создания поста в самой верхней теме раздела "Песочница". Почитайте и попробуйте запостить Ваш вопрос ещё раз.
Пока же на те вопросы, что Вы задали просятся только вот такие ответы:
подскажите почему я не могу загрузить этот скетч
Откуда мне знать почему Вы не можете? Наверное, потому, что не умеете. А может быть Вам мама запретила? А может у Вас ардуины нет и Вам некуда загружать? Никто, кроме Вас не знает, почему Вы не можете.
А вообще, если Вам кто-то сказал, что ардуина - это такая хреновина, с которой можно ничего не зная и не изучая сразу сделать шагающий марсоход, то Вас обманули :-(
где тут ошибка
Какая ошибка? Вы не писали ни про какую ошибку. В чём она выражается? О чём вообще речь?
в строке не знамо какой отсутствует закрывающая фигурная скобка