Главная › Форумы › Конструкторское бюро › Автоматизация › D18B20, Arduino, MODBUS, Master SCADA › Ответ в теме: D18B20, Arduino, MODBUS, Master SCADA
11.01.2018 в 21:08
#15628
Тут выложил скетч по датчикам.
Спасибо! Да, именно так и планировал. Только датчики на разных пинах, чтобы с адресами не заморачиваться.
Вот так видел себе. Это не финальный код, а так – основа, ее еще допиливать надо немного.
//***Функция считывания температуры c Далласов***** void dallRead(unsigned long interval){ static unsigned long prevTime = 0; if (millis() - prevTime > interval) { //Проверка заданного интервала static boolean flagDall = 0; //Признак операции prevTime = millis(); flagDall =! flagDall; //Инверсия признака if (flagDall) { ds.reset(); ds.write(0xCC); //Обращение ко всем датчикам ds.write(0x44); //Команда на конвертацию flagDallRead = 1; //Время возврата в секундах } else { byte i; int temp; for (i = 0; i < 3; i++){ //Перебор количества датчиков ds.reset(); ds.select(addr); ds.write(0xBE); //Считывание значения с датчика temp = (ds.read() | ds.read()<<8); //Принимаем два байта температуры Temp = (float)temp / 16.0; flagDallRead = 2; //Время возврата в секундах } } } }
Хорошо живет на свете Винни-Пух...