Друзья, помогите: куда и как неправильно я вставляю один скетч в другой ?

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Сломал голову, видимо, "замылился" глаз. Нужно, чтом свежим взором кто-то взнлянул. Суть:

Этот скетч отрабатывает штатно:

      //АРДУИНО УНО Управление клапаном отбора

// Переменные значения и времени считывания энкодера клапана
unsigned char enc_valve_a;    //Значение вывода А энкодера клапана
unsigned char enc_valve_b;    //Значение вывода В энкодера клапана
unsigned char enc_valve_a_prev=0;  //Предыдущее значение вывода А энкодера клапана 
unsigned long enc_valve_curr_time;  //Текущая временная переменная энкодера клапана
unsigned long enc_valve_loop_time;  //Предыдущая временная переменная энкодера клапана
int enc_valve_val;      //Значение энкодера клапана

//Переменные клапана
volatile int valve;     //Скважность клапана с шагом 1/100 от 0 до 1000

void setup()
{

  Serial.begin(115200);
  //Назначаем пины
  for (int pin=2; pin<10;pin++) //На вход
  {
    pinMode(pin, INPUT);
  }
  for (int pin=10; pin<14;pin++) //На выход 
  {
    pinMode(pin, OUTPUT);  
  }

}
void loop()
{
  // Опрос энкодера клапана
  enc_valve_curr_time = millis();
  if(enc_valve_curr_time >= (enc_valve_loop_time + 5)) // проверяем каждые 5 мсек
  { 
    enc_valve_a = digitalRead(5);     // считываем состояние выхода А энкодера 
    enc_valve_b = digitalRead(4);     // считываем состояние выхода B энкодера 
     if((!enc_valve_a) && (enc_valve_a_prev))// если состояние изменилось с положительного к нулю
    {    
      if(enc_valve_b) 
      {
        // выход В в полож. сост., значит вращение по часовой стрелке
        valve++;
        if(valve>100) {valve=100;}
      }   
      else 
      {
        // выход В в 0 сост., значит вращение против часовой стрелки     
        valve--;
        if(valve<0) {valve=0;}
      }   
     }   
    enc_valve_a_prev = enc_valve_a;     // сохраняем значение А для следующего цикла 
    Serial.println(valve);   // пишем значение в порт
    enc_valve_loop_time = enc_valve_curr_time;
  }  
  

}

 Этот скетч тоже отрабатывает штатно

 

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Пардон, не то нажал. Этот скетч тоже отрабатывает штатно

      //АРДУИНО УНО Управление клапаном отбора

       //________Подключение библиотек термометров 
#include <OneWire.h>
#include <DallasTemperature.h>
       //________Объявление пинов температурных датчиков
#define ONE_WIRE_BUS_1 9 //Датчик колонны
#define ONE_WIRE_BUS_2 8 //Дополнительный датчик 
       //________Подвязывание переменных к библиотекам
OneWire oneWire_out_temp1(ONE_WIRE_BUS_1);
OneWire oneWire_out_temp2(ONE_WIRE_BUS_2);
DallasTemperature sensor_colonna(&oneWire_out_temp1);
DallasTemperature sensor_addition(&oneWire_out_temp2);

#include "LedControl.h" //Библиотека индикаторов
      /* Рацветка шлейфов на индикацию:
      GND                 -  фиолетовый 
      Din (dout) - пин 11 -  желтый
      CS (load) -  пин 12 -  зеленый   
      CLK -        пин 13 -  синий
      четвертая цифра "X" - количество модулей */
LedControl lc = LedControl(10, 12, 11, 4);  //создаём объект класса LedControl (din,clk,cs,X)
      //ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ
      // Массив с закодированными символами для надписей.
byte bukvy[37] = 
              {
                B01110111,    //A-0
                B01111111,    //B-1
                B01001110,    //C-2
                B01001111,    //E-3
                B01000111,    //F-4
                B01011110,    //G-5
                B00110111,    //H-6
                B00111000,    //J-7
                B00001110,    //L-8
                B01111110,    //O-9
                B01100111,    //P-10
                B01011011,    //S-11
                B00111110,    //U-12
                B00111011,    //Y-13
                B01101101,    //Z-14
                B01011111,    //Б-15
                B01000110,    //Г-16
                B01111001,    //З-17
                B01110110,    //П-18
                B00110011,    //Ч-19
                B00011111,    //Ь-20
                B00011111,    //b-21
                B00001101,    //c-22
                B00111101,    //d-23
                B00010111,    //h-24
                B00010000,    //i-25
                B00011000,    //j-26
                B00001100,    //l-27
                B00010101,    //n-28
                B00011101,    //o-29
                B00011100,    //u-30
                B00000101,    //г-31
                B01100011,    //°-32
                B00001000,    //_-33
                B00000001,    //--34
                B00001001,    //:-36
                B00000000,    //пусто-37
              };

//Переменные кнопок
volatile int but_delta_val=0;    //Значения кнопки дельты
volatile int but_valve_val=0;   //Значения кнопки клапана

// Переменные значения и времени считывания энкодера дельты
unsigned char enc_delta_a;    //Значение вывода А энкодера дельты
unsigned char enc_delta_b;    //Значение вывода В энкодера дельты
unsigned char enc_delta_a_prev=0;   //Предыдущее значение вывода А энкодера дельты 
unsigned long enc_delta_curr_time;  //Текущая временная переменная энкодера дельты
unsigned long enc_delta_loop_time;  //Предыдущая временная переменная энкодера дельты
int enc_delta_val;      //Значение энкодера дельты

// Переменные значения и времени считывания энкодера клапана
unsigned char enc_valve_a;    //Значение вывода А энкодера клапана
unsigned char enc_valve_b;    //Значение вывода В энкодера клапана
unsigned char enc_valve_a_prev=0;  //Предыдущее значение вывода А энкодера клапана 
unsigned long enc_valve_curr_time;  //Текущая временная переменная энкодера клапана
unsigned long enc_valve_loop_time;  //Предыдущая временная переменная энкодера клапана
int enc_valve_val;      //Значение энкодера клапана

//Переменные температуры
volatile int temperature_colonna=0;   //Температура колонны
volatile int temperature_addition=0;    //Температура дополнительного датчика
volatile int temperature_delta=0;   //Температура отсечки
unsigned long temperature_time; //Переменная задержки времени для считывания датчиков температуры
unsigned long temperature_loop_time; //Переменная задержки времени для считывания датчиков температуры предыдущая

//Переменные клапана
volatile int valve;     //Скважность клапана с шагом 1/100 от 0 до 1000
volatile int valve_on;      //Время открытого клапана (мсек)
volatile int valve_off;     //Время закрытого клапана (мсек)
unsigned long valve_time;    //Текущая временная переменная работы клапана
unsigned long valve_time_prev;  //Предыдущая временная переменная работы клапана

// Переменные для индикации
volatile int tys; //Тысячи 
volatile int sot; //Сотни
volatile int des; //Десятки
volatile int edi; //Единицы


void setup()
{
  //Датчики температуры
  sensor_colonna.begin();
  sensor_addition.begin();
  
  Serial.begin(115200);
  //Назначаем пины
  for (int pin=2; pin<10;pin++) //На вход
  {
    pinMode(pin, INPUT);
  }
  for (int pin=10; pin<14;pin++) //На выход 
  {
    pinMode(pin, OUTPUT);  
  }
  //Инициализация модуля индикаторов
  for (int ind=0;ind<4;ind++)
    {
      lc.shutdown(ind, false); //Выводим из спящего режима
      lc.setIntensity(ind,3);  //Яркость дисплеев на 3. Всего возможных режимов яркости от 0 до 15
      lc.clearDisplay(ind);    //Очистить дисплей       
    }   
  //Прописываем "Col    °" (температура колонны)
  lc.setRow(0, 7, bukvy[2]);//Индикация C"
  lc.setRow(0, 6, bukvy[29]);//Индикация "o"
  lc.setRow(0, 5, bukvy[27]);//Индикация "l"
  lc.setRow(0, 0, bukvy[32]);//Индикация "°"
  lc.setDigit(0, 3, 0, false);
  lc.setDigit(0, 2, 0, true);
  lc.setDigit(0, 1, 0, false);
  //Прописываем "Add    °" (второй датчик температуры) 
  lc.setRow(3, 7, bukvy[0]);//Индикация "A"
  lc.setRow(3, 6, bukvy[23]);//Индикация "d"
  lc.setRow(3, 5, bukvy[23]);//Индикация "d"
  lc.setRow(3, 0, bukvy[32]);//Индикация "°"
  lc.setDigit(3, 3, 0, false);
  lc.setDigit(3, 2, 0, true);
  lc.setDigit(3, 1, 0, false);
  //Прописываем "Adj    °" (настройка дельты)
  lc.setRow(1, 7, bukvy[0]);//Индикация "A"
  lc.setRow(1, 6, bukvy[23]);//Индикация "d"
  lc.setRow(1, 5, bukvy[26]);//Индикация "j"
  lc.setRow(1, 0, bukvy[32]);//Индикация "°"
  lc.setDigit(1, 3, 0, false);
  lc.setDigit(1, 2, 0, true);
  lc.setDigit(1, 1, 0, false);
  //Прописываем "Pro" (скважность клапана)
  lc.setRow(2, 7, bukvy[10]);//Индикация "P"
  lc.setRow(2, 6, bukvy[31]);//Индикация "r"
  lc.setRow(2, 5, bukvy[29]);//Индикация "o"
  lc.setDigit(2, 2, 0, true);
  lc.setDigit(2, 1, 0, false);
  lc.setDigit(2, 0, 0, false);

  //Назначение прерываний  
  attachInterrupt(0, BUTTON_DELTA, RISING);  //Прерывание дельты
  attachInterrupt(1, BUTTON_VALVE, RISING); //Прерывание клапана

}
void loop()
{
  //________Запрос датчикам на измерение температуры
  sensor_colonna.requestTemperatures(); 
  sensor_addition.requestTemperatures(); 
 
  
  //Опрос показаний датчиков температуры
  temperature_time=millis();
  if (temperature_time >= (temperature_loop_time+850))//проверяем каждые 850 мсек
   {
     // Формируем переменные для передачи на индикацию
     temperature_colonna=sensor_colonna.getTempCByIndex(0)*10;
     temperature_addition=sensor_addition.getTempCByIndex(0)*10;
     // Индикация температур
     DEGREE_COLONNA();
     DEGREE_ADDITION();           
     temperature_loop_time=temperature_time; //________Обнуляем переменную задержки времени для считывания датчиков температуры  
  }
  
}

void DEGREE_COLONNA()  //Прописываем текущую температуру колонны
{
        //Расчленение переменной температуры колонны  
        sot=temperature_colonna/100;
        des=temperature_colonna% 100 / 10;
        edi=temperature_colonna% 10;    
        // Индикация 
        lc.setDigit(0, 3, sot, false);
        lc.setDigit(0, 2, des, true);
        lc.setDigit(0, 1, edi, false);
}

void DEGREE_ADDITION()  //Прописываем текущую температуру дополнительного датчика
{
        //Расчленение переменной температуры дополнительного датчика
        sot=temperature_addition/100;
        des=temperature_addition% 100 / 10;
        edi=temperature_addition% 10;    
        // Индикация 
        lc.setDigit(3, 3, sot, false);
        lc.setDigit(3, 2, des, true);
        lc.setDigit(3, 1, edi, false);
}

void DEGREE_DELTA() //Прописываем температуру отсечки
{
        //Расчленение переменной температуры отсечки
        sot=temperature_delta/100;
        des=temperature_delta% 100 / 10;
        edi=temperature_delta% 10;   
        // Индикация 
        lc.setDigit(1, 3, sot, false);
        lc.setDigit(1, 2, des, true);
        lc.setDigit(1, 1, edi, false);
}



void VALVE_SETUP()  //Прописываем скважность клапана
{
        //Расчленение переменной скважности клапана
        /*tys=current_power/1000;
        sot=current_power%1000/100;
        des=current_power%100/10;
        edi=current_power%10;   
        // Индикация 
        lc.setDigit(1, 3, tys, false);
        lc.setDigit(1, 2, sot, false);
        lc.setDigit(1, 1, des, false);
        lc.setDigit(1, 0, edi, false);*/  
}

void BUTTON_DELTA ()  //Приравниваем температуру отсечки к температуре колонны
{
  temperature_delta=temperature_colonna;
  DEGREE_DELTA();
}

void BUTTON_VALVE ()  //Отключаем-подключаем клапан
{

}

 

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Но когда я пытаюсь их соединить вот так:

      //АРДУИНО УНО Управление клапаном отбора

       //________Подключение библиотек термометров 
#include <OneWire.h>
#include <DallasTemperature.h>
       //________Объявление пинов температурных датчиков
#define ONE_WIRE_BUS_1 9 //Датчик колонны
#define ONE_WIRE_BUS_2 8 //Дополнительный датчик 
       //________Подвязывание переменных к библиотекам
OneWire oneWire_out_temp1(ONE_WIRE_BUS_1);
OneWire oneWire_out_temp2(ONE_WIRE_BUS_2);
DallasTemperature sensor_colonna(&oneWire_out_temp1);
DallasTemperature sensor_addition(&oneWire_out_temp2);

#include "LedControl.h" //Библиотека индикаторов
      /* Рацветка шлейфов на индикацию:
      GND                 -  фиолетовый 

      Din (dout) - пин 11 -  желтый
      CS (load) -  пин 12 -  зеленый   
      CLK -        пин 13 -  синий
      четвертая цифра "X" - количество модулей */
LedControl lc = LedControl(10, 12, 11, 4);  //создаём объект класса LedControl (din,clk,cs,X)
      //ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ
      // Массив с закодированными символами для надписей.
byte bukvy[37] = 
              {
                B01110111,    //A-0
                B01111111,    //B-1
                B01001110,    //C-2
                B01001111,    //E-3
                B01000111,    //F-4
                B01011110,    //G-5
                B00110111,    //H-6
                B00111000,    //J-7
                B00001110,    //L-8
                B01111110,    //O-9
                B01100111,    //P-10
                B01011011,    //S-11
                B00111110,    //U-12
                B00111011,    //Y-13
                B01101101,    //Z-14
                B01011111,    //Б-15
                B01000110,    //Г-16
                B01111001,    //З-17
                B01110110,    //П-18
                B00110011,    //Ч-19
                B00011111,    //Ь-20
                B00011111,    //b-21
                B00001101,    //c-22
                B00111101,    //d-23
                B00010111,    //h-24
                B00010000,    //i-25
                B00011000,    //j-26
                B00001100,    //l-27
                B00010101,    //n-28
                B00011101,    //o-29
                B00011100,    //u-30
                B00000101,    //г-31
                B01100011,    //°-32
                B00001000,    //_-33
                B00000001,    //--34
                B00001001,    //:-36
                B00000000,    //пусто-37
              };

//Переменные кнопок
volatile int but_delta_val=0;    //Значения кнопки дельты
volatile int but_valve_val=0;   //Значения кнопки клапана

// Переменные значения и времени считывания энкодера дельты
unsigned char enc_delta_a;    //Значение вывода А энкодера дельты
unsigned char enc_delta_b;    //Значение вывода В энкодера дельты
unsigned char enc_delta_a_prev=0;   //Предыдущее значение вывода А энкодера дельты 
unsigned long enc_delta_curr_time;  //Текущая временная переменная энкодера дельты
unsigned long enc_delta_loop_time;  //Предыдущая временная переменная энкодера дельты
int enc_delta_val;      //Значение энкодера дельты

// Переменные значения и времени считывания энкодера клапана
unsigned char enc_valve_a;    //Значение вывода А энкодера клапана
unsigned char enc_valve_b;    //Значение вывода В энкодера клапана
unsigned char enc_valve_a_prev=0;  //Предыдущее значение вывода А энкодера клапана 
unsigned long enc_valve_curr_time;  //Текущая временная переменная энкодера клапана
unsigned long enc_valve_loop_time;  //Предыдущая временная переменная энкодера клапана
int enc_valve_val;      //Значение энкодера клапана

//Переменные температуры
volatile int temperature_colonna=0;   //Температура колонны
volatile int temperature_addition=0;    //Температура дополнительного датчика
volatile int temperature_delta=0;   //Температура отсечки
unsigned long temperature_time; //Переменная задержки времени для считывания датчиков температуры
unsigned long temperature_loop_time; //Переменная задержки времени для считывания датчиков температуры предыдущая

//Переменные клапана
volatile int valve;     //Скважность клапана с шагом 1/100 от 0 до 1000
volatile int valve_on;      //Время открытого клапана (мсек)
volatile int valve_off;     //Время закрытого клапана (мсек)
unsigned long valve_time;    //Текущая временная переменная работы клапана
unsigned long valve_time_prev;  //Предыдущая временная переменная работы клапана

// Переменные для индикации
volatile int tys; //Тысячи 
volatile int sot; //Сотни
volatile int des; //Десятки
volatile int edi; //Единицы


void setup()
{
  //Датчики температуры
  sensor_colonna.begin();
  sensor_addition.begin();
  
  Serial.begin(115200);
  //Назначаем пины
  for (int pin=2; pin<10;pin++) //На вход
  {
    pinMode(pin, INPUT);
  }
  for (int pin=10; pin<14;pin++) //На выход 
  {
    pinMode(pin, OUTPUT);  
  }
  //Инициализация модуля индикаторов
  for (int ind=0;ind<4;ind++)
    {
      lc.shutdown(ind, false); //Выводим из спящего режима
      lc.setIntensity(ind,3);  //Яркость дисплеев на 3. Всего возможных режимов яркости от 0 до 15
      lc.clearDisplay(ind);    //Очистить дисплей       
    }   
  //Прописываем "Col    °" (температура колонны)
  lc.setRow(0, 7, bukvy[2]);//Индикация C"
  lc.setRow(0, 6, bukvy[29]);//Индикация "o"
  lc.setRow(0, 5, bukvy[27]);//Индикация "l"
  lc.setRow(0, 0, bukvy[32]);//Индикация "°"
  lc.setDigit(0, 3, 0, false);
  lc.setDigit(0, 2, 0, true);
  lc.setDigit(0, 1, 0, false);
  //Прописываем "Add    °" (второй датчик температуры) 
  lc.setRow(3, 7, bukvy[0]);//Индикация "A"
  lc.setRow(3, 6, bukvy[23]);//Индикация "d"
  lc.setRow(3, 5, bukvy[23]);//Индикация "d"
  lc.setRow(3, 0, bukvy[32]);//Индикация "°"
  lc.setDigit(3, 3, 0, false);
  lc.setDigit(3, 2, 0, true);
  lc.setDigit(3, 1, 0, false);
  //Прописываем "Adj    °" (настройка дельты)
  lc.setRow(1, 7, bukvy[0]);//Индикация "A"
  lc.setRow(1, 6, bukvy[23]);//Индикация "d"
  lc.setRow(1, 5, bukvy[26]);//Индикация "j"
  lc.setRow(1, 0, bukvy[32]);//Индикация "°"
  lc.setDigit(1, 3, 0, false);
  lc.setDigit(1, 2, 0, true);
  lc.setDigit(1, 1, 0, false);
  //Прописываем "Pro" (скважность клапана)
  lc.setRow(2, 7, bukvy[10]);//Индикация "P"
  lc.setRow(2, 6, bukvy[31]);//Индикация "r"
  lc.setRow(2, 5, bukvy[29]);//Индикация "o"
  lc.setDigit(2, 2, 0, true);
  lc.setDigit(2, 1, 0, false);
  lc.setDigit(2, 0, 0, false);

  //Назначение прерываний  
  attachInterrupt(0, BUTTON_DELTA, RISING);  //Прерывание дельты
  attachInterrupt(1, BUTTON_VALVE, RISING); //Прерывание клапана

}
void loop()
{
  //________Запрос датчикам на измерение температуры
  sensor_colonna.requestTemperatures(); 
  sensor_addition.requestTemperatures(); 
  
  // Опрос энкодера клапана
  enc_valve_curr_time = millis();
  if(enc_valve_curr_time >= (enc_valve_loop_time + 5)) // проверяем каждые 5 мсек
  { 
    enc_valve_a = digitalRead(4);     // считываем состояние выхода А энкодера 
    enc_valve_b = digitalRead(5);     // считываем состояние выхода B энкодера 
     if((!enc_valve_a) && (enc_valve_a_prev))// если состояние изменилось с положительного к нулю
    {    
      if(enc_valve_b) 
      {
        // выход В в полож. сост., значит вращение по часовой стрелке
        valve++;
      }   
      else 
      {
        // выход В в 0 сост., значит вращение против часовой стрелки     
        valve--;
      }   
     }   
    enc_valve_a_prev = enc_valve_a;     // сохраняем значение А для следующего цикла 
    Serial.println(valve);   // пишем значение в порт
    enc_valve_loop_time = enc_valve_curr_time;
  }  
  
  //Опрос показани1 датчиков температуры
  temperature_time=millis();
  if (temperature_time >= (temperature_loop_time+850))//проверяем каждые 850 мсек
   {
     // Формируем переменные для передачи на индикацию
     temperature_colonna=sensor_colonna.getTempCByIndex(0)*10;
     temperature_addition=sensor_addition.getTempCByIndex(0)*10;
     // Индикация температур
     DEGREE_COLONNA();
     DEGREE_ADDITION();           
     temperature_loop_time=temperature_time; //________Обнуляем переменную задержки времени для считывания датчиков температуры  
  }
  
}

void DEGREE_COLONNA()  //Прописываем текущую температуру колонны
{
        //Расчленение переменной температуры колонны  
        sot=temperature_colonna/100;
        des=temperature_colonna% 100 / 10;
        edi=temperature_colonna% 10;    
        // Индикация 
        lc.setDigit(0, 3, sot, false);
        lc.setDigit(0, 2, des, true);
        lc.setDigit(0, 1, edi, false);
}

void DEGREE_ADDITION()  //Прописываем текущую температуру дополнительного датчика
{
        //Расчленение переменной температуры дополнительного датчика
        sot=temperature_addition/100;
        des=temperature_addition% 100 / 10;
        edi=temperature_addition% 10;    
        // Индикация 
        lc.setDigit(3, 3, sot, false);
        lc.setDigit(3, 2, des, true);
        lc.setDigit(3, 1, edi, false);
}

void DEGREE_DELTA() //Прописываем температуру отсечки
{
        //Расчленение переменной температуры отсечки
        sot=temperature_delta/100;
        des=temperature_delta% 100 / 10;
        edi=temperature_delta% 10;   
        // Индикация 
        lc.setDigit(1, 3, sot, false);
        lc.setDigit(1, 2, des, true);
        lc.setDigit(1, 1, edi, false);
}



void VALVE_SETUP()  //Прописываем скважность клапана
{
        //Расчленение переменной скважности клапана
        /*tys=current_power/1000;
        sot=current_power%1000/100;
        des=current_power%100/10;
        edi=current_power%10;   
        // Индикация 
        lc.setDigit(1, 3, tys, false);
        lc.setDigit(1, 2, sot, false);
        lc.setDigit(1, 1, des, false);
        lc.setDigit(1, 0, edi, false);*/  
}

void BUTTON_DELTA ()  //Приравниваем температуру отсечки к температуре колонны
{
  temperature_delta=temperature_colonna;
  DEGREE_DELTA();
}

void BUTTON_VALVE ()  //Отключаем-подключаем клапан
{

}

 

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Энкодер выдает сплошную белиберду.

Друзья, гляньте опытным глазом: в чем причина трабла и куда я что-то не так вставил. Ей-Богу, замотался искать причину!

Заранее спасибо!!!!

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

Sonologist,  вот от этого:

#include <DallasTemperature.h>

нужно избавляться. Библа вставляет паузы.

 

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

dimax пишет:

Sonologist,  вот от этого:

#include <DallasTemperature.h>

нужно избавляться. Библа вставляет паузы.

 

Вот падла! Что посоветуете, сэр?  Если не влом - прям кусочек скетча (наверное, с одним OneWare), а? А то затрахался.... 

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

[quote=Sonologist]

[quote=dimax]

Sonologist,  вот от этого:

#include <DallasTemperature.h>

нужно избавляться. Библа вставляет паузы.

Вот падла! Что посоветуете, сэр?  Если не влом - прям кусочек скетча (наверное, с одним OneWare), а? А то затрахался....  Ашел тут библиотечку: https://www.arduinolibraries.info/libraries/ds18-b20-events

Не взгянете на "данный проблем" (я пока настолько слаб в ардуине....)? Вдруг да пойдет? Простите за наглость, но действительно в ступоре я.... Вроде, до последнего времени все шло как надо, но тут наскочил лбом на стену (выяснилось, что стена - Даллас) :)

 

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Да что ж такое???!!! Извините за дублирование, не хотел, само получилось....

bwn
Offline
Зарегистрирован: 25.08.2014

Sonologist пишет:

Не взгянете на "данный проблем" (я пока настолько слаб в ардуине....)? Вдруг да пойдет? Простите за наглость, но действительно в ступоре я.... Вроде, до последнего времени все шло как надо, но тут наскочил лбом на стену (выяснилось, что стена - Даллас) :)

Вам про это давно говорили, не слушали.((( Наберите сверху в поиске: "Почистил скетч примера".

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

bwn пишет:

Вам про это давно говорили, не слушали.((( Наберите сверху в поиске: "Почистил скетч примера".

Старик, все правильно говорите, но...  Тут беда в том, что совсем мозги съехали. Не моя профессия (лекарь я, говорят -толковый). А сделать дело хочется (типа я "продвинутый" пользователь). На VB6 уж давно бы эту задачу решил, а вот с Ардуиною пока слабо знаком. Стараюсь, но не все получается. Не ругайте старика на 7-м десятке: кой-чего уже додумывать приходится через силу, что лет тридцать назад решал на раз.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014
Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

Весьма благодарен, буду там копать!

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Sonologist, посадите энкодер на прерывания pcint.

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

andriano пишет:

Sonologist, посадите энкодер на прерывания pcint.

Спасибо, это варинт, рассмотрю.

Sonologist
Sonologist аватар
Offline
Зарегистрирован: 08.06.2018

dimax пишет:

Sonologist,  вот от этого:

#include <DallasTemperature.h>

нужно избавляться. Библа вставляет паузы.

 

Спасибо, Димакс: выкинул библу, стало заменно лучше.