Приветствую! У меня к вам такой вопрос: Как узнать количество подключенных плат на данный момент, которые подключены через UART. То есть я знаю точно что например сейчас я подключил 3 платы, но мне надо чтобы это число 3 была видна в SerialMonitor или просто чтобы сохранялась в какую нибудь переменную. На всех ардуинок должен быть один и тотже код программы. Вот код которыи загружен на платах на данный момент: #include <SoftwareSerial.h>
int incoming = 0; int incoming1 = 0; int analogValue = 0; int count_device = 0; int val;
void setup() { Serial.begin(9600); //Begin Serial to talk to the Serial Monitor Serial_1.begin(9600); //Begin Serial to talk to the Rx Arduino Serial.print("Количество подключенных плат: " Serial.println(count_device); }
void loop() { analogValue = analogRead(0); //Считаем данные с потенциометра
/* Через Serial Monitor отправляем число которая означает номер платы ...ЕщёПриветствую! У меня к вам такой вопрос: Как узнать количество подключенных плат на данный момент, которые подключены через UART. То есть я знаю точно что например сейчас я подключил 3 платы, но мне надо чтобы это число 3 была видна в SerialMonitor или просто чтобы сохранялась в какую нибудь переменную. На всех ардуинок должен быть один и тотже код программы. Вот код которыи загружен на платах на данный момент: #include <SoftwareSerial.h>
int incoming = 0; int incoming1 = 0; int analogValue = 0; int count_device = 0; int val;
void setup() { Serial.begin(9600); //Begin Serial to talk to the Serial Monitor Serial_1.begin(9600); //Begin Serial to talk to the Rx Arduino Serial.print("Количество подключенных плат: " Serial.println(count_device); }
void loop() { analogValue = analogRead(0); //Считаем данные с потенциометра
/* Через Serial Monitor отправляем число которая означает номер платы с которой хотим получить данные. Например у меня подключено 3 платы. К каждой плате подключен один потенциометр к аналоговуму входу 0. Через Serial Monitor я отправляю например число 2. Это означает что я хочу получить данные с потенциометра который подключен ко второй плате. */ incoming = Serial.available();
while (incoming != 0) { nr_device_out = Serial.parseInt(); // В начале в переменную nr_device_out попадает число 2.
nr_device_out--; // Декрементируем. 2 - 1 = 1 if (nr_device_out == 0) // Число 1 не равна нулю, значит через SoftwareSerial передаем число 1 к второй плате. { /* Получаем данные с потенциометра который подключен к ардуино с номером которого послали через Serial Monitor, в нашом случае со второй платы. */ Serial.println(analogValue); } else{ Serial_1.print(nr_device_out); // передаем число 1 к второй плате через SoftwareSerial. } incoming = Serial.available(); }
// From the Rx Arduino incoming1 = Serial_1.available(); // Получаем данные со второй платы
while(incoming1 != 0) //While there is something to be read {
Serial.write(Serial_1.read()); // Выводим значение потенциометра, который подключен к второй платы. incoming1 = Serial_1.available(); } } И вот я хочу чтобы в переменную count_device попало число, которая означает количество подключенных плат на данный момент. ВОПРОС: Как вычислить количество подключенных плат, которые соединены между собой через UART ?
сделать что то типа широковещательно запроса на который должны отвечать каждая плата и указывать свой номер. Запрос делается периодично через например 5 минут .Дальше можно посчитать кол-во. При условии что у вас есть таймер.
Мы используем cookie-файлы, чтобы улучшить сервисы для вас. Если ваш возраст менее 13 лет, настроить cookie-файлы должен ваш законный представитель. Больше информации
Комментарии 3
количество подключенных плат на данный момент, которые подключены через
UART. То есть я знаю точно что например сейчас я подключил 3 платы, но
мне надо чтобы это число 3 была видна в SerialMonitor или просто чтобы
сохранялась в какую нибудь переменную.
На всех ардуинок должен быть один и тотже код программы.
Вот код которыи загружен на платах на данный момент:
#include <SoftwareSerial.h>
SoftwareSerial Serial_1 = SoftwareSerial(2,3); //Rx , Tx
int incoming = 0;
int incoming1 = 0;
int analogValue = 0;
int count_device = 0;
int val;
void setup()
{
Serial.begin(9600); //Begin Serial to talk to the Serial Monitor
Serial_1.begin(9600); //Begin Serial to talk to the Rx Arduino
Serial.print("Количество подключенных плат: "
Serial.println(count_device);
}
void loop()
{
analogValue = analogRead(0); //Считаем данные с потенциометра
/* Через Serial Monitor отправляем число которая означает номер платы ...ЕщёПриветствую! У меня к вам такой вопрос: Как узнать
количество подключенных плат на данный момент, которые подключены через
UART. То есть я знаю точно что например сейчас я подключил 3 платы, но
мне надо чтобы это число 3 была видна в SerialMonitor или просто чтобы
сохранялась в какую нибудь переменную.
На всех ардуинок должен быть один и тотже код программы.
Вот код которыи загружен на платах на данный момент:
#include <SoftwareSerial.h>
SoftwareSerial Serial_1 = SoftwareSerial(2,3); //Rx , Tx
int incoming = 0;
int incoming1 = 0;
int analogValue = 0;
int count_device = 0;
int val;
void setup()
{
Serial.begin(9600); //Begin Serial to talk to the Serial Monitor
Serial_1.begin(9600); //Begin Serial to talk to the Rx Arduino
Serial.print("Количество подключенных плат: "
Serial.println(count_device);
}
void loop()
{
analogValue = analogRead(0); //Считаем данные с потенциометра
/* Через Serial Monitor отправляем число которая означает номер платы с которой хотим получить данные.
Например у меня подключено 3 платы. К каждой плате подключен один потенциометр к аналоговуму входу 0. Через Serial Monitor
я отправляю например число 2. Это означает что я хочу получить данные с потенциометра который подключен ко второй плате.
*/
incoming = Serial.available();
while (incoming != 0)
{
nr_device_out = Serial.parseInt(); // В начале в переменную nr_device_out попадает число 2.
nr_device_out--; // Декрементируем. 2 - 1 = 1
if (nr_device_out == 0) // Число 1 не равна нулю, значит через SoftwareSerial передаем число 1 к второй плате.
{
/*
Получаем данные с потенциометра который подключен к ардуино с номером которого послали через Serial Monitor, в нашом случае со второй платы.
*/
Serial.println(analogValue);
}
else{
Serial_1.print(nr_device_out); // передаем число 1 к второй плате через SoftwareSerial.
}
incoming = Serial.available();
}
// From the Rx Arduino
incoming1 = Serial_1.available(); // Получаем данные со второй платы
while(incoming1 != 0) //While there is something to be read
{
Serial.write(Serial_1.read()); // Выводим значение потенциометра, который подключен к второй платы.
incoming1 = Serial_1.available();
}
}
И вот я хочу чтобы в переменную count_device попало число, которая означает количество подключенных плат на данный момент.
ВОПРОС: Как вычислить количество подключенных плат, которые соединены между собой через UART ?