Прошу помощи у гуру.

Sarhost
Offline
Зарегистрирован: 19.04.2018

Все библиотеки установленны но всерасно выдает ошибку

Arduino: 1.8.5 (Windows 7), Плата:"Arduino/Genuino Uno"
 
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\SARHOST\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10805 -build-path C:\Users\SARHOST\AppData\Local\Temp\arduino_build_296739 -warnings=default -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose D:\Zagruzky\Klimat\Klimat1c\Klimat1c.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\SARHOST\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10805 -build-path C:\Users\SARHOST\AppData\Local\Temp\arduino_build_296739 -warnings=default -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose D:\Zagruzky\Klimat\Klimat1c\Klimat1c.ino
Using board 'uno' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "C:\Users\SARHOST\AppData\Local\Temp\arduino_build_296739\sketch\Klimat1c.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\SARHOST\Documents\Arduino\libraries\OneWire" "C:\Users\SARHOST\AppData\Local\Temp\arduino_build_296739\sketch\Klimat1c.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\SARHOST\Documents\Arduino\libraries\OneWire" "-IC:\Users\SARHOST\Documents\Arduino\libraries\Arduino-Temperature-Control-Library-master" "C:\Users\SARHOST\AppData\Local\Temp\arduino_build_296739\sketch\Klimat1c.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\SARHOST\Documents\Arduino\libraries\OneWire" "-IC:\Users\SARHOST\Documents\Arduino\libraries\Arduino-Temperature-Control-Library-master" "-IC:\Program Files (x86)\Arduino\libraries\Servo\src" "C:\Users\SARHOST\AppData\Local\Temp\arduino_build_296739\sketch\Klimat1c.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\SARHOST\Documents\Arduino\libraries\OneWire" "-IC:\Users\SARHOST\Documents\Arduino\libraries\Arduino-Temperature-Control-Library-master" "-IC:\Program Files (x86)\Arduino\libraries\Servo\src" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM\src" "C:\Users\SARHOST\AppData\Local\Temp\arduino_build_296739\sketch\Klimat1c.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\SARHOST\Documents\Arduino\libraries\OneWire" "-IC:\Users\SARHOST\Documents\Arduino\libraries\Arduino-Temperature-Control-Library-master" "-IC:\Program Files (x86)\Arduino\libraries\Servo\src" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM\src" "-IC:\Users\SARHOST\Documents\Arduino\libraries\PinChangeInt-master" "C:\Users\SARHOST\AppData\Local\Temp\arduino_build_296739\sketch\Klimat1c.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10805 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" "-IC:\Users\SARHOST\Documents\Arduino\libraries\OneWire" "-IC:\Users\SARHOST\Documents\Arduino\libraries\Arduino-Temperature-Control-Library-master" "-IC:\Program Files (x86)\Arduino\libraries\Servo\src" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM\src" "-IC:\Users\SARHOST\Documents\Arduino\libraries\PinChangeInt-master" "C:\Users\SARHOST\AppData\Local\Temp\arduino_build_296739\sketch\Klimat1c.ino.cpp" -o "C:\Users\SARHOST\AppData\Local\Temp\arduino_build_296739\preproc\ctags_target_for_gcc_minus_e.cpp"
D:\Zagruzky\Klimat\Klimat1c\Klimat1c.ino:8:32: fatal error: PinChangeIntConfig.h: No such file or directory
 
 #include <PinChangeIntConfig.h>
 
                                ^
 
compilation terminated.
 
Используем библиотеку OneWire версии 2.3.4 из папки: C:\Users\SARHOST\Documents\Arduino\libraries\OneWire 
Используем библиотеку Arduino-Temperature-Control-Library-master версии 3.8.0 из папки: C:\Users\SARHOST\Documents\Arduino\libraries\Arduino-Temperature-Control-Library-master 
Используем библиотеку Servo версии 1.1.2 из папки: C:\Program Files (x86)\Arduino\libraries\Servo 
Используем библиотеку EEPROM версии 2.0 из папки: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM 
Используем библиотеку PinChangeInt-master в папке: C:\Users\SARHOST\Documents\Arduino\libraries\PinChangeInt-master (legacy)
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
Sarhost
Offline
Зарегистрирован: 19.04.2018

Вот сам скетч

#include <OneWire.h>
#include <DallasTemperature.h>
#include <Servo.h>
#include <EEPROM.h>
//#include <SoftwareServo.h>

#include <PinChangeInt.h>
#include <PinChangeIntConfig.h>
volatile boolean keypress=false;
unsigned long MainDelayMillis = 0,FastDelayMillis=0;
//SoftwareServo servo;
Servo servo;//Подключаем библиотеку для управления сервоприводом
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS A0 //Определям вход для термометра


// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h> // Скачанная библиотека для дисплея. 
#include <Adafruit_SSD1306.h> // Скачанная библиотека для дисплея.
#define OLED_RESET 4 
//#define STEP_DEGREE 9
Adafruit_SSD1306 display(OLED_RESET); //Создаем объект дисплей
OneWire oneWire(ONE_WIRE_BUS); //Создаем объект oneWire
int CurrTemp, SetTemp,PrevTemp=0,Mode=1,posReg=9,RememberPos=9,Delta=0,CountPress=0;//Текущая температура,установленная,предыдущая,режим 1-manual 0-auto,позиция регулятора,разница температур
unsigned long Pause=30,MainTimeOut,FastTimeOut,FastPause=4000;
byte minPos=1,maxPos=17,FADelay=0,FInit=0; //Инверсия - для зеркального крепления привода, мин. позиция регулятора, макс позиция, Флаг задержки при авторежиме

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);//Создаем объект термометра

void setup(void)
{
  //servo.attach(2,350,2480);//Привязываем серво на второй пин
  PCintPort::attachInterrupt(3, key_int_up,RISING);
  PCintPort::attachInterrupt(4, key_int_up,RISING);
  PCintPort::attachInterrupt(5, key_int_up,RISING);

  PCintPort::attachInterrupt(3, key_int_down,FALLING);
  PCintPort::attachInterrupt(4, key_int_down,FALLING);
  PCintPort::attachInterrupt(5, key_int_down,FALLING);
  
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the  0.96" 128X64 OLED LCD Display)I2C АДРЕС.
  display.clearDisplay(); // Clear the buffer. / Очистить буфер.
  display.setTextColor(WHITE); // Цвет текста.
  display.setTextSize(2); // Размер текста (1).
  display.setCursor(0,0); // Устанавливаем курсор в 0  0
  Serial.begin(9600);
  //Определяем режим пинов 5,4,3
  pinMode(5,INPUT);
  pinMode(4,INPUT);
  pinMode(3,INPUT);
  //pinMode(2,OUTPUT);
  
  sensors.begin(); //Стартуем термометр
  delay(100);
  
  SetTemp=EEPROM.read(0);//Читаем сохраненную температуру в EEPROM
  if(SetTemp<0 || SetTemp>30) SetTemp=18; //Если вне диапазона 0..30 тогда устанавливаем 18
  Mode=EEPROM.read(4);//Читаем режим 
  Pause=EEPROM.read(12);//Считываем значение паузы
  //delay(500);
  
  FastTimeOut=1000;
  if(Pause==255) Pause=25;//При первом запуске значение в ячейке будет 255, тогда устанавливаем значение по умолчанию
  MainTimeOut=Pause*1000;
  Serial.println(MainTimeOut);
  Serial.println(Pause);
  //Serial.println(MainTimeOut);

  if(!Mode)
  {
    servo.attach(2);
    delay(50);
    servo.write(90);
    delay(1000);
  } else
  {
    posReg=EEPROM.read(8);
    delay(100);
    setPos(posReg);
  }
  //ReadKeyTemp(); //Основная функция опроса клавиш
  printTemp();

}

void loop(void)
{ 
  
  unsigned long CurrentMillis=millis();
  printTemp();
 //Serial.println(Pause); 
//  if(!Mode && ((CurrentMillis-MainDelayMillis)>=5*1000)){//Если режим авто
  if(!Mode && ((CurrentMillis-MainDelayMillis)>=MainTimeOut))//Если режим авто
  {//Если режим авто
  //Без инверсии
//  Serial.println("Set");
    //Вычисляем разницу температур
    GetTemp();
    Delta=CurrTemp-SetTemp;
    MainTemp();
    MainDelayMillis=millis();
    Serial.println("Main");
  }
  if(!Mode && ((CurrentMillis-FastDelayMillis)>=FastTimeOut))
  {
    GetTemp();
    WaitForTemp(Pause); //Задержка на 30с в которой идет постоянный опрос клавиатуры и термометра
    FastDelayMillis=millis();
    Serial.println("Fast");
  }
  if(keypress)
  {
    ReadKeyTemp();
    //keypress=false;
  }
}

void printTemp()
{
  GetTemp();
  display.clearDisplay();//Очищаем буфер дисплея
  display.setCursor(0,0);//Устанавливаем курсор в позицию 0 0
  CurrTemp>=0?display.print("+"):display.print(" ");//Если температура положительная печатаем +, если нет то пробел
  display.print(CurrTemp);//Выводим температуру
  display.setCursor(64,0);//Устанавливаем курсор в позицию 64 0
  SetTemp>=0?display.print("+"):display.print(" ");//Если температура положительная печатаем +, если нет то пробел
  display.print(SetTemp);//Выводим температуру
  display.setCursor(0,44);//Устанавливаем курсор в позицию 0 44
  Mode?display.print("manual"):display.print("auto");//Выводим режим
  display.setCursor(104,44);//Устанавливаем курсор в позицию 104 44
  display.print(posReg);//Печатаем позицию регулятора с учетом инверсии
  display.drawRect(0, 20, 128, 20,WHITE);//Отображаем бегунок (прямоугольник)
  display.fillRect((posReg-1)*7.53, 20, 8, 20,WHITE);//Отображаем позицию в бегуноке с учетом инверсии
  display.display(); //Выводим информацию из буфера на дисплей
  //Delta=CurrTemp-SetTemp;
  return; //Возврат

}
void ReadKeyTemp()//Опрос клавиатуры
{
  //Считываем состояние клавишь
  byte ButtonL=digitalRead(5);
  byte ButtonC=digitalRead(4);
  byte ButtonR=digitalRead(3);
  delay(100);
  if(ButtonC==HIGH) CountPress++; else CountPress=0;
  //Serial.println(CountPress);
  if(CountPress>=5) setDelay();
  
  if(!Mode)//Если автоматический режим
  {
  //sensors.requestTemperatures();
    if(ButtonL==HIGH && SetTemp>0)//Если нажата левая клавиша  температура больше 0 
    { 
      SetTemp--;//убавляем на единицу
      EEPROM.write(0, SetTemp);//Сохраняем значение в EEPROM
      //return;
    }
    if(ButtonR==HIGH && SetTemp<30)//Если нажата правая клавиша  температура меньше 30
    {
      SetTemp++;//Прибавляем на единицу
      EEPROM.write(0, SetTemp);//Сохраняем значение в EEPROM
      //return;
    }
  } else
  {
    //Если ручной режим
    if(ButtonL==HIGH && posReg>minPos) //Если нажата левая клавиша и позиция регулятора больше мин без инверсии
    {
      posReg--;//Убавляем на единицу
      setPos(posReg);//Устанавливае позицию
      //return;
    }
    if(ButtonR==HIGH && posReg<maxPos ) //Если нажата правая клавиша и позиция регулятора меньше макс без инверсии
    { 
      posReg++;//Прибавляем на единицу
      setPos(posReg);//Устанавливае позицию
      //return;      
    }
  }
  if((ButtonC==HIGH) && Mode) //Если нажата центральная клавиша и режим ручной
  {
    Mode=0;//Меняем режим
    EEPROM.write(4, Mode);//Сохраняем
    //return;
  }
  else if((ButtonC==HIGH) && !Mode) //Если нажата центральная клавиша и автоматический ручной
  {                                              
    //FADelay=0;//Сбрасываем флаг
    Mode=1;//Меняем режим
    EEPROM.write(4, Mode);//Сохраняем
    //return;
  } 
  //printTemp();
  return;  
}

void setPos(int Pos)//Устанавливаем позицию
{ 
  
  if(Pos<=0 ) Pos=minPos;//Если позиция меньше минимальной тогда устанавливаем минимальную
  if(Pos>17 ) Pos=maxPos;//Если позиция больше максимальной тогда устанавливаем максимальную
  if(RememberPos==Pos) return;//Проверяем не пытаемся ли мы установить туже позицию что уже установлена
/*
Serial.println("-----------");
Serial.println(Pos);
Serial.println(posReg);
Serial.println(RememberPos);
*/
//
  //delay(50);
  //servo.attach(2,340,2600);
  servo.attach(2);
  delay(50);
  posReg=Pos;//Устанавливаем глобальную переменную
  RememberPos=Pos;
  if(Mode) EEPROM.write(8,posReg);//Сохраняем позицию
  //Serial.println(posReg); 
  switch(posReg)//Установка регулятора по заранее отградуированную позицию
  {
    case 1: servo.write(0); break;;
    case 2: servo.write(20); break;
    case 3: servo.write(30); break;
    case 4: servo.write(40); break;
    case 5: servo.write(50); break;
    case 6: servo.write(60); break;
    case 7: servo.write(70); break;
    case 8: servo.write(80); break;
    case 9: servo.write(90); break;
    case 10: servo.write(100); break;
    case 11: servo.write(110); break;
    case 12: servo.write(120); break;
    case 13: servo.write(130); break;
    case 14: servo.write(140); break;
    case 15: servo.write(150); break;
    case 16: servo.write(160); break;
    case 17: servo.write(180); break;
    
  }
if(!Mode) 
    {
        DelayInt(100);
    }
    else delay(100);
    
servo.detach();
return;
}

void WaitForTemp(int Sec)//Функция задержки между опросами температуры
{
  if(!Mode)
  {  
    GetTemp();  
    Serial.println(Delta); 
    Serial.println((CurrTemp-SetTemp));


     if((Delta>=0)&&((CurrTemp-SetTemp)<0)) 
      {
        Serial.println("+ -");
        MainDelayMillis=millis();//Если сработало действие фаст откладываем выполнение майн
//         return;      
        //if(posReg==minPos) setPos(posReg+5); else if(posReg>minPos) setPos(posReg+3);
        if(posReg==minPos) setPos(9); else if(posReg>minPos) setPos(posReg+1);
        FastTimeOut=FastPause;
        Delta=CurrTemp-SetTemp;
        return;//Если вдруг дельта сменила знак с + на - прерываем для пересчета позиций
      }
      if((Delta<=0)&&((CurrTemp-SetTemp)>0)) 
      {
        Serial.println("- +");
        MainDelayMillis=millis();
        //return;
//        if(posReg==maxPos) setPos(posReg-5); else if(posReg<maxPos) setPos(posReg-3);
        if(posReg==maxPos) setPos(9); else if(posReg<maxPos) setPos(posReg-1);
//        if(posReg==maxPos) setPos(9);
        FastTimeOut=FastPause;
        Delta=CurrTemp-SetTemp;
        return;//Если вдруг дельта сменила знак с - на + прерываем для пересчета позиций
      }
    //  if((abs(Delta)<abs(CurrTemp-SetTemp)) && (Delta!=0) )
      if((abs(Delta)<abs(CurrTemp-SetTemp)))
      {
        Serial.println("Delta");
        MainDelayMillis=millis();
        Delta=CurrTemp-SetTemp;
        FastMainTemp();
        FastTimeOut=FastPause;
        Delta=CurrTemp-SetTemp;
        return;
      }        
  //Delta=CurrTemp-SetTemp;
  FastTimeOut=1000;
  }
}

void setDelay(){
display.clearDisplay();//Очищаем буфер дисплея
display.setCursor(10,24);//Устанавливаем курсор в позицию 10 24
display.print("Pause: ");
display.print(Pause);//Выводим паузу
display.display(); //Выводим текст из буфера
delay(1000);// Делаем задержку в секунду что бы не пролететь держа кнопку

while(1){ //Бесконечный цикл опроса
  byte ButtonL=digitalRead(5);//Считываем положение кнопок
  byte ButtonC=digitalRead(4);
  byte ButtonR=digitalRead(3);
  display.clearDisplay(); //Очищаем буфер дисплея
  display.setCursor(10,24);//Устанавливаем курсор в позицию 10 24
  display.print("Pause: ");
  display.print(Pause);//Выводим паузу
  display.display();//Выводим текст из буфера
  delay(150);//Компенсируем дребезг
  keypress=false;

  if(ButtonR==HIGH ) //Если нажата клавиша вправо
    {
      Pause++; //Увеличиваем паузу
    }
  if(ButtonL==HIGH  ) //Если нажата клавиша влево
    { 
      Pause--;  //Уменьшаем паузу   
    }    
  if((ButtonC==HIGH) ) //Если нажата центральная Сохраняем паузу и выходим
    {  
      EEPROM.write(12, Pause);//Сохраняем
      return;//Возврат из функции
    }
}
}

void key_int_down()
{
  keypress=true;
  return;
}
void key_int_up()
{
  keypress=false;
  return;
}

void DelayInt(int Pause10)
{
  for(int i=1;i<=Pause10;i++)
  {
    if(keypress)
    {
      keypress=false;
      ReadKeyTemp();
    }
   delay(10);
  }
}
void MainTemp()
{
  Serial.print("MainTemp-");
  Serial.println(Delta);
  
//  if((abs(Delta)<=abs(CurrTemp-SetTemp)) && (Delta!=0) && (abs(Delta)>3))
  if((abs(Delta)<=abs(CurrTemp-SetTemp)) && (Delta!=0))
  {
    Serial.println("Exec MainTemp");
    if((Delta<=3) && (Delta>=-3)) setPos(posReg-Delta);//Если дельта в диапазоне -3..3 устанавливаем регулятор posReg-Delta
    if(Delta>4 ) setPos(minPos);//Если дельта больше 3 устанавливаем регулятор в крайнее положение мин
    if(Delta<-4 ) setPos(maxPos);//Если дельта меньше 3 устанавливаем регулятор в крайнее положение макс
  }
}
void FastMainTemp()
{
  if(Delta>=1) setPos(posReg-1);
  if(Delta<=-1) setPos(posReg+1);
  
  //if((Delta<=3) && (Delta>=-3)) setPos(posReg-Delta);//Если дельта в диапазоне -3..3 устанавливаем регулятор posReg-Delta
  if(Delta>10 ) setPos(minPos);//Если дельта больше 3 устанавливаем регулятор в крайнее положение мин
  if(Delta<-10 ) setPos(maxPos);//Если дельта меньше 3 устанавливаем регулятор в крайнее положение макс

}
void GetTemp()
{
  sensors.requestTemperatures();//Делаем опрос термометров
  CurrTemp=sensors.getTempCByIndex(0);//Считываем температуру
}

 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015
 fatal error: PinChangeIntConfig.h: No such file or directory

сами переведете ?

Sarhost
Offline
Зарегистрирован: 19.04.2018

Переводил, непойму в какую директорию положить этот файл.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

вероятно туда где лежит PinChangeInt.h

Sarhost
Offline
Зарегистрирован: 19.04.2018

Т.е в библиотеке отсутствует файл PinChangeIntConfig.h?

Если так то где его взять или нужно там создать?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А Вы уверены, что он Вам нужен? Глянул сейчас примеры к библиотеке PinChangeInt - ни в одном не используется.

Sarhost
Offline
Зарегистрирован: 19.04.2018

А почему тогда IDE ругается?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Потому что Вы её в код своего скетча зачем-то вставили.

Скетч-то не Ваш? Возможно, когда он писался, такое и было, но в современной версии библиотеки такой файл вроде не нужен. Удалите, посмотрите.

Sarhost
Offline
Зарегистрирован: 19.04.2018

Да, не мой, теперь выдает 'PCintPort' has not been declared ('PCintPort' не объявлена)

Как с ней быть?

Сделал вот так:

//#include <PinChangeInt.h>
//#include <PinChangeIntConfig.h>
 
servo.attach(2,350,2480);//Привязываем серво на второй пин
  //PCintPort::attachInterrupt(3, key_int_up,RISING);
  //PCintPort::attachInterrupt(4, key_int_up,RISING);
  //PCintPort::attachInterrupt(5, key_int_up,RISING);
 
  //PCintPort::attachInterrupt(3, key_int_down,FALLING);
  //PCintPort::attachInterrupt(4, key_int_down,FALLING);
  //PCintPort::attachInterrupt(5, key_int_down,FALLING);
 
На работу остального скетча это отразится?

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Думаю, что скетч не под ту библиотеку, что у Вас. Искать ТУ библиотеку, в которой есть и конфиг и этот оъект. Или писать свой скетч.

Sarhost
Offline
Зарегистрирован: 19.04.2018

ЕвгенийП пишет:

Думаю, что скетч не под ту библиотеку, что у Вас. Искать ТУ библиотеку, в которой есть и конфиг и этот оъект. Или писать свой скетч.

Умел бы, не задовал бы вопросов. )))

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Чего "умел бы"? Библиотеку искать? Так гуглом же. Набираете оба инклуд файла в строке поиска и вот она - первый же результат - и конфиг есть - всё как просили. Искать-то хоть надо научиться, иначе никак.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Sarhost  В принципе в Arduino IDE всё  сделано, что-б пользователю не нужно было задаваться вопросом в какую папку положить библиотеку, большинство библиотек ставятся из самого IDE в несколько кликов мышью. В данном случае идём по меню: Скетч-подключить библиотеку-управлять библиотеками, далее в строке поиска вбиваем первые буквы pinchange, и вуаля библиотека найдена, осталось нажать кнопку "Установить".

 

Sarhost
Offline
Зарегистрирован: 19.04.2018

Я это сделал в первую очередь, и разные версии все равно выдает fatal error: PinChangeInt.h: No such file or directory

Sarhost
Offline
Зарегистрирован: 19.04.2018

Я на форумы пишу когда уже все перепробовал, а не так тык, непрошло надо писать на форум.

Sarhost
Offline
Зарегистрирован: 19.04.2018

Вопрос закрыт. Всем спасибо.

Отдельная благодарность ЕвгенийП в решении вопроса.