ошибка function

Тема в разделе "Arduino & Shields", создана пользователем Mirades, 10 ноя 2016.

  1. Mirades

    Mirades Нуб

    Добрый день.
    Изучаю ардуино. Пишу свой проект.
    Возникла проблема в выводе функции. При чем, если код пишу без функции, то работает все хорошо, а если с ней, то нет. Код ошибки так и не понятен. Почему не могу использовать значение 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);
    }
     
  2. ostrov

    ostrov Гуру

    Напишите вместо
    void TempC1(){
    float TempC1(){
     
    Mirades нравится это.
  3. Mirades

    Mirades Нуб

    Добрый вечер.
    Благодарю за совет. Все заработало. Не могли бы Вы объяснить логику или указать материал для изучения?
    С уважением.
     
  4. ostrov

    ostrov Гуру

    В определении функции первым словом идет тип возвращаемых данных. void - это отсутствие возвращаемвх данных вообще.
     
    Tomasina нравится это.