есть сигнал обрыва, только один датчин на один пин
Код: Выделить всё
bool find_signal(byte *find_data, byte condition)
{
//byte j;
for (byte j=0; j<8; j++)
{
if (find_data[j] == condition) return true;
//else return 0;
}
return false;
}
В таком случае всегда ошибка т. к. return false будет независимо от условия. Сделал через промежуточную переменную - компилятор предупреждений не выдаёт, но больший расход памяти на 42 байта.dsfbuy писал(а): ↑26.05.2023{, 09:23}RedSky, IDE ругается на функцию bool find_signal(byte *find_data, byte condition). Может так должно быть:
КОД: ВЫДЕЛИТЬ ВСЁ
bool find_signal(byte *find_data, byte condition)
{
//byte j;
for (byte j=0; j<8; j++)
{
if (find_data== condition) return true;
//else return 0;
}
return false;
}
return прерывает выполнение функции, так что до return false дело не дойдет при выполнении условия.
У меня сделано так- все датчики подключаю на 1 шину по очереди , по одному. в веб интерфейсе задаю номер датчика (1-16) и нажимаю кнопку сканирование... и так для каждого датчика . Делается это один раз. При выходе из строя одного датчика (например 5) , откидываю шину от контроллера и сканирую новый датчик (под номером 5). Ставлю датчик на место и подключаю общею шину...Все (5 минут на замену). Быстродействие не волнует , потому как для работы с датчиками (только) использую отдельную ЕСП 8285 с веб интерфейсом. Значения температур со всех датчиков складываю в регистры , которые мастер (МК) считыват по UART (modbus RTU). датчики раскинуты в пределах 100метров. В вебинтерфейсе так же наблюдаю все температуры с датчиков, задаю уставки в энергонезависимую память для МК. Задаю скрость по uart. Если нужно можно пдключиться к локальной сети...
Отправлено спустя 49 минут 32 секунды:Rovki писал(а): ↑07.05.2024{, 09:25}У меня сделано так- все датчики подключаю на 1 шину по очереди , по одному. в веб интерфейсе задаю номер датчика (1-16) и нажимаю кнопку сканирование... и так для каждого датчика . Делается это один раз. При выходе из строя одного датчика (например 5) , откидываю шину от контроллера и сканирую новый датчик (под номером 5). Ставлю датчик на место и подключаю общею шину...Все (5 минут на замену). Быстродействие не волнует , потому как для работы с датчиками (только) использую отдельную ЕСП 8285 с веб интерфейсом. Значения температур со всех датчиков складываю в регистры , которые мастер (МК) считыват по UART (modbus RTU). датчики раскинуты в пределах 100метров. В вебинтерфейсе так же наблюдаю все температуры с датчиков, задаю уставки в энергонезависимую память для МК. Задаю скрость по uart. Если нужно можно пдключиться к локальной сети...
Ну не 48 же проводов тянуть (16х3)...
Отправлено спустя 7 минут 56 секунд:
Есть две разновидности таких плат на базе ESP8285
1. 1wire-UART
2. 1Wire- RS485