Отправка значения с одного Arduino на другой
Интересно, можно ли отправить значение с одного Arduino на другое?
По сути, у меня есть один Arduino, измеряющий, скажем, вес, но я хочу отобразить это значение с помощью ЖК-дисплея в другом Arduino. Можно ли отправить значение на вывод с помощью аналоговой записи или цифровой записи в Arduino, выполняющем измерение, и использовать аналоговое/цифровое чтение в другом Arduino, производящем отображение?
Я не знаю, возможно ли это, но что привлекательно, так это то, что можно иметь несколько ардуино, производящих измерения веса, и все они будут отображаться на дисплее только одного центрального...
@Camilo, 👍5
3 ответа
Лучший ответ:
Вы можете сделать ЖК-контроллер Arduino ведущим устройством I2C, а все платы Arduino для взвешивания — ведомыми устройствами. Здесь приведен пример связи и подключения ведущего/ведомого устройства: https://www.arduino.cc/en/Tutorial/MasterReader.
I2C поддерживает до 128 устройств, подключение очень простое.
Да, это возможно. В ответе представлен один из основных способов сделать это.
Соединения
Arduino1 Arduino2
TX--------------->RX
RX--------------->TX
Программа Arduino1:
void setup(){
Serial.begin(9600);
delay(2000);
}
void loop() {
////считываем данные датчика в переменную
Serial.println(sensorDataVariable);
delay(2000); //Не заливать последовательный порт
}
Программа Arduino2:
int byteRead;
void setup(){
Serial.begin(9600);
delay(2000);
}
void loop() {
/* check if data has been sent from the computer: */
while (Serial.available()) {
/* read the most recent byte */
byteRead = Serial.read(); //теперь byteRead будет иметь последний датчик
// данные отправлены с Arduino1
}
//Напишем код для отображения значений на ЖК-дисплее
}
надеюсь, это поможет
Будет ли этот вариант ограничен только двумя Arduino? Мне бы хотелось, чтобы несколько Arduino передавали значения веса центральному Arduino., @Camilo
вы можете использовать эскиз Arduino 2 на всех других приемниках, широко использовать форму одного Arduino и получать от многих, вам следует провести больше исследований, @Lokanath
Как мы можем этого добиться, если нам хотелось бы сделать наоборот? Arduino 2 отправляет данные в Arduino 1., @Sabhay Sardana
Чтобы связать несколько Arduino вместе, вам необходимо придумать какую-то сетевую топологию и какой-то сетевой протокол.
Требования:
- Ардуино не должны (электрически) мешать друг другу.
- Должен быть какой-то способ узнать, какой Arduino что и куда отправляет
Эти две проблемы можно решить, создав отдельное соединение для каждого Arduino, но это в конечном итоге усложняется, и ресурсы Arduino для создания таких соединений ограничены (вам действительно нужно использовать аппаратные порты UART, а Uno имеет только 1. У Меги их 4).
Лучшее решение — использовать шинную систему (также известную как многоабонентская сеть). Для этого существует ряд существующих и хорошо поддерживаемых методов. В автомобильной системе используется CAN-шина. В промышленности широко используется система RS-485.
Лично я предпочитаю RS-485, поскольку он хорошо зарекомендовал себя. Существует ряд стандартных протоколов, работающих на RS-485, например MODBUS, но для мира Arduino я написал свой собственный легкий протокол, с которым гораздо проще работать. Вы можете узнать больше здесь: https://github.com/MajkoLibraries/ICSC
- Потенциометр отображает только аналоговое значение напряжения 1023 в proteus
- Связь между 2 платами arduino
- Не удается заставить Wi-Fi модуль esp8266-12 всегда точно считывать входящее напряжение analogRead
- Как масштабировать сигнал от 0 до 5 В до -5 В до +5 В?
- Печать string and integer LCD
- Как заставить Arduino взаимодействовать с тремя другими Ардуино?
- Как вывести истинное аналоговое напряжение на выходной контакт
- Основная связь Arduino ModBus RTU с проблемой измерителя мощности
Именно то, что я тоже искал, спасибо!, @BrandonS