Не пинайте сильно уважаемый ALL но есть проблема при компиляции скетча для передачи температуры по каналу 433мГц на ардуине мега 2560 возникает ошибка: C:\Users\Gi\Documents\Arduino\libraries\OneWire\OneWire.cpp: In static member function 'static uint16_t OneWire::crc16(const uint8_t*, uint16_t, uint16_t)': C:\Users\Gi\Documents\Arduino\libraries\OneWire\OneWire.cpp:571:42: error: '_crc16_update' was not declared in this scope crc = _crc16_update(crc, input); ^ exit status 1 Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560. Вот код для передатчика Код (C++): #include <OneWire.Dh> #include <DallasTemperature.h> #include <LiquidCrystal_I2C.h> #include <EEPROM.h> #include <VirtualWire.h> #include <EasyTransferVirtualWire.h> #define ledPin 22 OneWire oneWire(3); // вход датчиков 18b20 DallasTemperature ds(&oneWire); LiquidCrystal_I2C lcd (0x3F, 40, 2); // инициализируем 2х строчный дисплей1 LiquidCrystal_I2C lcd1 (0x3E, 20, 1); // инициализируем 2х строчный дисплей2 DeviceAddress sensor1 = {0x28, 0xFF, 0x10, 0x2F, 0x01, 0x17, 0x05, 0xC8 }; DeviceAddress sensor2 = {0x28, 0xFF, 0x70, 0x66, 0x01, 0x17, 0x04, 0xF4 }; DeviceAddress sensor3 = {0x28, 0xFF, 0xAE, 0x31, 0x01, 0x17, 0x05, 0x08 }; int state = LOW; int floorPin = 28; // порт управления полом int setAeroTemp; int AeroTempGisteresis; // гистерезис температуры воздуха int setFloorTemp = 40; // Температура пола при которой отключается нагрев int comfortFloorTemp = 35; // комфортная температура поверхности пола int FloorTempGisteresis = 1; // Гистерезис температуры пола float FloorTemp; // Температура теплого пола float Temp; // Температура воздуха на балконе float OutDoorTemp; // Температура наружного воздуха boolean ledEnabled = false; EasyTransferVirtualWire ET; struct SEND_DATA_STRUCTURE{ //put your variable definitions here for the data you want to send //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO //Struct can'e be bigger then 26 bytes for VirtualWire version byte ID; float temperature; float temperatureA; }; //give a name to the group of data SEND_DATA_STRUCTURE mydata; void setup() { //start the library, pass in the data details ET.begin(details(mydata)); mydata.ID = 1; // Initialise the IO and ISR vw_set_ptt_inverted(true); // Required for DR3100 vw_set_tx_pin(8); vw_setup(2000); // Bits per sec randomSeed(analogRead(0)); Serial.begin(9600); ds.begin(); lcd.init(); // инициализация LCD lcd.backlight(); // включаем подсветку lcd1.init(); // инициализация LCD1 lcd1.backlight(); // включаем подсветку LCD1 pinMode(floorPin, OUTPUT); // Включаем порт управления теплым полом pinMode(ledPin, OUTPUT); } void loop() { ds.requestTemperatures(); // считываем температуру с датчиков Temp = ds.getTempC(sensor1); OutDoorTemp = ds.getTempC(sensor2); FloorTemp = ds.getTempC(sensor3); mydata.temperature = OutDoorTemp; mydata.temperatureA = Temp; ET.sendData(); delay(3000); lcd.setCursor(0, 0); lcd.print("Sensor 1: "); lcd.print(Temp); // отправляем температуру lcd.write(byte(223)); lcd.print("C"); lcd1.setCursor(0, 0); lcd1.print("OutDoorTemp:"); lcd1.print(OutDoorTemp); lcd1.write(byte(223)); lcd1.print("C"); lcd.setCursor(0, 1); lcd.print("Sensor 3: "); lcd.print(FloorTemp); lcd.write(byte(223)); lcd.print("C"); setAeroTemp = EEPROM.read(0); AeroTempGisteresis = EEPROM.read(7); //гистерезис температуры воздуха. Хранится в ЕПРОМ в 7-ой ячейке digitalWrite(ledPin, state); state = !state; //========================================================================================= // Модуль управления ТЕПЛЫМ ПОЛОМ //========================================================================================= Serial.println("----------------------------------------------------------------------------------------------------"); Serial.println("ТЕПЛЫЙ ПОЛ"); Serial.println("----------------------------------------------------------------------------------------------------"); Serial.print ("температура включения пола *C: "); Serial.println(setFloorTemp - FloorTempGisteresis); Serial.print ("температура отключения пола *C: "); Serial.println(setFloorTemp); Serial.print ("гистерезис температуры включения пола *C: "); Serial.println(FloorTempGisteresis); Serial.print ("температура включения пола по воздуху *C: "); Serial.println(setAeroTemp - AeroTempGisteresis); Serial.print ("температура воздухa над теплым полом *C: "); Serial.println(Temp); if (FloorTemp >= setFloorTemp||Temp >= setAeroTemp) { digitalWrite (floorPin, LOW); lcd.setCursor(37, 1); lcd.print("-"); // Выводим: - Serial.println("Пол Выключен"); Serial.print("достигнута температура пола *C: "); Serial.println(FloorTemp); } else { if (FloorTemp <= (setFloorTemp - FloorTempGisteresis) && Temp < (setAeroTemp - AeroTempGisteresis)||FloorTemp < comfortFloorTemp) { digitalWrite (floorPin, HIGH); lcd.setCursor(37, 1); lcd.print("|"); // Выводим: | Serial.println("пол Включен"); Serial.print("идет нагрев пола до температуры *C: "); Serial.println(setFloorTemp); Serial.print ("температура пола *C: "); Serial.println(FloorTemp); } else { //digitalWrite (floorPin, LOW); lcd.setCursor(37, 1); lcd.print("+"); // Выводим: - Serial.println("Пол Выключен"); Serial.print("достигнута температура пола *C: "); Serial.println(FloorTemp); } } Serial.println("----------------------------------------------"); } при отключении библиотеки OneWire и Даласовской все компелиться тоже при отключении библиотек для передатчика. вместе не хотят. Подскажите плиз где грабли.