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

Тема в разделе "Arduino & Shields", создана пользователем Алексей_Д, 26 июл 2016.

  1. Vetrinus

    Vetrinus Гик

    Я не увидел в мониторе порта строк, говорящих о включении и выключении реле. Значит, условие не отработало ни разу. Добавьте вывод состояния, как в первом случае, во второй if
     
  2. Vetrinus

    Vetrinus Гик

    И вообще, уберите вывод температуры из конца цикла loop, оставьте только внутри условий. Пусть в мониторе порта будет видно только срабатывание того или иного условия.
     
  3. Код сократил, убрал второй датчик из кода и с платы
    Код (C++):
    #include <OneWire.h>
    #include <DallasTemperature.h>
    #define ONE_WIRE_BUS_1 2
    #define Rel_truba 5

    OneWire oneWire_1(ONE_WIRE_BUS_1);

    DallasTemperature sensor_truba(&oneWire_1);


    void setup(void)
    {
        Serial.begin(9600);
        pinMode(Rel_truba, OUTPUT);
       
        sensor_truba.begin();
     
     
    }

    void loop(void)
    {
           sensor_truba.requestTemperatures();  

        float temperature1 = (sensor_truba.getTempCByIndex(0));
       
      //--------------------------------
      if(temperature1 <28)  { //перегрели, надо выключить реле трубы
        digitalWrite(Rel_truba,HIGH);
         Serial.print("Temp is ");
        Serial.print(temperature1);
        Serial.println(" Set relay on");
      }
      else if(temperature1 > 32) {     //Нагрелось выключаем
        digitalWrite(Rel_truba,LOW);
        Serial.print("Temp is ");
        Serial.print(temperature1);
        Serial.println("Set relay off");
      }
    }
    После загрузки программы, в нижнем окне пишет:
    Код (C++):
    Sketch uses 7 288 bytes (23%) of program storage space. Maximum is 30 720 bytes.
    Global variables use 273 bytes (13%) of dynamic memory, leaving 1 775 bytes for local variables. Maximum is 2 048 bytes.
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe0
     
    Причём это сообщение красным шрифтом
    Код (C++):
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe0
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0xe0
    Что это значит? Монитор порта пишет то же что и раньше. Ничего не понимаю?
     

    Вложения:

  4. Vetrinus

    Vetrinus Гик

    Это значит, что программа не загружена
     
  5. Разобрался! Всё работает! Спасибо!
     

    Вложения:

  6. Vetrinus

    Vetrinus Гик

    И в чем таки, по вашему мнению, проблема была?
    Хорошо, что у вас все заработало, но хотелось бы, чтобы вы сами поняли, в чем была ваша ошибка.
     
  7. Всё как обычно, плохое знание мат части и невнимательность. Загружал другой скетч на ard nano, забыл в настройках среды разработки ( или как она там называется) изменить тип платы! Поэтому программа и не загружалась. Ещё мне не понятно когда и какой программатор, из меню "среды разработки", лучше использовать. Если подскажете где можно по подробней об этом узнать (на русском языке) буду очень признателен. И большое спасибо за помощь.