Помогите со скетчем что в нем не так

Тема в разделе "Arduino & Shields", создана пользователем иванвака, 14 янв 2020.

  1. иванвака

    иванвака Нерд

    /*http://geektimes.ru/post/252796/
    питание с подсветки экрана ->8 (Enable_pin) 1 - нагрев вкл / 0 откл
    датчик DS18B20 -> 2 (One_wire_bas_pin)
    резистор уст нужной температуры ->A5 (R1_pin) 0-1023 => 31- 51
    светодиод ->7 (led_pin)
    серва -> 9 (servo_pin)
    */
    #1
    Содержимое удалено. Вставьте код по правилам форума.

    #2
    Содержимое удалено. Вставьте код по правилам форума.
     
  2. NikitOS

    NikitOS Public enemy Администратор

    Screenshot_2020-01-14 Амперка Форум.png.png
     
    KindMan и Daniil нравится это.
  3. sser

    sser Гик

    Angle -=2;
    Angle +=2;
    Поменяй местами и всё.
     
  4. иванвака

    иванвака Нерд

    Помогите со скетчем что в нем не так

    Код (Text):
    const int enable_pin = 8;пин подсветки сэкрана.
    uint8_t enable = 0; // 1 работа/ 0 нет.
    #include <OneWire.h>
    const int One_wire_bas_pin = 2 пин датчика температуры
    OneWire oneWire (one wire bas pin);
    #include <DallasTemperature.h>
    DallasTemperature sensors(&oneWire)
    float tempC;//текущая температура
    const int R1_pin = A5;
    float temp_old;// нужная температура
    #include <Servo.h>
    Servo myservo;
    const int servo_pin = 9; пин сервы
    uint8_t enable_servo = 0;
    #include <PID_v1.h>//пид регулятор
    int val; //угол поворота мотора
    int val_old;//старый угол поворота мотора
    double Setpoint, Input, Output;//переменные для пид регулятора
    PID myPID(&Input, &Output, &Setpoint,1,0.4,90, DIRECT);//пид регулятор. Очень важно правильно подобрать коэффициенты пид регулятора
    void setup() {
       pinMode(enable_Pin,INPUT);
       digitalWrite (enable_Pin,enable_servo = 0)
        sensors.begin();
        myPID.SetOutputLimits(1, 255);//устанавливаем пределы для выходного сигнала пид регулятора
        myservo.attach(servo_pin,0,90);//устанавливаем пин управления servo/устанавливаем границы поворота сервы
        val_old=100;
    }
    int sp(){
        return map(analogRead(A5),255,1023,15,40);//читаем положение регулятора температуры(потенциометр)
    }
    void loop() {
        if (digitalRead(enable_Pin)==HIGH){
            sensors.requestTemperatures();
            tempC =sensors.getTempCByIndex(0); //получаем температуру с датчика
            if (abs(tempC-temp_old)>0.1){
                Input = tempC;
                temp_old=tempC;
            } else {
                Input=temp_old;
            }
            if (Setpoint!=sp()){
                Setpoint=sp();
            }
            myPID.Compute();
            delay(20);
            if (!Output==0.00){
                val=map(Output, 1, 255, 0, 180);
                if (abs(val-val_old)>4){
                    val_old=val;
                    myservo.write(val);//управляем мотором
                    delay(200);
                }
            }else{
                val=val_old;
            }
        } else {
        delay(10000);
        }
    }
     
     
    Последнее редактирование модератором: 5 фев 2020
  5. иванвака

    иванвака Нерд

    Люди помогите написать правильно скетч замучила меня газовая колонка.
     
  6. NikitOS

    NikitOS Public enemy Администратор

    Избавиться от этого нужно и все.
     
  7. иванвака

    иванвака Нерд

    Компилятор ругается.
     
  8. NikitOS

    NikitOS Public enemy Администратор

    Ну, с таким кодом и я заругаюсь :)

    Что за ошибка-то?
     
  9. иванвака

    иванвака Нерд

    Помогите токда написать его правильно
     
  10. sser

    sser Гик

    #include <PID_v1.h>//пид регулятор
    Может нет библиотеки.
     
  11. parovoZZ

    parovoZZ Гуру

    А что в нём не так?
     
  12. иванвака

    иванвака Нерд

    Библиотека есть. Компилятор ругается.
     
  13. sser

    sser Гик

    Скриншот "ругани" можно посмотреть?
     
  14. b707

    b707 Гуру

    иванвака- в ветке от вас уже штук пять совершенно бестолковых сообщений.
    Если хотите, чтобы вам кто-то помог - напишите четко, в чем проблема с кодом. Если есть ошибки компиляции - выложите их в форум, причем желательно как текст, а не в виде скриншота
    Если что-то работает не так, как вы задумывали - опишите подробно оба варианта (как задумано и как работает) и чем первое отличается от второго.
     
    Daniil нравится это.
  15. b707

    b707 Гуру

    я вас просил четко сформулировать. что именно в коде не работает. И привести цитату сообщения об ошибке. Без этого никакой помощи вам оказать невозможно.

    Другой выход есть всегда. существуют газовые колонки с автоматическим регулятором температуры. И их цена - ничто по сравнению с ремонтом квартиры после пожара.
     
    Jevega и parovoZZ нравится это.
  16. parovoZZ

    parovoZZ Гуру

    У системы отопления настолько дикая инерционность, что ты ПИД регулятор за всю жизнь не настроишь. Поэтому делай как все: на котел обычный кран, на батареи термостатические клапана.
     
  17. иванвака

    иванвака Нерд

    Это газавая колонка. Клапан не подойдет
     
  18. parovoZZ

    parovoZZ Гуру

    Почему?
     
  19. иванвака

    иванвака Нерд

    Вы знаете как работает калонка. Она нужна для нагрева воды. Помыть посуду итд. Клапан работает по температуре открыть закрыть.
     
  20. b707

    b707 Гуру

    купи колонку с термостатом, сам все равно не сделаешь, судя по вопросам.
    А код на заказ обойдется дороже покупной колонки.
    Не говоря уж о том, что я бы категорически запретил подобным "кулибиным" затевать что-либо с газом. А потом в новостях показывают...
     
    NikitOS нравится это.