Отправьте несколько значений из Arduino Uno в nodeMCU, используя последовательный порт.

Я хочу отправить данные семи датчиков из Arduino Uno в nodeMCU. Но по серийнику я могу отправить только один. Как отправить все 7 одновременно с синхронизацией времени между обоими устройствами.

, 👍0

Обсуждение

как 1,2,3,4,5,6,7?, @Juraj


1 ответ


1

Вы отправляете значения одно за другим. Последовательный порт (UART) имеет буфер. Таким образом, вы можете отправить на устройство несколько байтов; там байты хранятся в буфере, пока вы их не извлечете.

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

Пример

                                          Arduino Uno        nodeMCU 
                                         Your     UART     UART   Your
                                        Program  Buffer   Buffer Program
                                        ------- --------  ------ --------
Uno: Write byte                         1
Uno: UART library                                1
Uno: Write byte                         2
Uno: UART library                                1,2
UART devices (asynchronous)                      2        1
nodeMCU: Read byte(s)                            2               1
Uno: Write byte                         3
Uno: UART library                                2, 3
UART devices (asynchronous)                               2,3    
nodeMCU: Read byte(s)                                            2, 3

Выше приведен лишь пример: вы читаете/записываете только байты, связь между буферами и по линии UART является асинхронной.

,

как справиться с этим с помощью кода?? я здесь новенький, @Ruhul Remon

Просто используйте функции чтения/записи, как в https://www.arduino.cc/reference/en/language/functions/communication/serial/... Остальное будет обработано автоматически, просто убедитесь, что вы читаете байты достаточно быстро. , убедившись, что буферы не переполнятся., @Michel Keijzers