Помогите с кодом ардуино уно

Тема в разделе "Arduino & Shields", создана пользователем Toxi4just, 2 авг 2019.

  1. Toxi4just

    Toxi4just Нуб

    1
    Вот сам код:
    Код (C++):
    #include <Wire.h> // Подключаем библиотеку Wire
    #include <LiquidCrystal_I2C.h> // Подключаем библиотеку LiquidCrystal_I2C
    #include <DallasTemperature.h> // Подключаем библиотеку DallasTempature
    #include <Servo.h> //используем библиотеку для работы с сервоприводом
    Servo glushan; //объявляем переменную servo типа Servo
    #define DS18B20 2 // Указываем, к какому выводу подключена DQ

    byte simvol[8] = {B11100,B10100,B11100,B00000,B00000,B00000,B00000,B00000,}; // Символ градуса
    byte ServoPin = 2;

    LiquidCrystal_I2C lcd(0x27,16,2); // Задаем адрес и размер дисплея
    OneWire oneWire(DS18B20);
    DallasTemperature sensors(&oneWire);
    float getTemp();

    void setup()
    {
    sensors.begin(); // Запуск библиотеки, по умолчанию 9 бит, то есть кратность 0.5 градуса
    lcd.init(); // Инициализация lcd
    lcd.backlight(); // Включаем подсветку
    lcd.setCursor(2,0); // Устанавливаем курсор на 1 строку, ячейка 2
    lcd.print("TEMP"); // Выводим текст
    lcd.setCursor(0,1); // Устанавливаем курсор на 2 строку, ячейка 2
    lcd.print("GlushanDachaV1.0"); // Выводим текст
    Serial.begin(9600);
    glushan.attach(ServoPin);
    }
    void loop()
    {
    lcd.createChar(1, simvol); // Создаем символ под номером 1
    sensors.requestTemperatures(); // Считываем показания температуры
    lcd.setCursor(7,0); // Устанавливаем курсор на 1 строку, ячейка 7
    lcd.print(sensors.getTempCByIndex(0)); // Выводим показания температуры
    lcd.setCursor(12,0); // Устанавливаем курсор на 1 строку, ячейка 12
    lcd.print("\1"); // Выводим символ градуса
    lcd.setCursor(13,0); // Устанавливаем курсор на 1 строку, ячейка 13
    lcd.print("C");
    {

    float T = getTemp();

    Serial.println("CurrTemp = " + (String)T);

    if(T < 20)
    glushan.write(90);
    else
    glushan.write(0);

    }// Выводим текст
    }
    1
    Здравствуйте!Я только начинаю изучать ардуино,решил сделать умную теплицу,но выдает ошибку:
    C:\Users\anton\AppData\Local\Temp\ccVRblip.ltrans1.ltrans.o: In function `loop':

    C:\Users\anton\Documents\Arduino\sketch_aug02a/sketch_aug02a.ino:40: undefined reference to `getTemp()'

    collect2.exe: error: ld returned 1 exit status

    exit status 1
    Ошибка компиляции для платы Arduino/Genuino Uno.
    как исправить?заранее спасибо
     
  2. Возможно нужно подключить какую-то библиотеку, раз у вас не найдена функция getTemp() или написать ее самостоятельно
     
  3. ИгорьК

    ИгорьК Гуру

    sketch_aug02a.ino:40: undefined reference to `getTemp()' - это как переводится?
     
  4. KindMan

    KindMan Гуру

    Функция getTemp, как сообщил вам компилятор, не понятно где. Подозреваю, что нужно написать что то вроде sensors.getTemp()

    Рекомендую начинать с примеров, которые в ардуино IDE, и как только вы поймете назначение каждой строки в этих примерах, то начнёт получаться.
    Успехов!
     
    Andrey12 нравится это.
  5. ИгорьК

    ИгорьК Гуру

    Это какой-то осколок библиотеки DallasTemperature.h
    Проверьте как правильно работать с ней, изучите примеры.
     
  6. Toxi4just

    Toxi4just Нуб

    вот подробно ошибка
    Код (C++):
    Archiving built core (caching) in: C:\Users\anton\AppData\Local\Temp\arduino_cache_677127\core\core_arduino_avr_uno_0c812875ac70eb4a9b385d8fb077f54c.a
    C:\Users\anton\AppData\Local\Temp\cckUfRjB.ltrans1.ltrans.o: In function `loop':

    C:\Users\anton\Documents\Arduino\sketch_aug02a/sketch_aug02a.ino:40: undefined reference to `getTemp()'


    collect2.exe: error: ld returned 1 exit status
     
  7. ИгорьК

    ИгорьК Гуру

    Да и так понятно, что вы неправильно получаете температуру. Смотрите примеры.
     
  8. ИгорьК

    ИгорьК Гуру

    Ошибка где-то здесь:
    upload_2019-8-2_15-6-36.png
     
  9. Toxi4just

    Toxi4just Нуб

    Да я понимаю что здесь, но я не знаю на что можно заменить переменную T чтобы T являлась значением температуры.
     
  10. KindMan

    KindMan Гуру

    Вам уже ответили
    Их куча прилагается к этой библиотеке. Там и увидите, как получить температуру.

    В вашем же коде есть
    Что это значит?
     
    Toxi4just нравится это.
  11. Toxi4just

    Toxi4just Нуб

    да спасибо я так и сделал
     
  12. Toxi4just

    Toxi4just Нуб

    теперь ошибка при компиляции
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xbf
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xbf
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xbf
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xbf
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xbf
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0xbf
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xbf
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xbf
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xbf
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xbf
    Проблема загрузки в плату. Помощь по загрузке: http://www.arduino.cc/en/Guide/Troubleshooting#upload .
     
  13. parovoZZ

    parovoZZ Гуру

    Это кому?