Подключение сканера штрих кодов к микроконтроллеру

rene
Offline
Зарегистрирован: 21.01.2014

Доброго времени суток!

Помогите разобраться, есть такой девайс:

Работает по RS232, но к нему подключен serial to usb конвертор, в ПК определяется как виртуальный COM порт. Сканнер очень простой, при сканировании кидает пакет символов ASCI, которые без труда отображаются в любой терминальной программе.

Задача встала принять этот пакет в МК Ардуино nano. С ходу подключить к аппаратному порту МК не получилось, решил разобраться с какого контакта USB разъема вообще необходимо собирать данные. Подключил девайс таким вот образом:

Но осциллограф не фиксирует никаких сигналов не с контакта D0, не с D1. Понимаю что делаю что то не так, но похоже мне опыта не достает. Может кто что подсказать по данному вопросу?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Нужно либо снимать сигнал непосредственно с последовательного порта (только в ТТЛ-уровнях), либо подключать к Ардуине через USB-хост.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

sadman41
Offline
Зарегистрирован: 19.10.2016

rene пишет:

Задача встала принять этот пакет в МК Ардуино nano.  

Может кто что подсказать по данному вопросу?

https://ru.aliexpress.com/store/product/RS-232-module/1950989_3253093314...

DB9 в RS232, пины - в нану, в нане SoftwareSerial, в SoftwareSerial-е - char-ы.

rene
Offline
Зарегистрирован: 21.01.2014

Что то я совсем запутался. Получается у последовательного порта есть 2 реализации: RS232 и TTL и они не совместимы? Поскольку у меня сканер питается от собственного БП на 5 вольт, значит это TTL и если я воткну этот сканер в стандартный com порт ПК, сканер работать не будет, более того, я вероятно его спалю, поскольку RS232 подразумевает сигналы на уровне 12 вольт? А если мне в руки попадется старый сканер подключаемый к com порту, то я спалю МК, если не использовать конверторы предложенные sadman41?

А если у моего сканера свой источник питания, необходимо использовать гальваническую развязку?

rene
Offline
Зарегистрирован: 21.01.2014

andriano пишет:

Нужно либо снимать сигнал непосредственно с последовательного порта (только в ТТЛ-уровнях), либо подключать к Ардуине через USB-хост.

А можно подробнее про USB хост?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

1. Передача данных подразумевает протокол. У протокола есть логическая и физическая организация. Логическая совпадает, т.е. последовательность нулей и единичек одинаковая, а физическася - нет: нулю или единице соответствуют различные либо уровни, либо физические единицы.

2. https://ru.aliexpress.com/item/1-USB-Host-emartee-ADK-Arduino-V2-0-UNO-Mega-1280/32842987579.html

rene
Offline
Зарегистрирован: 21.01.2014

Спасибо, вот теперь начало доходить.