;isizeof(laserON);
- это не какой-то обычный код C, который я знаю.Вы можете попробовать заменить его на i < sizeof(laserON)
, это по крайней мере исправит ваш цикл.
Serial.write(buf, len)
действительно лучше, и вы, вероятно, захотите написать Serial.write(&laserON[0], sizeof(laserON))
Если выХотите подтвердить, что байты отправлены правильно: используйте область или другой адаптер UART, чтобы прочитать отправленные вами данные и подтвердить, являются ли байты отправленными вами байтами.Если с этим возникнут какие-либо проблемы, обновите ваш пост.
У Arduino Leonardo не более одного UART .Ваша проблема с тем, что вы ничего не видите при прямом подключении к pin 1
:
На Uno, Nano, Mini и Mega контакты 0 и 1 используются для связи с компьютером.Подключение чего-либо к этим контактам может помешать этому общению, в том числе вызвать неудачную загрузку на плату.
То же самое, вероятно, относится к Леонардо, так как он довольно похож.Вам придется использовать другую плату Arduino или программный UART, если вы хотите общаться с другим устройством.Другой вариант - использовать шину с двойным SPI или одной шиной I2C с микросхемой расширения UART, например MAX14830 .
. Не знаю, почему Serial1
компилируется на вашей платформе, может быть, ваши настройки платы там, гденеправильно в Arduino IDE и чип достаточно похож для компиляции / прошивки / работы.В качестве меры отладки вы можете закомментировать разделы Serial
и протестировать его, а затем отменить его, раскомментировав Serial
и комментировав Serial1
.