Здравствуйте, из за нехватки памяти нужно к одному модулю SIM800 подключить 2 ардуино нано. Я просто подключаю параллельно ардуино и на обеих отслеживаю и анализирую команды и... метод не работает. по отдельности всё работает но вот вместе какой то конфликт. Есть какие-нибудь соображения? Ниже код анализа команд.
C++:
void loop(){
if (SIM800.available()) { // Если модем, что-то отправил...
response = waitResponse(); // Получаем ответ от модема для анализа
}
if (Serial.available()) { // Ожидаем команды по Serial...
SIM800.write(Serial.read()); // ...и отправляем полученную команду модему
}
}
String waitResponse() { // Функция ожидания ответа и возврата полученного результата
String _resp = ""; // Переменная для хранения результата
long _timeout = millis() + 10000; // Переменная для отслеживания таймаута (10 секунд)
while (!SIM800.available() && millis() < _timeout) {}; // Ждем ответа 10 секунд, если пришел ответ или наступил таймаут, то...
if (SIM800.available()) { // Если есть, что считывать...
_resp = SIM800.readString(); // ... считываем и запоминаем
}
else { // Если пришел таймаут, то...
Serial.println("Timeout..."); // ... оповещаем об этом и...
}