Всем привет Пару дней пытаюсь подключить детектор купюр к Arduino UNO. Что именно пытаюсь сделать:
Когда детектор считывает купюру, он выводит ее номинал на свой экранчик. Мне нужно с помощью Arduino как-то перехватывать/считывать с платы детектора это число.
У детектора весь вывод информации происходит на отдельную маленькую плату, на которой находятся 3 семисегментных индикатора и микросхема TM1624. Эта плата подключена 8-контактным шлейфом к основной плате детектора.
С чего начать, что посоветуете? Я этим впервые занимаюсь. Разобрался как работает протокол SPI, теория в целом понята. И как прочитал, на многих микросхемах не всегда используется полноценный протокол - произодители часто урезают или видоизменяют его. Почитал (первый в моей жизни) datasheet к этой микросхеме TM1624 - что-то понял, что-то еще пытаюсь понять… каждый день понемногу что-то новое проясняется. Все усложняется тем, что документация на китайском … приходится еще сидеть переводить…
Написано в документации - последовательный интерфейс (CLK,STB,DIN,DOUT). Это же SPI - верно понимаю? Подскажите, как правильней реализовать данную задачу - считывать можно бинарные данные прямо со шлейфа? Или же лучше с выходов самого микроконтроллера?
xDriver, Спасибо большое! Да, посмотрел - 13 и 14 ноги микросхемы ведут к RJ разъему.
Заранее извиняюсь за вопрос - возможно он нелепый, т.к. я этими вещами никогда не занимался: есть ли смысл пытаться получать данные отсюда? Просто подключаясь к самой плате с семисегментными индикаторами я еще понимаю для чего это пытаюсь сделать - туда поступают те данные, которые отображения на экране, которые мне как раз нужны ) А какие данные входят/выходят от микрухи нувотона не совсем понятно - тем более они идут к RJ разъему, который служит для заливки обновлений. Следовательно, когда сканируется купюра, вряд ли в ту сторону от 13,14 контактов поступают данные. Или я не правильно понимаю суть происходящего?
этого не знает никто кроме разрабов, я предложил “мягкий” путь, авось прокатит, нет тогда уж ломать SPI или чего там накручено на драйвере индикаторов, но такая себе затея.
молодежь ставит камеру и занимается распознаванием образов, хоть на PC хоть на ESP.
удачи.
У СОМ порта много разных функций. Обновление ПО одна из них но не главная. Как раз чтение данных от прибора это первично. По этому подключайте переходник COM-USB и ловите свои цифры. На каждый номинал, будет одна и та же последовательность байт передаваемых в порт. Ищите какой байт меняется, по нему и узнаёте номинал купюры. Скорость порта подберите экспериментально, или из инструкции к аппарату.
Благодарю за разъяснение
Это вроде бы работает, что-то выводится! Подключил YP-05 как COM-USB переходник. RX подключил к TX детектора, GND к GND. Запустил Arduino IDE, прокатил несколько купюр - в мониторе такие кракозября.. Перепробовал все скорости в мониторе порта от 300 baud до 2000000 - это мне пока не помогло.
Если выбрана не правильная скорость порта, то вы будете получать на одном номинале купюры разную последовательность байт. Перебирая скорость порта, просто добейтесть стабильной информации по данным. Это и будет скорость. Она должна оставаться стабильной для всех номиналов. Обычно проектировщики выбирают 9600 или 115200 редко промежуточные между данными скоростями. И смотреть надо не в текстовом виде а в битовом (HEX формате) подключив ваш переходник напрямую к компьютеру используя сторонний монитор порта (не ардуиновский) и потом анализировать в обычном текстовом редакторе. И только когда найдёте закономерность переходить к ардуине.
А часто ли используют другой формат, нежели 8-N-1 ? Может есть смысл и тут похимичить?
А вообще, протокол может быть таким, что сначала некий обмен меж устройств происходит для инициализации, и только потом полезная информация. Соответственно, сразу данные о купюре могут и не идти.
@SAB правильно предположил, ни кто не будет писать кириллицей “я проглотил 100 рублей”, там все в хексе.
надо добиться стабильных данных, хотя если алгоритм хитрожопый вряд ли, и только потом совать другую купюру и смотреть различия.
может и скорее всего есть, главное чтоб оно было не плавающее, ну например, берется милисс с начало включения, принимается за ключ, этот ключ кладется в начале посылки, а остальные данные ксорятся им - банкнота одна, посылка всегда разная.