Своеобразное поведение arduino pro micro
Я работаю с микроконтроллером arduino pro и сталкиваюсь со специфической проблемой. Проект, с которым я работаю, также включает в себя arduino MKR NB 1500. Я передаю данные с MKR NB 1500 на arduino pro micro через Serial1(контакты Rx/Tx). Я добавил пример кода, который я использую на обеих платах
программа на arduino MKR NB 1500
void setup() {
Serial1.begin(9600);
}
void loop() {
Serial1.print("printing");
delay(2000);
}
программа в pro micro
#include "Keyboard.h"
void setup() {
Serial1.begin(9600);
Keyboard.begin();
}
void loop() {
Keyboard.write(Serial1.read());
}
Я хотел бы перенести некоторые данные с MKR NB 1500 на pro micro, который эмулирует клавиатуру и печатает данные в редакторе. Я подключаю arduino MKR NB 1500 через USB, используя его собственный USB-порт. Pro micro работает так, как ожидалось, когда я подключаю обе эти платы к USB-портам одного и того же ноутбука. (Вывод: печать, печать, печать, печать)
Однако pro micro выводит значения мусора, когда я подключаю MKR NB 1500 к USB-порту, принадлежащему другому ноутбуку. (Вывод: a10joh<qqj<zstjo)
Есть ли какая-то причина для такого поведения. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация с моей стороны или если я недостаточно ясно выразился.
@sud.ng7, 👍1
Обсуждение1 ответ
Вы должны подключить заземление между модулями. Без общего основания логический уровень сигнала не может быть измерен. Хотя обе платы питались через USB от одного и того же ноутбука, у плат были общие точки соприкосновения.
чтение
возвращает -1, если ничего не доступно, поэтому проверьте, был ли получен какой-либо символ:
void loop() {
if (Serial1.available()) {
Keyboard.write(Serial1.read());
}
}
кстати: MKR также может эмулировать клавиатуру с помощью библиотеки клавиатур.
- Могу ли я использовать PL2303 USB to TTL Последовательный конвертер Модуль отправки нажатия клавиш с помощью Arduino nano?
- Arduino Pro Micro, получить данные с контакта Tx?
- Максимальная последовательная скорость CH340
- Отправка мультимедийных клавиш клавиатуры с помощью библиотеки клавиатур
- Можно ли загрузить скетч Arduino через последовательный порт (RX) вместо USB?
- Может ли Arduino Leonardo одновременно использовать USB-порт и последовательные контакты RX TX?
- Внешнее питание 5 В и последовательный порт USB
- Можно ли использовать Serial.print(сообщение), когда USB-кабель не подключен к хост-компьютеру?
Вы соединили территорию? Также вам следует проверить Serial1.available() на pro micro., @Majenko
Спасибо вам за ваш ответ. Подключение оснований, похоже, работает, я проведу еще несколько тестов. Не могли бы вы, пожалуйста, сообщить мне, почему это так. Я новичок в работе с arduino, это было бы полезно в будущем., @sud.ng7
https://majenko.co.uk/blog/our-blog-1/the-importance-of-sharing-grounds-12, @Majenko
если (Сериал1.доступно())
отсутствует. MKR также может эмулировать клавиатуру. с той же библиотекой, @JurajЯ подключаю собственный USB-порт на плате MKR к сканеру штрих-кодов. Плата MKR в этом случае действует как USB-хост, в результате я не могу использовать плату MKR для эмуляции клавиатуры., @sud.ng7
Данные, которые я хотел бы передать в pro micro, поступают со сканера штрих-кодов., @sud.ng7
`Соединение оснований, кажется, работает, я сделаю еще несколько тестов. Не могли бы вы, пожалуйста, сообщить мне, почему это так"... это проблема с электрической цепью ... ожидали бы вы, что лампочка загорится, если бы вы подключили только один провод между лампочкой и батареей?, @jsotola
Заземление является точкой отсчета для микроконтроллеров для измерения и вывода напряжения. Фактическое место их заземления (как электрический потенциал) может отличаться, поэтому выходное напряжение другого микроконтроллера не будет иметь большого смысла. При подключении заземления вы убедитесь, что оба микроконтроллера используют одну и ту же точку отсчета и, таким образом, могут общаться друг с другом, @chrisl
вы можете использовать сканер штрих-кодов с интерфейсом SPI, @Juraj