Монетоприемник ch-925
- Войдите на сайт для отправки комментариев
Привет, какое-то время назад приобрел китайский монетоприемник ch-925, уже многим знакомый, поигравшись, понял что не сможет решить задачу, отложил в сторону. И вот снова решил поиграться, подключил по той же схеме, настроил по инструкции, монеты определяет правильно, слева на мини экране появляется кол-во импульсов которое должно быть отправлено, вроде как все ок, но проблема заключается в том что эти импульсы не доходят до ардуино. Код:
#define COIN_PIN 2 volatile int pulses = 0; volatile long timeLastPulse = 0; void setup() { Serial.begin(9600); Serial.println("Ready..."); pinMode(COIN_PIN, INPUT); attachInterrupt(0, coinInserted, RISING); } void coinInserted() { pulses++; timeLastPulse = millis(); } void loop() { long timeFromLastPulse = millis() - timeLastPulse; if (pulses > 0 && timeFromLastPulse > 500) { Serial.print(pulses); Serial.println(" pulses"); pulses = 0; } }
В мониторе вижу только надпись "Ready..." больше ничего не происходит. Монеты распознает правильно, на своем мини экране пишет кол-во импульсов (05 в моем случае) но импульсы не отправляет. Пробовал сброс настроек монетоприемника, перепрограммировал несколько раз, поведение аппарата нормальное но импульсов нет. Подключено все правильно, использую адаптер 12в 1а, серый провод в воздухе, белый на пине 2, с резистором и без эффект тот же. пробовал на 2х ардуино. Кто сталкивался с этим девайсом, есть ли идеи?
Вы написали две противоречивые фразы:
проблема заключается в том что эти импульсы не доходят до ардуино.
...
импульсы не отправляет.
Первый вопрос - не доходят или не отправляет? Вы измеряли на выходе девайса сигнал? Он там есть? Какой? Или его на выходе нет? Измерьте - этим Вы локализуете проблему.
Есть сомнения в правильности подключения. Например, Вы ничего не сказали о земле. Земля девайса и ардуины должна быть единой.
Никаких резисторов на сигнальном проводе (и на сером тоже). Ни пул-ап, ни пул-даун - никаких.
Серый провод подключите на второе прерывание и выводите что-нибудь про его сигналы тоже - это поможет в отладке. Вы же знаете для чего он?
Кто сталкивался с этим девайсом, есть ли идеи?
Вы дали слишком мало информации для идей. Я так и не понял, Вы прежде, чем подключать к ардуино, замеряли сигнал на выходе устройства? Это обязательно надо делать (а вдруг он Вам все 12В шарахнет, хотя и не должен бы). Возьмите осциллограф и замерьте.
У меня проблема была такая: сигнал был, но маленький (не помню, 0.7В или 1.7В типа того). А ардуине для того, чтобы она надёжно восприняла HIGH нужно 3В или в некоторых случаях даже 3,5. Я не стал разбираться почему сигнал такой маленький и правильно ли это, а просто усилил его операционным усилителем и прибор стал отлично работать.
Код вроде нормальный, только я бы в строке 20 поставил 600 вместо 500, т.к. максимальное время распознавания 600 мс.
Благодарю за ответ. Попытаюсь описать ситуацию лучше. Земля у монетоприемника и у ардуино подключены вместе, не посчитал нужным упонимать т.к. это вещи само собой разумеющиеся. Белый провод был подключен и использован в трех вариантах 1. резистор 4.7к на 5в от ардуино 2. на землю как пулдаун соответственно 3. напрямую без резистора (т.к. гугл показал много вариаций подключения сего чуда на прямую то не боялся что жахнет 12в). На этом форуме были вопросы другого плана но по данному монетоприемнику и были разные схемы подключения, пробовал их все, без результата. На счет серого провода как говорит инструкция это для счетчика заброшенных монет. Осциллографа с сожалению нет, я сам не электрик по этому приобретать его для одноразовых ситуаций не вижу смысла. Попробовал немного иначе, белый провод и серый поочередно подключил к аналоговым пинам используя analogRead попытался считать значения при дропе монеты и в простое, все тесты были опробованы при разных положениях переключателей на монетоприемнике NC/NO и FAST/MED/SLOW. Результат 0 на выходе во всех случаях. Монетоприемник продолжает показывать при дропе 05 на своем экране, но не отправляет импульсы, поведение девайса с виду обычное, коннектор и провода в полном порядке, если бы что-то было не на своем месте то он бы и не включился по идее. Даже разобрал девайс, внутри все цело нет ни перегоревших ни сломанных элементов. За долгое время поиска на англо и русскоязычных форумах не нашел ничего по этому прошу помощи/идеи тут. Какие еще детали я могу описать?
Заочно ничего сказать не могу. Скетча, которым Вы проверяли наличие сигнала не вижу, потому тоже ничего сказать не могу
А осциллограф, хоть самый простенький, игрушечный (например, dso138 стоимостью в копейки) приобретите всё же. Выручит не раз, и не два.
Скетч копипаст из сайта ардуино.цц:
Пробовал на A0, A1. Перед подключением провода от монетоприемника, замыкал A0 на 3.3 и 5в на ардуино для проверки показаний.
Далее заменил провод на монетоприемнике уже на самый крайний случай.
Сам монетоприемник программируется, определяет монеты правильно, похожие монеты тоже определяет правильно.
Единственная идея которая пришла это настроить его на номинал только одной монеты и подключиться к лэд который мигает когда "правильная" монета вставлена. Дальше уже по состоянию лампочки ардуино будет знать что был дроп монеты, а зная что номинал только один, тут легко и посчитать сумму. Не удобно но другого варианта не вижу как использовать его.
выложите схему подключения может разберемся, сам с этим боролся с cashcode в импульсном режиме, как оказалось неправильно подключал.
Уже пробовал по этой схеме, разницы нет.
У меня подключено в данный момент так же практически, разница только что серый провод я не замыкаю с GND и использовал пин 2 а не 3. Но роли это не играет.
После продолжительных без успешных попыток получить импульсы, всё-таки настроил на 1 номинал монеты. Подпаял проводок к + светодиода который мигает при проглоте монеты. Подключил проводок к аналоговому пину на прямую (естественно проверив нет ли на проводе 12в;) ), когда светодиод светится в простое монетоприемника, значение сигнала в районе 400 (~ 1.9в). При забросе светодиот выключается и на пине имеем 770 значение. Если кому-нибудь подойдет такое решение проблемы, вот код:
При задержке в 200 мс, как бы я быстро не забрасывал монеты, определяет правильное кол-во.
Пока будет работать так. Если в будущем у кого-нибудь будет данная проблема пожалуйста напишите как вы ее решили.
Стоп одна поправка на счет вашей схемы, у вас она неправильная, монетоприемник питается от 12в а не от 5.
(~ 1.9в)
Это примерно о чём я Вам писал вчера. У меня были сигналы порядка 1.7. Но я не парился с аналоговым входом, а усилил их операционным услителем и спокойно подавал на цифровой
Прошу заметить эти 1.9в не от белого провода от которого должны получать импульс, а от моего припаяного к светодиоду.
Вот так в итоге получилось, надеюсь будет видно хорошо после загрузки, что написано на фотографии:
(перезалил фотографию, в итоге не понятно было )) )
Я понимаю, что способ извращенческий, но как бы я не подключал этот девайс, импульсы я не получаю от монетоприемника. Подключившись к + светодиода хотя бы получится работать с один номиналом. Пока на руках нет более "нормального" девайса на замену этому, можно пользоваться. Если у кого-нибудь будет идеи пишите тут, пусть и работает но тема будет всегда актуальна, ибо в интернете не видел даже такого "временного" решения этой проблемы.
А у меня импульсы были тапи 1.7