Добрый день. Изучаю ардуино. Пишу свой проект. Возникла проблема в выводе функции. При чем, если код пишу без функции, то работает все хорошо, а если с ней, то нет. Код ошибки так и не понятен. Почему не могу использовать значение return функции тоже не понимаю. Мне нужно вывести температуру двух датчиков в свои переменные и использовать их при их изменении. Буду благодарен за совет. С уважением. Код (C++): #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 8 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); DeviceAddress Thermometer1 = {0x28, 0x63, 0x1D, 0x28, 0x00, 0x00, 0x80, 0xF4}; // адрес датчика DS18B20 280054B604000092 DeviceAddress Thermometer2 = {0x28, 0xFF, 0xC1, 0x78, 0x84, 0x16, 0x04, 0xC8}; void setup() { sensors.begin(); Serial.begin(9600); } void TempC1(){ sensors.setResolution(Thermometer1, 10); sensors.requestTemperatures(); float tempC = sensors.getTempC(Thermometer1); return tempC; } void tempC2(){ sensors.setResolution(Thermometer2, 10); sensors.requestTemperatures(); float tempC; tempC = sensors.getTempC(Thermometer2); return tempC; } void loop() { Serial.print("Sensor1 "); float tempC = TempC1(); // Возникает ошибка void value not ignored as it ought to be delay(2000); }
Добрый вечер. Благодарю за совет. Все заработало. Не могли бы Вы объяснить логику или указать материал для изучения? С уважением.
В определении функции первым словом идет тип возвращаемых данных. void - это отсутствие возвращаемвх данных вообще.