Подключение Z-2 USB считывателя к Arduino Mega2560

Borland19951207
Offline
Зарегистрирован: 21.06.2017

Значит, что есть. Есть Arduino Mega2560, есть Z-2 USB, подключаю считыватель через преобразователь USB\TTL к Arduino. Все чин чинарем, Питание и землю к питанию и земле, Rx и Tx крест накрест от преобразователя к Arduino. Использую для подключения 18 и 19 пины, то есть Serial1. Подрубаю питание к Arduino, считыватель мигает не переставая зеленым (карты даже рядом нет), в мониторе последовательного порта вижу пустые строки, которые постоянно прибавляются. При подключении как положено к компьютеру работает корректно, в режиме ожидания горит красный, считывая карту мигает зеленым, издает звук. Задача стоит таким образом, считать номер карты и вывести в монитор последовательного порта компьютера. Код стырил из одной из тем форума, но там подключается другой считыватель, поэтому пишу в новой теме. Код ниже. Ссылка на сайт производителя считывателя https://ironlogic.ru/il.nsf/htm/ru_z2usb

char buffer[100];
int i = 0;
 
void setup() {
  Serial.begin (9600);
  Serial1.begin (9600);
}
 
void loop() {
  if(Serial1.available() && i<99) {
    buffer[i++] = Serial1.read();
  }
  buffer[i++]='\0';
  i =0;
  String needBytes = buffer;
  needBytes = needBytes.substring(1,11);
  Serial.println(needBytes);
  
}
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

У Вас код нерабочий (и, кстати, размещен неправильно). 

Очень странно, что с компьютером он "работает корректно".

Подозреваю, что с компьютером Вы его просто особенно не тестировали.

Borland19951207
Offline
Зарегистрирован: 21.06.2017

Почему код нерабочий?
За размещение извиняюсь, не знал, как правильно.
Как раз с компьютером я его хорошо протестировал, компания выпускает программку с помощью которой можног смотреть считанный номер, и он совпадает с номером карты, так что тут мимо. На мой вопрос, как можно подружить Ващ считыватель и Arduino служба поддержки сказала: "Подключение сторонних устройств не исследуем. Рекомендаций дать не могу." Особенность подключения к компьютеру - использование IronLogic протокола Z397_Guard. Вероятно поэтому не могу подключить к контроллеру. Нужно перелопачивать протокол. Может кто занимался этим?

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

Borland19951207 пишет:

Почему код нерабочий?

Так написан.

Зачем Вы завели буфер на 100 байтов, если никогда не заполняете его больше чем одним?

А чаще всего вообще выкидываете на печать пустой буфер.

Цитата:

Как раз с компьютером я его хорошо протестировал...

Ну, если считаете, что Ваш код достаточно протестирован - пользуйтесь. Чего Вы от форума-то хотите?

Borland19951207
Offline
Зарегистрирован: 21.06.2017

Поясните, пожалуйста, почему заполняется одним байтом?
Протестирован не код, а протестирован считыватель и программа на компьютере от IronLogic (не связано с Arduino). От форума хочу, чтобы помогли с подключением к контроллеру.

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

Borland19951207 пишет:

Поясните, пожалуйста, почему заполняется одним байтом?

Потому, что так написали.

Сами распишите, что делает каждая строчка программы.

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