Подключение Arduino UNO к детектору банкнот

Всем привет :wave: Пару дней пытаюсь подключить детектор купюр к Arduino UNO. Что именно пытаюсь сделать:
Когда детектор считывает купюру, он выводит ее номинал на свой экранчик. Мне нужно с помощью Arduino как-то перехватывать/считывать с платы детектора это число.

У детектора весь вывод информации происходит на отдельную маленькую плату, на которой находятся 3 семисегментных индикатора и микросхема TM1624. Эта плата подключена 8-контактным шлейфом к основной плате детектора.

С чего начать, что посоветуете? Я этим впервые занимаюсь. Разобрался как работает протокол SPI, теория в целом понята. И как прочитал, на многих микросхемах не всегда используется полноценный протокол - произодители часто урезают или видоизменяют его. Почитал (первый в моей жизни) datasheet к этой микросхеме TM1624 - что-то понял, что-то еще пытаюсь понять… каждый день понемногу что-то новое проясняется. Все усложняется тем, что документация на китайском :confounded: … приходится еще сидеть переводить…
Написано в документации - последовательный интерфейс (CLK,STB,DIN,DOUT). Это же SPI - верно понимаю? Подскажите, как правильней реализовать данную задачу - считывать можно бинарные данные прямо со шлейфа? Или же лучше с выходов самого микроконтроллера?


А это не одна и та же цепь? В чем разница-то?

модель какая?
сделай фотку основной платы, может там компорт найдется.

Модель: DORS 200



Внутри корпуса еще третья плата, к которой подключается питание 220. Полагаю она не особо интересна.. наверно, управляет питанием и приводами.

На фото 1 вверху слева не RJ-45 случаем?

Ага, RJ-45. И служит, как понимаю, для заливки обновлений детектора.

под бумажкой, на микрухе читаемо название?

Что-то разобрать можно

с нувотонами я дело не имел, но судя по даташиту ноги 13 и 14 это ComPort и идут они на тот самый разъем RJ

туда надо тыкатся USB-COM переходником, смотреть может там выхлоп есть, помимо того что его и шьют через него.

2 лайка

xDriver, Спасибо большое! :raised_hands: Да, посмотрел - 13 и 14 ноги микросхемы ведут к RJ разъему.

Заранее извиняюсь за вопрос - возможно он нелепый, т.к. я этими вещами никогда не занимался:
:question: есть ли смысл пытаться получать данные отсюда? Просто подключаясь к самой плате с семисегментными индикаторами я еще понимаю для чего это пытаюсь сделать - туда поступают те данные, которые отображения на экране, которые мне как раз нужны ) А какие данные входят/выходят от микрухи нувотона не совсем понятно - тем более они идут к RJ разъему, который служит для заливки обновлений. Следовательно, когда сканируется купюра, вряд ли в ту сторону от 13,14 контактов поступают данные. Или я не правильно понимаю суть происходящего? :thinking:

этого не знает никто кроме разрабов, я предложил “мягкий” путь, авось прокатит, нет тогда уж ломать SPI или чего там накручено на драйвере индикаторов, но такая себе затея.
молодежь ставит камеру и занимается распознаванием образов, хоть на PC хоть на ESP.
удачи.

У СОМ порта много разных функций. Обновление ПО одна из них но не главная. Как раз чтение данных от прибора это первично. По этому подключайте переходник COM-USB и ловите свои цифры. На каждый номинал, будет одна и та же последовательность байт передаваемых в порт. Ищите какой байт меняется, по нему и узнаёте номинал купюры. Скорость порта подберите экспериментально, или из инструкции к аппарату.

Благодарю за разъяснение :handshake:
Это вроде бы работает, что-то выводится! :+1: Подключил YP-05 как COM-USB переходник. RX подключил к TX детектора, GND к GND. Запустил Arduino IDE, прокатил несколько купюр - в мониторе такие кракозября.. :thinking: Перепробовал все скорости в мониторе порта от 300 baud до 2000000 - это мне пока не помогло.


Надо логический анализатор подключить и там измерить скорость и посмотреть полярность посылок.

Если выбрана не правильная скорость порта, то вы будете получать на одном номинале купюры разную последовательность байт. Перебирая скорость порта, просто добейтесть стабильной информации по данным. Это и будет скорость. Она должна оставаться стабильной для всех номиналов. Обычно проектировщики выбирают 9600 или 115200 редко промежуточные между данными скоростями. И смотреть надо не в текстовом виде а в битовом (HEX формате) подключив ваш переходник напрямую к компьютеру используя сторонний монитор порта (не ардуиновский) и потом анализировать в обычном текстовом редакторе. И только когда найдёте закономерность переходить к ардуине.

1 лайк

А часто ли используют другой формат, нежели 8-N-1 ? Может есть смысл и тут похимичить?
А вообще, протокол может быть таким, что сначала некий обмен меж устройств происходит для инициализации, и только потом полезная информация. Соответственно, сразу данные о купюре могут и не идти.

@SAB правильно предположил, ни кто не будет писать кириллицей “я проглотил 100 рублей”, там все в хексе.
надо добиться стабильных данных, хотя если алгоритм хитрожопый вряд ли, и только потом совать другую купюру и смотреть различия.

А там не может быть шифрования? все-таки деньги? чтоб данные не подменили по дороге.

Хотя это только досужие мысли, как кое-кто верно подметил, я в железе чайник

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

да ладно, хватит тебе…я жеж ласково так :smile: