Подскажите кто знает .Приобрел датчик АМ2320 он после нескольких минут работы перестает отзываться. после включения-отключения питания все повторяеться. Как с этим бороться?
Привет. Нельзя-ли присоединить 3-4 штуки DS18B20, для контроля температуры по отдалённым местам, индикация несколько секунд, например. по нажатию кнопки. Очень хорошо для контроля разбега температур.
И ёще, продувка (вентиляция), должна включаться, например, на 8 секунд через 10 минут и так круглосуточно, эти времена нужно иметь возможность настраивать в небольших пределах. Например: 5-30 сек. через 5-30 мин.
Можете кое-что пояснить по коду последней версии алгоритма?
Зачем у вас
>ed = e;
если
>staticfloated = 0;
Тоже самое про i.
Не могу нигде найти нормальной реализации ПИД + Брезенхэм: или всё закручено, что не разберёшь и автор - напыщенный сноб, или где-то вкралась ошибка(-и) и результат работы алгоритма - сомнителен.
Тут - вобще сборная солянка, не знаю; как оно работает.
У меня в инкубаторе используется термокабель в качестве источника тепла, он инерционный, но работает отлично. Пытался установить коэффициент Д для того что бы небыло перерегулирования, но из-за того что система инерционна не работает функция ed = e, так как практически не происходит изменения за секунду, ставил Д 0,1, 1, 10, 100, график нагрева не меняется, идет перерегулирование. Если следить за измением 5 секунд, например высчитывать среднеарифметическое за послендние 5 показаний то должно сработать. Есть вариант вызывать функцию пид реже чем раз в 1,2сек, но нехочется терять быстродействие системы
У меня в инкубаторе используется термокабель в качестве источника тепла, он инерционный, но работает отлично. Пытался установить коэффициент Д для того что бы небыло перерегулирования, но из-за того что система инерционна не работает функция ed = e, так как практически не происходит изменения за секунду, ставил Д 0,1, 1, 10, 100, график нагрева не меняется, идет перерегулирование. Если следить за измением 5 секунд, например высчитывать среднеарифметическое за послендние 5 показаний то должно сработать. Есть вариант вызывать функцию пид реже чем раз в 1,2сек, но нехочется терять быстродействие системы
В этом посте примерный подход к настройе регулятора.
Д - это как ускоритель и замедлитель при резких внешних возмущениях
Доброго всем времени! вопрос к знатокам, подскажите пож. тупому как выставить значения ПИД, у меня стоят на обогрев лампы, и еще один вопрос поставил датчик Si7021 , нужно ли его покрыть лаком.
Доброго всем времени! вопрос к знатокам, подскажите пож. тупому как выставить значения ПИД, у меня стоят на обогрев лампы, и еще один вопрос поставил датчик Si7021 , нужно ли его покрыть лаком.
День добрый, мне так и не удалось оживить полностью , скеч "lean_74" народный инкубатор" этот франкенштейн не заработал. Меню все включается, открывается и правится, температура и влажность показывает, pin6 heater нагреватель не включается, pin 13 fan постоянно под тянут на +5 вольт.
В чем ошибка я не могу найти , так как только пытаюсь освоить программирование .
В функции setup(), в строке 354 вы включаете вентилятор, digitalWrite(fan_pin, HIGH);
В функции void fan(int fanTime), в строке 812 выключение вентилятора, 13 нога, закомментировано // digitalWrite( fan_pin, LOW);
То есть так как вы пишете так и должно быть, в вашем случае вентилятор включен постоянно.
Так же в функции void fan(int fanTime) закомментирована строка 817 где идет управление heater_pin, правда он там отключается но все же, если это комментировали вы то вопрос - Зачем?
Про heater_pin
включается нагреватель в одном единственном месте строка 529 digitalWrite(heater_pin,out); и то если переменная out будет равна единице, а ее состояние зависит от переменных zad и er и тут вообще написано очень загадочно, почему в zero_crosss_int() вызывается ResOut(), почему просто не поместить код ResOut() в zero_crosss_int() ? Опять же это прерывание и переменные int reg,er,zad; должны быть описаны как volatile int reg,er,zad; но этого не сделано. В общем надо автора спрашивать, и потом если инкубатор небольшой яиц на 100 то PID вам не нужен, становится намного проще программа.
Andrey12 С вентилятором , что то прояснилось, но есть нюансы. Он включаясь прерывает работу нагревателя во время охлаждения и проветривания. Выставляет флаг 1. Но сам почему то на аварию и перегрев не реагирует. Чего то там явно не хватает , он не видит задание по температуре. Да ладно бы с вентилятором, нагреватель вообще не работает, а с нагревателем я совсем не понимаю, там сделано включение симистора при переходе через ноль. Совершенно лишнее так как оптопарой это реализовать легче. И не нужно алгоритм "минхаузена". За подсказки спасибо. Буду копать дальше.
А саму схему собрали с использованием DHT11, он не очень для инкубатора подходит, или если быть точнее очень не подходит.
Если понять что и как у вас подключено, можно попробовать убрать из программы лишнее. Авось заработает.
Если есть схема выкладывайте, будем "подгонять" под схему программу.
Просто я так понимаю там один человек написал, другой исправил под себя и тд, оттуда и масса закомментированных строк.
Если инкубатор небольшой то можно отказаться от ПИД и всех алгоритмов плавного включения выключения.
Andrey12 это уже третий апгрейд инкубатора, первый блок управления был на компараторе, температура мерилась термометром. Потом собрал на atmege 8 схема от Дмитрия, температура колебалась 0,5 градуса, и показания были на семи сегментном индикаторе. Потом собрал на ардуине mini терморегулятор с ПИД регулированием, колебания уменьшились до 0,2. Дисплей 16*2 , но нет контроля влажности, и поворота. Датчик ДНТ-11 временно буду заказывать SHT 10 или 15. это уже адаптировать по готовый скетч не трудно. Пока Китай отдыхает.
Вот решился все ещё раз переделать, сейчас все спаянно на столе рассыпухой. Ардуино HAHO прошит новый загрузчик с поддержкой сторожевого таймера, вот и не могу подобрать подходящий скетч. То дисплей 20*4 , то скетч не проходит компиляцию, то ПИД регулятор "мудренный".
// работает вентилятор влажности - #; выключен - -;
006
// текущее значение температуры
007
008
009
//в меню появились два новых пункта: пункт 7 - включение подсветки дисплея - постоянно горит или выключение - погасает по истечении 4 минут после нажатия клавиши "меню"
010
// пункт 8 - выбор датчика температуры - DHT22 или 18B20
011
//ШИМ модуляция на порт 3 со значением 8-200
012
013
//работа сценария ошибки: - если по истечении 6 часов после включения температура меньше установленной на 2 градуса срабатывает ошибка
014
// - при достижении температуры установленного значения включается функция определения ошибки - если в течении 20 минут температура
015
// превышает или ниже установленных пределов срабатывает ошибка
016
// - если спустя 2 часа после проветривания температура меньше установленной на 2 градуса включается ошибка
017
018
019
020
021
022
023
024
#include <avr/wdt.h> //сторожевой пёс
025
#include <OneWire.h>
026
#include <DallasTemperature.h>
027
#include "DHT.h"
028
#include <EEPROM.h>
029
#include <Wire.h>
030
#include <LiquidCrystal_I2C.h> // Set the LCD address to 0x27 for a 16 chars and 2 line display
031
LiquidCrystal_I2C lcd(0x27, 16, 2);
032
033
#define DHTPIN 12 // номер пина, к которому подсоединен датчик
034
DHT dht(DHTPIN, DHT22);//DHT dht(DHTPIN, DHT11);// Data wire is plugged into port 2 on the Arduino
035
#define ONE_WIRE_BUS 11 // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
036
OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature.
037
DallasTemperature sensors(&oneWire);
038
039
#define turnPin 6 //поворот
040
#define ventilator 4 //вентилятор проветривания
041
#define ventilatorH 5 //венилятор для поддержания влажности
D:\Documents and Settings\Администратор\Мои документы\Arduino\sketch_feb13a_versia_8\sketch_feb13a_versia_8.ino: In function 'void setup()':
sketch_feb13a_versia_8:87:28: error: 'parametri' was not declared in this scope
sketch_feb13a_versia_8:97:16: error: 'displayPrint' was not declared in this scope
D:\Documents and Settings\Администратор\Мои документы\Arduino\sketch_feb13a_versia_8\sketch_feb13a_versia_8.ino: In function 'void loop()':
sketch_feb13a_versia_8:135:90: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:149:32: error: 'parametri' was not declared in this scope
sketch_feb13a_versia_8:178:52: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:211:118: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:212:54: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:214:34: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:222:141: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:252:87: error: 'errorMelody' was not declared in this scope
sketch_feb13a_versia_8:256:45: error: 'errorMelody' was not declared in this scope
sketch_feb13a_versia_8:260:34: error: 'nagrev' was not declared in this scope
sketch_feb13a_versia_8:263:105: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:264:57: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:283:1: error: a function-definition is not allowed here before '{' token
sketch_feb13a_versia_8:418:1: error: expected '}' at end of input
sketch_feb13a_versia_8:418:1: error: expected '}' at end of input
Используем библиотеку OneWire-2.3.5 версии 2.3.5 из папки: D:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\OneWire-2.3.5
Используем библиотеку DallasTemperature версии 3.8.0 из папки: D:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\DallasTemperature
Используем библиотеку DHT-sensor-library-master версии 1.3.8 из папки: D:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\DHT-sensor-library-master
Используем библиотеку EEPROM версии 2.0 из папки: D:\Documents and Settings\Администратор\Рабочий стол\АРДУИНО\arduino-1.8.9-windows\arduino-1.8.9\hardware\arduino\avr\libraries\EEPROM
Используем библиотеку Wire версии 1.0 из папки: D:\Documents and Settings\Администратор\Рабочий стол\АРДУИНО\arduino-1.8.9-windows\arduino-1.8.9\hardware\arduino\avr\libraries\Wire
Используем библиотеку Arduino-LiquidCrystal-I2C-library-master в папке: D:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master (legacy)
Используем библиотеку Adafruit_Unified_Sensor версии 1.1.2 из папки: D:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\Adafruit_Unified_Sensor
exit status 1
'parametri' was not declared in this scope
Для меня было важно:
1. Выбор режимов для инкубации разных птиц, перепела, индюки, куры...
2. Сигнализация ошибок, температура, СО2 или влажность ушла за пределы
3. Автоповорот
То есть принцип положил закрыл и ждешь вывода. Не проветриваешь, не меняешь режимы руками во время инкубации...
Я смотрю тут все скетчи без часов реального времени. Таймеры везде используются. Я в этом слаб, мне проще воткнуть часы DS3231
Мой скетч тоже не блещет красотой, по первых собрано на 2х МК, Atmega32U4 и Attinu85, первый это основное устройство которое за всем следит, второй это ПИД регулятор, как оказалось бесполезный :-(
Отработало 2 сезона, но у меня основная проблема в конструкции, надо все переделывать. Вот под конструкцию и буду делать новую электронику. Но не в этом сезоне, этот сезон думаю старый инкубатор протянет.
Дисплей ОЛЕД 1,3" SSD1306, сенсор температуры влажности Si7021 возможно заменю на SHT31, сенсор eCO CCS811, заменю наверное на MH-Z19B но особой нужды в нем нет, потому как при постоянном небольшом притоке воздуха проблем не наблюдается.
Кнопки управления сенсорные на TTP224.
Да и еще хочу добавить подсветку при выводе, то есть например у кур с 20го дня включать подсветку в инкубаторе, чтоб на свет лезли :-)
Andrey12, спасибо помогло. Но проблему не сняло. Этот вариант на питание от12 вольт, до этого тестировал второй скетч на 220 вольт с управлением симистора. это оба скетча выложил автор Emeljanowich. http://arduino.ru/forum/proekty/inkubator?page=1 К сожалению оба не рабочие , найти ошибку не смог. Тот , что с ошибкой которую Вы нашли он не выходит в меню настроек, не откликается на кнопки pin15,16,17. Хота температуру и влажность показывает, он постоянно прокручивает заставку (inkubator_4 v_0.8) и панель с показаниями температуры и влажности времени и шим в процентах.
Второй на работу от 220вольт, сразу прошел компиляцию, но также не работает. Он как бы висит , в меню все управляется температуру и влажность считывает только при загрузке, потом она не меняется. В нем можно только менять корректировку даласа, выбрать ДНТ или далас. поменять мощность, специально что ли выкладывают не рабочие версии. Так и не чего не удалось. Завтра на дежурство сутки. После завтра попытаюсь. Андрей ещё раз спасибо за внимание. Я искал конструкцию по проще, температура с пид регулировкой, влажность, поворот, выход аварии. В любом случае необходим постоянный контроль. Умный инкубатор от Umka мне больше всех понравился, но дома три дисплея на 16х2. Их надо приспособить.
К сожалению оба не рабочие , найти ошибку не смог. Тот , что с ошибкой которую Вы нашли он не выходит в меню настроек, не откликается на кнопки pin15,16,17. Хота температуру и влажность показывает, он постоянно прокручивает заставку (inkubator_4 v_0.8) и панель с показаниями температуры и влажности времени и шим в процентах.
Ну тут дело думаю в том что срабатывает wdt таймер :-( заставку inkubator_4 v_0.8 оно показывает только при загрузке, а значит почемуто не доходит до сброса wdt, то есть он отображает inkubator_4 v_0.8, потом 2 секунды ждет согласно delay(2000);, потом выполняет displayPrint(); а вот до строки 266 wdt_reset(); почемуто не доходит.
Как вариант попробуйте
1. увеличить время срабатывания wdt строка 91 укажиет вместо wdt_enable (WDTO_8S);
2. если не поможет вообще отключите WDT закомментируйте строки 91 и 266
Что показывает?
Честно говоря не люблю солянку типа такой if(ventilation) {displayPrint(); vrema_raboti_ventilatora--; PORTD |= (1 << 4);
Я так понимаю не везде потом работает.
conder пишет:
Второй на работу от 220вольт, сразу прошел компиляцию, но также не работает. Он как бы висит , в меню все управляется температуру и влажность считывает только при загрузке, потом она не меняется. В нем можно только менять корректировку даласа, выбрать ДНТ или далас. поменять мощность, специально что ли выкладывают не рабочие версии. Так и не чего не удалось. Завтра на дежурство сутки. После завтра попытаюсь. Андрей ещё раз спасибо за внимание. Я искал конструкцию по проще, температура с пид регулировкой, влажность, поворот, выход аварии. В любом случае необходим постоянный контроль. Умный инкубатор от Umka мне больше всех понравился, но дома три дисплея на 16х2. Их надо приспособить.
Andrey12 увеличение до 8 сек не помогло, закоментировал строки 24,69,92,267. Заработало меню , но работает очень вдумчиво. Кнопки надо удерживать 1-2 секунды. на изменение температуры и влажности отклик секунд 30-50 всегда по разному. Шим стоит 1% и не на что не реагирует. Вероятно там тоже не все в порядке. отсчет дней и часов и минутами идет нормально. Индикация выбора режима инкубации тоже работает. Если он будет с сорока секундной задержкой греть , он и сварить может все. Побежал на работу, ужинать забегал.
Andrey12 увеличение до 8 сек не помогло, закоментировал строки 24,69,92,267. Заработало меню , но работает очень вдумчиво. Кнопки надо удерживать 1-2 секунды. на изменение температуры и влажности отклик секунд 30-50 всегда по разному. Шим стоит 1% и не на что не реагирует. Вероятно там тоже не все в порядке. отсчет дней и часов и минутами идет нормально. Индикация выбора режима инкубации тоже работает. Если он будет с сорока секундной задержкой греть , он и сварить может все. Побежал на работу, ужинать забегал.
У вас тоже ардуино нано ? на 328 МК?
Ну вот говорю он там както таймеры настраивает. Может в этом дело, тут я не силен, уж если Ардуино с Wiring то руками я думаю лезть не стоит. Уж лучше часы использовать, хотя я понимаю секундная и даже часовая точность инкубатору не нужна.
Вот може тут какой косяк, если кто знающий или автор зайдут объяснят.
105
voidsetTimer(){
106
cli();
107
TCCR1A = 0b00000000; //none toggle clear set - инверсия установить
Andrey12 у мена ардуино HAHO. Спасибо за помощь , Вы хорошо разбираетесь в этом вопросе.
но что то этот скеч мне сильно разонравился. Буду искать что по проще и рабочее. Сейчас в раздумьях, после дежурства надо поспать, голова совсем не варит, весна идет и надо принять решение.
Добрый день. Какая на данный момент актуальная версия кода?
Хочу помочь тестю с инкубатором, ваша тема приглянулась, но давно активности в теме нет. Может есть обновления в коде или финальный вариант уже здесь выложен?
Можно ли посмотреть фото ящика инкубатора? Я понимаю он используеться для проветривания и охлаждения?
Интересует место установки вентилятора.
Кому вопрос?
К спецам в вопросе инкубации
Кто знает как правильно сделать
К спецам в вопросе инкубации
Кто знает как правильно сделать
В блиц норме установлен так
https://incubatorus.ru/wp-content/uploads/2016/04/Blits-norma-1.jpg
Подскажите кто знает .Приобрел датчик АМ2320 он после нескольких минут работы перестает отзываться. после включения-отключения питания все повторяеться. Как с этим бороться?
1. Выкинуть китайский датчик.
2. Приобрести нормальный SHT30/31/35
3. Profit!
Здравствуйте!
Был бы признателен, если кинете схему. А то чувствую накашмарю!
Привет. Нельзя-ли присоединить 3-4 штуки DS18B20, для контроля температуры по отдалённым местам, индикация несколько секунд, например. по нажатию кнопки. Очень хорошо для контроля разбега температур.
И ёще, продувка (вентиляция), должна включаться, например, на 8 секунд через 10 минут и так круглосуточно, эти времена нужно иметь возможность настраивать в небольших пределах. Например: 5-30 сек. через 5-30 мин.
Может не правильная библиотека? Пришлось править
#include <Si7021.h> на #include <SI7021.h>
Если так то где взять правильную?
https://github.com/prajaybasu/SI7021
@yul-i-an, @others
Можете кое-что пояснить по коду последней версии алгоритма?
Зачем у вас
>ed = e;
если
>
static
float
ed = 0;
Тоже самое про i.
Не могу нигде найти нормальной реализации ПИД + Брезенхэм: или всё закручено, что не разберёшь и автор - напыщенный сноб, или где-то вкралась ошибка(-и) и результат работы алгоритма - сомнителен.
Тут - вобще сборная солянка, не знаю; как оно работает.
ed=e это сохранение ошибки для расчета в следующем цикле
static float ed, i объявляем переменные со значениями по умолчанию.
Про брезенхема - http://arduino.ru/forum/programmirovanie/algoritm-ravnomernogo-raspredel...
@yul-i-an
Извиняюсь, возможно протупил. Алгоритм не пробовал, пока.
@yul-i-an
У меня в инкубаторе используется термокабель в качестве источника тепла, он инерционный, но работает отлично. Пытался установить коэффициент Д для того что бы небыло перерегулирования, но из-за того что система инерционна не работает функция ed = e, так как практически не происходит изменения за секунду, ставил Д 0,1, 1, 10, 100, график нагрева не меняется, идет перерегулирование. Если следить за измением 5 секунд, например высчитывать среднеарифметическое за послендние 5 показаний то должно сработать. Есть вариант вызывать функцию пид реже чем раз в 1,2сек, но нехочется терять быстродействие системы
001
16:08:03.194 -> e 0.00 p 0.00 i 11.09
out
11 temp 38.20 ust 38.20 d 0.00 ed 0.00
002
16:08:04.396 -> e 0.00 p 0.00 i 11.09
out
11 temp 38.20 ust 38.20 d 0.00 ed 0.00
003
16:08:05.661 -> e 0.00 p 0.00 i 11.09
out
11 temp 38.20 ust 38.20 d 0.00 ed 0.00
004
16:08:06.891 -> e 0.00 p 0.00 i 11.09
out
11 temp 38.20 ust 38.20 d 0.00 ed 0.00
005
16:08:08.087 -> e 0.00 p 0.00 i 11.09
out
11 temp 38.20 ust 38.20 d 0.00 ed 0.00
006
16:08:09.348 -> e 0.00 p 0.00 i 11.09
out
11 temp 38.20 ust 38.20 d 0.00 ed 0.00
007
16:08:10.541 -> e 0.00 p 0.00 i 11.09
out
11 temp 38.20 ust 38.20 d 0.00 ed 0.00
008
16:08:11.807 -> e 0.00 p 0.00 i 11.09
out
11 temp 38.20 ust 38.20 d 0.00 ed 0.00
009
16:08:12.971 -> e 0.30 p 3.90 i 11.10
out
15 temp 37.90 ust 38.20 d 0.00 ed 0.30
010
16:08:14.268 -> e 0.70 p 9.10 i 11.14
out
20 temp 37.50 ust 38.20 d 0.00 ed 0.70
011
16:08:15.494 -> e 1.10 p 14.30 i 11.19
out
25 temp 37.10 ust 38.20 d 0.00 ed 1.10
012
16:08:16.691 -> e 1.40 p 18.20 i 11.26
out
29 temp 36.80 ust 38.20 d 0.00 ed 1.40
013
16:08:17.955 -> e 1.70 p 22.10 i 11.35
out
33 temp 36.50 ust 38.20 d 0.00 ed 1.70
014
16:08:19.118 -> e 1.90 p 24.70 i 11.44
out
36 temp 36.30 ust 38.20 d 0.00 ed 1.90
015
16:08:20.381 -> e 2.40 p 31.20 i 11.56
out
42 temp 35.80 ust 38.20 d 0.00 ed 2.40
016
16:08:21.647 -> e 2.80 p 36.40 i 11.70
out
48 temp 35.40 ust 38.20 d 0.00 ed 2.80
017
16:08:22.812 -> e 3.00 p 39.00 i 11.85
out
50 temp 35.20 ust 38.20 d 0.00 ed 3.00
018
16:08:24.075 -> e 3.40 p 44.20 i 12.02
out
56 temp 34.80 ust 38.20 d 0.00 ed 3.40
019
16:08:25.339 -> e 3.70 p 48.10 i 12.21
out
60 temp 34.50 ust 38.20 d 0.00 ed 3.70
020
16:08:26.540 -> e 3.90 p 50.70 i 12.40
out
63 temp 34.30 ust 38.20 d 0.00 ed 3.90
021
16:08:27.772 -> e 4.10 p 53.30 i 12.61
out
65 temp 34.10 ust 38.20 d 0.00 ed 4.10
022
16:08:28.968 -> e 4.30 p 55.90 i 12.82
out
68 temp 33.90 ust 38.20 d 0.00 ed 4.30
023
16:08:30.231 -> e 4.60 p 59.80 i 13.05
out
72 temp 33.60 ust 38.20 d 0.00 ed 4.60
024
16:08:31.426 -> e 4.80 p 62.40 i 13.29
out
75 temp 33.40 ust 38.20 d 0.00 ed 4.80
025
16:08:32.656 -> e 5.00 p 65.00 i 13.54
out
78 temp 33.20 ust 38.20 d 0.00 ed 5.00
026
16:08:33.919 -> e 5.20 p 67.60 i 13.80
out
81 temp 33.00 ust 38.20 d 0.00 ed 5.20
027
16:08:35.109 -> e 5.50 p 71.50 i 14.08
out
85 temp 32.70 ust 38.20 d 0.00 ed 5.50
028
16:08:36.337 -> e 5.70 p 74.10 i 14.36
out
88 temp 32.50 ust 38.20 d 0.00 ed 5.70
029
16:08:37.574 -> e 5.90 p 76.70 i 14.66
out
91 temp 32.30 ust 38.20 d 0.00 ed 5.90
030
16:08:38.842 -> e 6.10 p 79.30 i 14.96
out
94 temp 32.10 ust 38.20 d 0.00 ed 6.10
031
16:08:40.040 -> e 6.40 p 83.20 i 15.28
out
98 temp 31.80 ust 38.20 d 0.00 ed 6.40
032
16:08:41.305 -> e 6.60 p 85.80 i 15.61
out
100 temp 31.60 ust 38.20 d 0.00 ed 6.60
033
16:08:42.491 -> e 6.70 p 87.10 i 15.95
out
100 temp 31.50 ust 38.20 d 0.00 ed 6.70
034
16:08:43.757 -> e 6.90 p 89.70 i 16.29
out
100 temp 31.30 ust 38.20 d 0.00 ed 6.90
035
16:08:44.960 -> e 7.00 p 91.00 i 16.64
out
100 temp 31.20 ust 38.20 d 0.00 ed 7.00
036
16:08:46.178 -> e 7.20 p 93.60 i 17.00
out
100 temp 31.00 ust 38.20 d 0.00 ed 7.20
037
16:08:47.407 -> e 7.40 p 96.20 i 17.37
out
100 temp 30.80 ust 38.20 d 0.00 ed 7.40
038
16:08:48.705 -> e 7.60 p 98.80 i 17.75
out
100 temp 30.60 ust 38.20 d 0.00 ed 7.60
039
16:08:49.898 -> e 7.70 p 100.10 i 18.14
out
100 temp 30.50 ust 38.20 d 0.00 ed 7.70
040
16:08:51.094 -> e 7.80 p 101.40 i 18.53
out
100 temp 30.40 ust 38.20 d 0.00 ed 7.80
041
16:08:52.356 -> e 7.90 p 102.70 i 18.92
out
100 temp 30.30 ust 38.20 d 0.00 ed 7.90
042
16:08:53.587 -> e 8.10 p 105.30 i 19.33
out
100 temp 30.10 ust 38.20 d 0.00 ed 8.10
043
16:08:54.819 -> e 8.30 p 107.90 i 19.74
out
100 temp 29.90 ust 38.20 d 0.00 ed 8.30
044
16:08:56.046 -> e 8.30 p 107.90 i 20.16
out
100 temp 29.90 ust 38.20 d 0.00 ed 8.30
045
16:08:57.280 -> e 8.30 p 107.90 i 20.57
out
100 temp 29.90 ust 38.20 d 0.00 ed 8.30
046
16:08:58.486 -> e 8.20 p 106.60 i 20.98
out
100 temp 30.00 ust 38.20 d 0.00 ed 8.20
047
16:08:59.722 -> e 8.10 p 105.30 i 21.39
out
100 temp 30.10 ust 38.20 d 0.00 ed 8.10
048
16:09:00.923 -> e 8.10 p 105.30 i 21.79
out
100 temp 30.10 ust 38.20 d 0.00 ed 8.10
049
16:09:02.152 -> e 8.00 p 104.00 i 22.19
out
100 temp 30.20 ust 38.20 d 0.00 ed 8.00
050
16:09:03.451 -> e 7.90 p 102.70 i 22.59
out
100 temp 30.30 ust 38.20 d 0.00 ed 7.90
051
16:09:04.613 -> e 7.70 p 100.10 i 22.97
out
100 temp 30.50 ust 38.20 d 0.00 ed 7.70
052
16:09:05.843 -> e 7.60 p 98.80 i 23.35
out
100 temp 30.60 ust 38.20 d 0.00 ed 7.60
053
16:09:07.108 -> e 7.50 p 97.50 i 23.73
out
100 temp 30.70 ust 38.20 d 0.00 ed 7.50
054
16:09:08.303 -> e 7.40 p 96.20 i 24.10
out
100 temp 30.80 ust 38.20 d 0.00 ed 7.40
055
16:09:09.562 -> e 7.30 p 94.90 i 24.46
out
100 temp 30.90 ust 38.20 d 0.00 ed 7.30
056
16:09:10.793 -> e 7.20 p 93.60 i 24.82
out
100 temp 31.00 ust 38.20 d 0.00 ed 7.20
057
16:09:12.018 -> e 7.10 p 92.30 i 25.18
out
100 temp 31.10 ust 38.20 d 0.00 ed 7.10
058
16:09:13.247 -> e 6.90 p 89.70 i 25.52
out
100 temp 31.30 ust 38.20 d 0.00 ed 6.90
059
16:09:14.438 -> e 6.80 p 88.40 i 25.86
out
100 temp 31.40 ust 38.20 d 0.00 ed 6.80
060
16:09:15.702 -> e 6.70 p 87.10 i 26.20
out
100 temp 31.50 ust 38.20 d 0.00 ed 6.70
061
16:09:16.898 -> e 6.60 p 85.80 i 26.53
out
100 temp 31.60 ust 38.20 d 0.00 ed 6.60
062
16:09:18.135 -> e 6.40 p 83.20 i 26.85
out
100 temp 31.80 ust 38.20 d 0.00 ed 6.40
063
16:09:19.369 -> e 6.40 p 83.20 i 27.17
out
100 temp 31.80 ust 38.20 d 0.00 ed 6.40
064
16:09:20.598 -> e 6.20 p 80.60 i 27.48
out
100 temp 32.00 ust 38.20 d 0.00 ed 6.20
065
16:09:21.824 -> e 6.10 p 79.30 i 27.78
out
100 temp 32.10 ust 38.20 d 0.00 ed 6.10
066
16:09:23.082 -> e 6.00 p 78.00 i 28.08
out
100 temp 32.20 ust 38.20 d 0.00 ed 6.00
067
16:09:24.279 -> e 5.90 p 76.70 i 28.38
out
100 temp 32.30 ust 38.20 d 0.00 ed 5.90
068
16:09:25.512 -> e 5.70 p 74.10 i 28.66
out
100 temp 32.50 ust 38.20 d 0.00 ed 5.70
069
16:09:26.782 -> e 5.60 p 72.80 i 28.94
out
100 temp 32.60 ust 38.20 d 0.00 ed 5.60
070
16:09:27.982 -> e 5.50 p 71.50 i 29.22
out
100 temp 32.70 ust 38.20 d 0.00 ed 5.50
071
16:09:29.217 -> e 5.30 p 68.90 i 29.48
out
98 temp 32.90 ust 38.20 d 0.00 ed 5.30
072
16:09:30.409 -> e 5.20 p 67.60 i 29.74
out
97 temp 33.00 ust 38.20 d 0.00 ed 5.20
073
16:09:31.677 -> e 5.20 p 67.60 i 30.00
out
97 temp 33.00 ust 38.20 d 0.00 ed 5.20
074
16:09:32.879 -> e 5.10 p 66.30 i 30.26
out
96 temp 33.10 ust 38.20 d 0.00 ed 5.10
075
16:09:34.111 -> e 4.90 p 63.70 i 30.50
out
94 temp 33.30 ust 38.20 d 0.00 ed 4.90
076
16:09:35.346 -> e 4.80 p 62.40 i 30.74
out
93 temp 33.40 ust 38.20 d 0.00 ed 4.80
077
16:09:36.581 -> e 4.70 p 61.10 i 30.98
out
92 temp 33.50 ust 38.20 d 0.00 ed 4.70
078
16:09:37.781 -> e 4.60 p 59.80 i 31.21
out
91 temp 33.60 ust 38.20 d 0.00 ed 4.60
079
16:09:39.011 -> e 4.40 p 57.20 i 31.43
out
88 temp 33.80 ust 38.20 d 0.00 ed 4.40
080
16:09:40.282 -> e 4.30 p 55.90 i 31.64
out
87 temp 33.90 ust 38.20 d 0.00 ed 4.30
081
16:09:41.492 -> e 4.20 p 54.60 i 31.85
out
86 temp 34.00 ust 38.20 d 0.00 ed 4.20
082
16:09:42.757 -> e 4.10 p 53.30 i 32.06
out
85 temp 34.10 ust 38.20 d 0.00 ed 4.10
083
16:09:43.963 -> e 4.10 p 53.30 i 32.26
out
85 temp 34.10 ust 38.20 d 0.00 ed 4.10
084
16:09:45.234 -> e 3.90 p 50.70 i 32.46
out
83 temp 34.30 ust 38.20 d 0.00 ed 3.90
085
16:09:46.434 -> e 3.80 p 49.40 i 32.65
out
82 temp 34.40 ust 38.20 d 0.00 ed 3.80
086
16:09:47.638 -> e 3.70 p 48.10 i 32.83
out
80 temp 34.50 ust 38.20 d 0.00 ed 3.70
087
16:09:48.903 -> e 3.60 p 46.80 i 33.01
out
79 temp 34.60 ust 38.20 d 0.00 ed 3.60
088
16:09:50.102 -> e 3.60 p 46.80 i 33.19
out
79 temp 34.60 ust 38.20 d 0.00 ed 3.60
089
16:09:51.344 -> e 3.40 p 44.20 i 33.36
out
77 temp 34.80 ust 38.20 d 0.00 ed 3.40
090
16:09:52.541 -> e 3.30 p 42.90 i 33.53
out
76 temp 34.90 ust 38.20 d 0.00 ed 3.30
091
16:09:53.798 -> e 3.20 p 41.60 i 33.69
out
75 temp 35.00 ust 38.20 d 0.00 ed 3.20
092
16:09:55.066 -> e 3.10 p 40.30 i 33.84
out
74 temp 35.10 ust 38.20 d 0.00 ed 3.10
093
16:09:56.228 -> e 3.00 p 39.00 i 33.99
out
72 temp 35.20 ust 38.20 d 0.00 ed 3.00
094
16:09:57.493 -> e 2.90 p 37.70 i 34.14
out
71 temp 35.30 ust 38.20 d 0.00 ed 2.90
095
16:09:58.745 -> e 2.90 p 37.70 i 34.28
out
71 temp 35.30 ust 38.20 d 0.00 ed 2.90
096
16:09:59.938 -> e 2.70 p 35.10 i 34.42
out
69 temp 35.50 ust 38.20 d 0.00 ed 2.70
097
16:10:01.168 -> e 2.70 p 35.10 i 34.55
out
69 temp 35.50 ust 38.20 d 0.00 ed 2.70
098
16:10:02.368 -> e 2.60 p 33.80 i 34.68
out
68 temp 35.60 ust 38.20 d 0.00 ed 2.60
099
16:10:03.633 -> e 2.40 p 31.20 i 34.80
out
66 temp 35.80 ust 38.20 d 0.00 ed 2.40
100
16:10:04.871 -> e 2.40 p 31.20 i 34.92
out
66 temp 35.80 ust 38.20 d 0.00 ed 2.40
101
16:10:06.078 -> e 2.20 p 28.60 i 35.03
out
63 temp 36.00 ust 38.20 d 0.00 ed 2.20
102
16:10:07.315 -> e 2.20 p 28.60 i 35.14
out
63 temp 36.00 ust 38.20 d 0.00 ed 2.20
103
16:10:08.546 -> e 2.10 p 27.30 i 35.25
out
62 temp 36.10 ust 38.20 d 0.00 ed 2.10
104
16:10:09.773 -> e 2.10 p 27.30 i 35.35
out
62 temp 36.10 ust 38.20 d 0.00 ed 2.10
105
16:10:11.001 -> e 1.90 p 24.70 i 35.45
out
60 temp 36.30 ust 38.20 d 0.00 ed 1.90
106
16:10:12.229 -> e 1.80 p 23.40 i 35.54
out
58 temp 36.40 ust 38.20 d 0.00 ed 1.80
107
16:10:13.454 -> e 1.80 p 23.40 i 35.63
out
59 temp 36.40 ust 38.20 d 0.00 ed 1.80
108
16:10:14.652 -> e 1.70 p 22.10 i 35.71
out
57 temp 36.50 ust 38.20 d 0.00 ed 1.70
109
16:10:15.917 -> e 1.60 p 20.80 i 35.79
out
56 temp 36.60 ust 38.20 d 0.00 ed 1.60
110
16:10:17.151 -> e 1.60 p 20.80 i 35.87
out
56 temp 36.60 ust 38.20 d 0.00 ed 1.60
111
16:10:18.381 -> e 1.50 p 19.50 i 35.95
out
55 temp 36.70 ust 38.20 d 0.00 ed 1.50
112
16:10:19.551 -> e 1.40 p 18.20 i 36.02
out
54 temp 36.80 ust 38.20 d 0.00 ed 1.40
113
16:10:20.819 -> e 1.30 p 16.90 i 36.08
out
52 temp 36.90 ust 38.20 d 0.00 ed 1.30
114
16:10:22.017 -> e 1.20 p 15.60 i 36.14
out
51 temp 37.00 ust 38.20 d 0.00 ed 1.20
115
16:10:23.276 -> e 1.20 p 15.60 i 36.20
out
51 temp 37.00 ust 38.20 d 0.00 ed 1.20
116
16:10:24.543 -> e 1.10 p 14.30 i 36.26
out
50 temp 37.10 ust 38.20 d 0.00 ed 1.10
117
16:10:25.743 -> e 1.10 p 14.30 i 36.31
out
50 temp 37.10 ust 38.20 d 0.00 ed 1.10
118
16:10:26.943 -> e 0.90 p 11.70 i 36.36
out
48 temp 37.30 ust 38.20 d 0.00 ed 0.90
119
16:10:28.206 -> e 0.90 p 11.70 i 36.40
out
48 temp 37.30 ust 38.20 d 0.00 ed 0.90
120
16:10:29.430 -> e 0.80 p 10.40 i 36.44
out
46 temp 37.40 ust 38.20 d 0.00 ed 0.80
121
16:10:30.621 -> e 0.70 p 9.10 i 36.48
out
45 temp 37.50 ust 38.20 d 0.00 ed 0.70
122
16:10:31.898 -> e 0.70 p 9.10 i 36.51
out
45 temp 37.50 ust 38.20 d 0.00 ed 0.70
123
16:10:33.103 -> e 0.60 p 7.80 i 36.54
out
44 temp 37.60 ust 38.20 d 0.00 ed 0.60
124
16:10:34.341 -> e 0.60 p 7.80 i 36.57
out
44 temp 37.60 ust 38.20 d 0.00 ed 0.60
125
16:10:35.537 -> e 0.50 p 6.50 i 36.60
out
43 temp 37.70 ust 38.20 d 0.00 ed 0.50
126
16:10:36.798 -> e 0.40 p 5.20 i 36.62
out
41 temp 37.80 ust 38.20 d 0.00 ed 0.40
127
16:10:37.997 -> e 0.40 p 5.20 i 36.64
out
41 temp 37.80 ust 38.20 d 0.00 ed 0.40
128
16:10:39.267 -> e 0.30 p 3.90 i 36.65
out
40 temp 37.90 ust 38.20 d 0.00 ed 0.30
129
16:10:40.463 -> e 0.20 p 2.60 i 36.66
out
39 temp 38.00 ust 38.20 d 0.00 ed 0.20
130
16:10:41.698 -> e 0.20 p 2.60 i 36.67
out
39 temp 38.00 ust 38.20 d 0.00 ed 0.20
131
16:10:42.898 -> e 0.10 p 1.30 i 36.68
out
37 temp 38.10 ust 38.20 d 0.00 ed 0.10
132
16:10:44.169 -> e 0.10 p 1.30 i 36.68
out
37 temp 38.10 ust 38.20 d 0.00 ed 0.10
133
16:10:45.363 -> e 0.00 p 0.00 i 36.68
out
36 temp 38.20 ust 38.20 d 0.00 ed 0.00
134
16:10:46.591 -> e -0.10 p 0.00 i 36.68
out
36 temp 38.30 ust 38.20 d 0.00 ed -0.10
135
16:10:47.860 -> e -0.10 p 0.00 i 36.67
out
36 temp 38.30 ust 38.20 d 0.00 ed -0.10
136
16:10:49.067 -> e -0.20 p 0.00 i 36.66
out
36 temp 38.40 ust 38.20 d 0.00 ed -0.20
137
16:10:50.307 -> e -0.20 p 0.00 i 36.65
out
36 temp 38.40 ust 38.20 d 0.00 ed -0.20
138
16:10:51.578 -> e -0.30 p 0.00 i 36.64
out
36 temp 38.50 ust 38.20 d 0.00 ed -0.30
139
16:10:52.785 -> e -0.30 p 0.00 i 36.62
out
36 temp 38.50 ust 38.20 d 0.00 ed -0.30
140
16:10:54.019 -> e -0.40 p 0.00 i 36.60
out
36 temp 38.60 ust 38.20 d 0.00 ed -0.40
141
16:10:55.217 -> e -0.40 p 0.00 i 36.58
out
36 temp 38.60 ust 38.20 d 0.00 ed -0.40
142
16:10:56.490 -> e -0.50 p 0.00 i 36.56
out
36 temp 38.70 ust 38.20 d 0.00 ed -0.50
143
16:10:57.685 -> e -0.50 p 0.00 i 36.53
out
36 temp 38.70 ust 38.20 d 0.00 ed -0.50
144
16:10:58.948 -> e -0.60 p 0.00 i 36.50
out
36 temp 38.80 ust 38.20 d 0.00 ed -0.60
145
16:11:00.172 -> e -0.60 p 0.00 i 36.47
out
36 temp 38.80 ust 38.20 d 0.00 ed -0.60
146
16:11:01.403 -> e -0.60 p 0.00 i 36.44
out
36 temp 38.80 ust 38.20 d 0.00 ed -0.60
147
16:11:02.597 -> e -0.70 p 0.00 i 36.41
out
36 temp 38.90 ust 38.20 d 0.00 ed -0.70
148
16:11:03.866 -> e -0.70 p 0.00 i 36.37
out
36 temp 38.90 ust 38.20 d 0.00 ed -0.70
149
16:11:05.068 -> e -0.80 p 0.00 i 36.33
out
36 temp 39.00 ust 38.20 d 0.00 ed -0.80
150
16:11:06.302 -> e -0.80 p 0.00 i 36.29
out
36 temp 39.00 ust 38.20 d 0.00 ed -0.80
151
16:11:07.533 -> e -0.90 p 0.00 i 36.25
out
36 temp 39.10 ust 38.20 d 0.00 ed -0.90
152
16:11:08.772 -> e -0.90 p 0.00 i 36.20
out
36 temp 39.10 ust 38.20 d 0.00 ed -0.90
153
16:11:10.011 -> e -0.90 p 0.00 i 36.16
out
36 temp 39.10 ust 38.20 d 0.00 ed -0.90
154
16:11:11.218 -> e -1.00 p 0.00 i 36.11
out
36 temp 39.20 ust 38.20 d 0.00 ed -1.00
155
16:11:12.449 -> e -1.00 p 0.00 i 36.06
out
36 temp 39.20 ust 38.20 d 0.00 ed -1.00
156
16:11:13.716 -> e -1.10 p 0.00 i 36.00
out
36 temp 39.30 ust 38.20 d 0.00 ed -1.10
157
16:11:14.916 -> e -1.10 p 0.00 i 35.95
out
35 temp 39.30 ust 38.20 d 0.00 ed -1.10
158
16:11:16.108 -> e -1.10 p 0.00 i 35.89
out
35 temp 39.30 ust 38.20 d 0.00 ed -1.10
159
16:11:17.369 -> e -1.20 p 0.00 i 35.83
out
35 temp 39.40 ust 38.20 d 0.00 ed -1.20
160
16:11:18.558 -> e -1.20 p 0.00 i 35.77
out
35 temp 39.40 ust 38.20 d 0.00 ed -1.20
161
16:11:19.858 -> e -1.30 p 0.00 i 35.71
out
35 temp 39.50 ust 38.20 d 0.00 ed -1.30
162
16:11:21.055 -> e -1.30 p 0.00 i 35.64
out
35 temp 39.50 ust 38.20 d 0.00 ed -1.30
163
16:11:22.284 -> e -1.30 p 0.00 i 35.58
out
35 temp 39.50 ust 38.20 d 0.00 ed -1.30
164
16:11:23.479 -> e -1.30 p 0.00 i 35.51
out
35 temp 39.50 ust 38.20 d 0.00 ed -1.30
165
16:11:24.717 -> e -1.40 p 0.00 i 35.44
out
35 temp 39.60 ust 38.20 d 0.00 ed -1.40
166
16:11:25.959 -> e -1.40 p 0.00 i 35.37
out
35 temp 39.60 ust 38.20 d 0.00 ed -1.40
167
16:11:27.152 -> e -1.40 p 0.00 i 35.30
out
35 temp 39.60 ust 38.20 d 0.00 ed -1.40
168
16:11:28.446 -> e -1.40 p 0.00 i 35.23
out
35 temp 39.60 ust 38.20 d 0.00 ed -1.40
169
16:11:29.641 -> e -1.50 p 0.00 i 35.16
out
35 temp 39.70 ust 38.20 d 0.00 ed -1.50
170
16:11:30.903 -> e -1.60 p 0.00 i 35.08
out
35 temp 39.80 ust 38.20 d 0.00 ed -1.60
171
16:11:32.098 -> e -1.60 p 0.00 i 35.00
out
34 temp 39.80 ust 38.20 d 0.00 ed -1.60
172
16:11:33.326 -> e -1.60 p 0.00 i 34.92
out
34 temp 39.80 ust 38.20 d 0.00 ed -1.60
173
16:11:34.553 -> e -1.60 p 0.00 i 34.84
out
34 temp 39.80 ust 38.20 d 0.00 ed -1.60
174
16:11:35.787 -> e -1.60 p 0.00 i 34.76
out
34 temp 39.80 ust 38.20 d 0.00 ed -1.60
175
16:11:36.987 -> e -1.70 p 0.00 i 34.67
out
34 temp 39.90 ust 38.20 d 0.00 ed -1.70
176
16:11:38.285 -> e -1.70 p 0.00 i 34.59
out
34 temp 39.90 ust 38.20 d 0.00 ed -1.70
177
16:11:39.448 -> e -1.70 p 0.00 i 34.50
out
34 temp 39.90 ust 38.20 d 0.00 ed -1.70
178
16:11:40.713 -> e -1.80 p 0.00 i 34.41
out
34 temp 40.00 ust 38.20 d 0.00 ed -1.80
179
16:11:41.943 -> e -1.80 p 0.00 i 34.32
out
34 temp 40.00 ust 38.20 d 0.00 ed -1.80
180
16:11:43.172 -> e -1.80 p 0.00 i 34.23
out
34 temp 40.00 ust 38.20 d 0.00 ed -1.80
181
16:11:44.401 -> e -1.80 p 0.00 i 34.14
out
34 temp 40.00 ust 38.20 d 0.00 ed -1.80
182
16:11:45.662 -> e -1.80 p 0.00 i 34.05
out
34 temp 40.00 ust 38.20 d 0.00 ed -1.80
183
16:11:46.860 -> e -1.80 p 0.00 i 33.96
out
33 temp 40.00 ust 38.20 d 0.00 ed -1.80
184
16:11:48.112 -> e -1.90 p 0.00 i 33.87
out
33 temp 40.10 ust 38.20 d 0.00 ed -1.90
185
16:11:49.342 -> e -1.90 p 0.00 i 33.77
out
33 temp 40.10 ust 38.20 d 0.00 ed -1.90
186
16:11:50.543 -> e -1.90 p 0.00 i 33.68
out
33 temp 40.10 ust 38.20 d 0.00 ed -1.90
187
16:11:51.802 -> e -1.90 p 0.00 i 33.58
out
33 temp 40.10 ust 38.20 d 0.00 ed -1.90
188
16:11:52.995 -> e -1.90 p 0.00 i 33.49
out
33 temp 40.10 ust 38.20 d 0.00 ed -1.90
189
16:11:54.196 -> e -1.90 p 0.00 i 33.39
out
33 temp 40.10 ust 38.20 d 0.00 ed -1.90
190
16:11:55.466 -> e -1.90 p 0.00 i 33.30
out
33 temp 40.10 ust 38.20 d 0.00 ed -1.90
191
16:11:56.666 -> e -2.00 p 0.00 i 33.20
out
33 temp 40.20 ust 38.20 d 0.00 ed -2.00
192
16:11:57.905 -> e -2.00 p 0.00 i 33.10
out
33 temp 40.20 ust 38.20 d 0.00 ed -2.00
193
16:11:59.168 -> e -2.00 p 0.00 i 33.00
out
32 temp 40.20 ust 38.20 d 0.00 ed -2.00
194
16:12:00.360 -> e -2.00 p 0.00 i 32.90
out
32 temp 40.20 ust 38.20 d 0.00 ed -2.00
195
16:12:01.624 -> e -2.00 p 0.00 i 32.80
out
32 temp 40.20 ust 38.20 d 0.00 ed -2.00
196
16:12:02.824 -> e -2.00 p 0.00 i 32.70
out
32 temp 40.20 ust 38.20 d 0.00 ed -2.00
197
16:12:04.085 -> e -2.00 p 0.00 i 32.60
out
32 temp 40.20 ust 38.20 d 0.00 ed -2.00
198
16:12:05.281 -> e -2.10 p 0.00 i 32.49
out
32 temp 40.30 ust 38.20 d 0.00 ed -2.10
199
16:12:06.545 -> e -2.10 p 0.00 i 32.39
out
32 temp 40.30 ust 38.20 d 0.00 ed -2.10
200
16:12:07.770 -> e -2.10 p 0.00 i 32.28
out
32 temp 40.30 ust 38.20 d 0.00 ed -2.10
201
16:12:09.003 -> e -2.10 p 0.00 i 32.18
out
32 temp 40.30 ust 38.20 d 0.00 ed -2.10
202
16:12:10.232 -> e -2.10 p 0.00 i 32.07
out
32 temp 40.30 ust 38.20 d 0.00 ed -2.10
203
16:12:11.425 -> e -2.10 p 0.00 i 31.97
out
31 temp 40.30 ust 38.20 d 0.00 ed -2.10
204
16:12:12.654 -> e -2.10 p 0.00 i 31.86
out
31 temp 40.30 ust 38.20 d 0.00 ed -2.10
205
16:12:13.922 -> e -2.10 p 0.00 i 31.76
out
31 temp 40.30 ust 38.20 d 0.00 ed -2.10
206
16:12:15.090 -> e -2.10 p 0.00 i 31.65
out
31 temp 40.30 ust 38.20 d 0.00 ed -2.10
207
16:12:16.329 -> e -2.10 p 0.00 i 31.55
out
31 temp 40.30 ust 38.20 d 0.00 ed -2.10
208
16:12:17.609 -> e -2.10 p 0.00 i 31.44
out
31 temp 40.30 ust 38.20 d 0.00 ed -2.10
209
16:12:18.826 -> e -2.10 p 0.00 i 31.34
out
31 temp 40.30 ust 38.20 d 0.00 ed -2.10
210
16:12:20.018 -> e -2.10 p 0.00 i 31.23
out
31 temp 40.30 ust 38.20 d 0.00 ed -2.10
211
16:12:21.287 -> e -2.10 p 0.00 i 31.13
out
31 temp 40.30 ust 38.20 d 0.00 ed -2.10
212
16:12:22.523 -> e -2.10 p 0.00 i 31.02
out
31 temp 40.30 ust 38.20 d 0.00 ed -2.10
213
16:12:23.690 -> e -2.10 p 0.00 i 30.92
out
30 temp 40.30 ust 38.20 d 0.00 ed -2.10
214
16:12:24.917 -> e -2.10 p 0.00 i 30.81
out
30 temp 40.30 ust 38.20 d 0.00 ed -2.10
215
16:12:26.178 -> e -2.10 p 0.00 i 30.71
out
30 temp 40.30 ust 38.20 d 0.00 ed -2.10
216
16:12:27.402 -> e -2.10 p 0.00 i 30.60
out
30 temp 40.30 ust 38.20 d 0.00 ed -2.10
217
16:12:28.667 -> e -2.10 p 0.00 i 30.50
out
30 temp 40.30 ust 38.20 d 0.00 ed -2.10
218
16:12:29.865 -> e -2.10 p 0.00 i 30.39
out
30 temp 40.30 ust 38.20 d 0.00 ed -2.10
219
16:12:31.093 -> e -2.10 p 0.00 i 30.29
out
30 temp 40.30 ust 38.20 d 0.00 ed -2.10
220
16:12:32.367 -> e -2.10 p 0.00 i 30.18
out
30 temp 40.30 ust 38.20 d 0.00 ed -2.10
221
16:12:33.533 -> e -2.00 p 0.00 i 30.08
out
30 temp 40.20 ust 38.20 d 0.00 ed -2.00
222
16:12:34.773 -> e -2.00 p 0.00 i 29.98
out
29 temp 40.20 ust 38.20 d 0.00 ed -2.00
223
16:12:36.008 -> e -2.00 p 0.00 i 29.88
out
29 temp 40.20 ust 38.20 d 0.00 ed -2.00
224
16:12:37.275 -> e -2.00 p 0.00 i 29.78
out
29 temp 40.20 ust 38.20 d 0.00 ed -2.00
225
16:12:38.473 -> e -2.00 p 0.00 i 29.68
out
29 temp 40.20 ust 38.20 d 0.00 ed -2.00
226
16:12:39.702 -> e -2.00 p 0.00 i 29.58
out
29 temp 40.20 ust 38.20 d 0.00 ed -2.00
227
16:12:40.970 -> e -2.00 p 0.00 i 29.48
out
29 temp 40.20 ust 38.20 d 0.00 ed -2.00
228
16:12:42.205 -> e -2.00 p 0.00 i 29.38
out
29 temp 40.20 ust 38.20 d 0.00 ed -2.00
229
16:12:43.437 -> e -2.00 p 0.00 i 29.28
out
29 temp 40.20 ust 38.20 d 0.00 ed -2.00
230
16:12:44.603 -> e -1.90 p 0.00 i 29.19
out
29 temp 40.10 ust 38.20 d 0.00 ed -1.90
231
16:12:45.870 -> e -1.90 p 0.00 i 29.09
out
29 temp 40.10 ust 38.20 d 0.00 ed -1.90
232
16:12:47.034 -> e -1.90 p 0.00 i 29.00
out
28 temp 40.10 ust 38.20 d 0.00 ed -1.90
233
16:12:48.333 -> e -1.90 p 0.00 i 28.90
out
28 temp 40.10 ust 38.20 d 0.00 ed -1.90
234
16:12:49.520 -> e -1.90 p 0.00 i 28.81
out
28 temp 40.10 ust 38.20 d 0.00 ed -1.90
235
16:12:50.778 -> e -1.90 p 0.00 i 28.71
out
28 temp 40.10 ust 38.20 d 0.00 ed -1.90
236
16:12:52.006 -> e -1.90 p 0.00 i 28.62
out
28 temp 40.10 ust 38.20 d 0.00 ed -1.90
237
16:12:53.241 -> e -1.90 p 0.00 i 28.52
out
28 temp 40.10 ust 38.20 d 0.00 ed -1.90
238
16:12:54.471 -> e -1.90 p 0.00 i 28.43
out
28 temp 40.10 ust 38.20 d 0.00 ed -1.90
239
16:12:55.697 -> e -1.90 p 0.00 i 28.33
out
28 temp 40.10 ust 38.20 d 0.00 ed -1.90
240
16:12:56.893 -> e -1.90 p 0.00 i 28.24
out
28 temp 40.10 ust 38.20 d 0.00 ed -1.90
241
16:12:58.187 -> e -1.90 p 0.00 i 28.14
out
28 temp 40.10 ust 38.20 d 0.00 ed -1.90
242
16:12:59.348 -> e -1.90 p 0.00 i 28.05
out
28 temp 40.10 ust 38.20 d 0.00 ed -1.90
243
16:13:00.619 -> e -1.90 p 0.00 i 27.95
out
27 temp 40.10 ust 38.20 d 0.00 ed -1.90
244
16:13:01.885 -> e -1.90 p 0.00 i 27.86
out
27 temp 40.10 ust 38.20 d 0.00 ed -1.90
245
16:13:03.082 -> e -1.90 p 0.00 i 27.76
out
27 temp 40.10 ust 38.20 d 0.00 ed -1.90
246
16:13:04.348 -> e -1.80 p 0.00 i 27.67
out
27 temp 40.00 ust 38.20 d 0.00 ed -1.80
247
16:13:05.546 -> e -1.80 p 0.00 i 27.58
out
27 temp 40.00 ust 38.20 d 0.00 ed -1.80
248
16:13:06.771 -> e -1.80 p 0.00 i 27.49
out
27 temp 40.00 ust 38.20 d 0.00 ed -1.80
249
16:13:08.000 -> e -1.80 p 0.00 i 27.40
out
27 temp 40.00 ust 38.20 d 0.00 ed -1.80
250
16:13:09.229 -> e -1.80 p 0.00 i 27.31
out
27 temp 40.00 ust 38.20 d 0.00 ed -1.80
251
16:13:10.460 -> e -1.80 p 0.00 i 27.22
out
27 temp 40.00 ust 38.20 d 0.00 ed -1.80
252
16:13:11.662 -> e -1.80 p 0.00 i 27.13
out
27 temp 40.00 ust 38.20 d 0.00 ed -1.80
253
16:13:12.932 -> e -1.80 p 0.00 i 27.04
out
27 temp 40.00 ust 38.20 d 0.00 ed -1.80
254
16:13:14.161 -> e -1.70 p 0.00 i 26.96
out
26 temp 39.90 ust 38.20 d 0.00 ed -1.70
255
16:13:15.390 -> e -1.70 p 0.00 i 26.87
out
26 temp 39.90 ust 38.20 d 0.00 ed -1.70
256
16:13:16.622 -> e -1.70 p 0.00 i 26.79
out
26 temp 39.90 ust 38.20 d 0.00 ed -1.70
257
16:13:17.852 -> e -1.70 p 0.00 i 26.70
out
26 temp 39.90 ust 38.20 d 0.00 ed -1.70
258
16:13:19.046 -> e -1.70 p 0.00 i 26.62
out
26 temp 39.90 ust 38.20 d 0.00 ed -1.70
259
16:13:20.311 -> e -1.70 p 0.00 i 26.53
out
26 temp 39.90 ust 38.20 d 0.00 ed -1.70
260
16:13:21.541 -> e -1.60 p 0.00 i 26.45
out
26 temp 39.80 ust 38.20 d 0.00 ed -1.60
261
16:13:22.774 -> e -1.60 p 0.00 i 26.37
out
26 temp 39.80 ust 38.20 d 0.00 ed -1.60
262
16:13:23.976 -> e -1.60 p 0.00 i 26.29
out
26 temp 39.80 ust 38.20 d 0.00 ed -1.60
263
16:13:25.210 -> e -1.60 p 0.00 i 26.21
out
26 temp 39.80 ust 38.20 d 0.00 ed -1.60
264
16:13:26.409 -> e -1.60 p 0.00 i 26.13
out
26 temp 39.80 ust 38.20 d 0.00 ed -1.60
265
16:13:27.643 -> e -1.60 p 0.00 i 26.05
out
26 temp 39.80 ust 38.20 d 0.00 ed -1.60
266
16:13:28.841 -> e -1.60 p 0.00 i 25.97
out
25 temp 39.80 ust 38.20 d 0.00 ed -1.60
267
16:13:30.107 -> e -1.60 p 0.00 i 25.89
out
25 temp 39.80 ust 38.20 d 0.00 ed -1.60
268
16:13:31.336 -> e -1.60 p 0.00 i 25.81
out
25 temp 39.80 ust 38.20 d 0.00 ed -1.60
269
16:13:32.559 -> e -1.60 p 0.00 i 25.73
out
25 temp 39.80 ust 38.20 d 0.00 ed -1.60
270
16:13:33.785 -> e -1.60 p 0.00 i 25.65
out
25 temp 39.80 ust 38.20 d 0.00 ed -1.60
271
16:13:35.041 -> e -1.50 p 0.00 i 25.58
out
25 temp 39.70 ust 38.20 d 0.00 ed -1.50
272
16:13:36.240 -> e -1.50 p 0.00 i 25.50
out
25 temp 39.70 ust 38.20 d 0.00 ed -1.50
273
16:13:37.464 -> e -1.50 p 0.00 i 25.43
out
25 temp 39.70 ust 38.20 d 0.00 ed -1.50
274
16:13:38.735 -> e -1.50 p 0.00 i 25.35
out
25 temp 39.70 ust 38.20 d 0.00 ed -1.50
275
16:13:39.925 -> e -1.40 p 0.00 i 25.28
out
25 temp 39.60 ust 38.20 d 0.00 ed -1.40
276
16:13:41.192 -> e -1.40 p 0.00 i 25.21
out
25 temp 39.60 ust 38.20 d 0.00 ed -1.40
277
16:13:42.432 -> e -1.40 p 0.00 i 25.14
out
25 temp 39.60 ust 38.20 d 0.00 ed -1.40
278
16:13:43.598 -> e -1.40 p 0.00 i 25.07
out
25 temp 39.60 ust 38.20 d 0.00 ed -1.40
279
16:13:44.860 -> e -1.40 p 0.00 i 25.00
out
25 temp 39.60 ust 38.20 d 0.00 ed -1.40
280
16:13:46.060 -> e -1.40 p 0.00 i 24.93
out
24 temp 39.60 ust 38.20 d 0.00 ed -1.40
281
16:13:47.323 -> e -1.40 p 0.00 i 24.86
out
24 temp 39.60 ust 38.20 d 0.00 ed -1.40
282
16:13:48.555 -> e -1.40 p 0.00 i 24.79
out
24 temp 39.60 ust 38.20 d 0.00 ed -1.40
283
16:13:49.757 -> e -1.30 p 0.00 i 24.73
out
24 temp 39.50 ust 38.20 d 0.00 ed -1.30
284
16:13:51.021 -> e -1.30 p 0.00 i 24.66
out
24 temp 39.50 ust 38.20 d 0.00 ed -1.30
285
16:13:52.220 -> e -1.30 p 0.00 i 24.60
out
24 temp 39.50 ust 38.20 d 0.00 ed -1.30
286
16:13:53.483 -> e -1.30 p 0.00 i 24.53
out
24 temp 39.50 ust 38.20 d 0.00 ed -1.30
287
16:13:54.682 -> e -1.30 p 0.00 i 24.47
out
24 temp 39.50 ust 38.20 d 0.00 ed -1.30
288
16:13:55.915 -> e -1.30 p 0.00 i 24.40
out
24 temp 39.50 ust 38.20 d 0.00 ed -1.30
289
16:13:57.141 -> e -1.30 p 0.00 i 24.34
out
24 temp 39.50 ust 38.20 d 0.00 ed -1.30
290
16:13:58.335 -> e -1.20 p 0.00 i 24.28
out
24 temp 39.40 ust 38.20 d 0.00 ed -1.20
291
16:13:59.567 -> e -1.20 p 0.00 i 24.22
out
24 temp 39.40 ust 38.20 d 0.00 ed -1.20
292
16:14:00.830 -> e -1.20 p 0.00 i 24.16
out
24 temp 39.40 ust 38.20 d 0.00 ed -1.20
293
16:14:02.025 -> e -1.20 p 0.00 i 24.10
out
24 temp 39.40 ust 38.20 d 0.00 ed -1.20
294
16:14:03.287 -> e -1.10 p 0.00 i 24.04
out
24 temp 39.30 ust 38.20 d 0.00 ed -1.10
295
16:14:04.549 -> e -1.10 p 0.00 i 23.99
out
23 temp 39.30 ust 38.20 d 0.00 ed -1.10
296
16:14:05.713 -> e -1.10 p 0.00 i 23.93
out
23 temp 39.30 ust 38.20 d 0.00 ed -1.10
297
16:14:06.988 -> e -1.10 p 0.00 i 23.88
out
23 temp 39.30 ust 38.20 d 0.00 ed -1.10
298
16:14:08.194 -> e -1.10 p 0.00 i 23.82
out
23 temp 39.30 ust 38.20 d 0.00 ed -1.10
299
16:14:09.466 -> e -1.10 p 0.00 i 23.77
out
23 temp 39.30 ust 38.20 d 0.00 ed -1.10
300
16:14:10.659 -> e -1.10 p 0.00 i 23.71
out
23 temp 39.30 ust 38.20 d 0.00 ed -1.10
301
16:14:11.896 -> e -1.10 p 0.00 i 23.66
out
23 temp 39.30 ust 38.20 d 0.00 ed -1.10
302
16:14:13.105 -> e -1.10 p 0.00 i 23.60
out
23 temp 39.30 ust 38.20 d 0.00 ed -1.10
303
16:14:14.369 -> e -1.00 p 0.00 i 23.55
out
23 temp 39.20 ust 38.20 d 0.00 ed -1.00
304
16:14:15.605 -> e -1.00 p 0.00 i 23.50
out
23 temp 39.20 ust 38.20 d 0.00 ed -1.00
305
16:14:16.769 -> e -1.00 p 0.00 i 23.45
out
23 temp 39.20 ust 38.20 d 0.00 ed -1.00
306
16:14:18.034 -> e -1.00 p 0.00 i 23.40
out
23 temp 39.20 ust 38.20 d 0.00 ed -1.00
307
16:14:19.232 -> e -1.00 p 0.00 i 23.35
out
23 temp 39.20 ust 38.20 d 0.00 ed -1.00
308
16:14:20.458 -> e -1.00 p 0.00 i 23.30
out
23 temp 39.20 ust 38.20 d 0.00 ed -1.00
309
16:14:21.754 -> e -0.90 p 0.00 i 23.26
out
23 temp 39.10 ust 38.20 d 0.00 ed -0.90
310
16:14:22.951 -> e -0.90 p 0.00 i 23.21
out
23 temp 39.10 ust 38.20 d 0.00 ed -0.90
311
16:14:24.174 -> e -0.90 p 0.00 i 23.17
out
23 temp 39.10 ust 38.20 d 0.00 ed -0.90
312
16:14:25.432 -> e -0.90 p 0.00 i 23.12
out
23 temp 39.10 ust 38.20 d 0.00 ed -0.90
313
16:14:26.601 -> e -0.90 p 0.00 i 23.08
out
23 temp 39.10 ust 38.20 d 0.00 ed -0.90
314
16:14:27.866 -> e -0.90 p 0.00 i 23.03
out
23 temp 39.10 ust 38.20 d 0.00 ed -0.90
315
16:14:29.094 -> e -0.90 p 0.00 i 22.99
out
22 temp 39.10 ust 38.20 d 0.00 ed -0.90
316
16:14:30.364 -> e -0.90 p 0.00 i 22.94
out
22 temp 39.10 ust 38.20 d 0.00 ed -0.90
317
16:14:31.531 -> e -0.90 p 0.00 i 22.90
out
22 temp 39.10 ust 38.20 d 0.00 ed -0.90
318
16:14:32.824 -> e -0.90 p 0.00 i 22.85
out
22 temp 39.10 ust 38.20 d 0.00 ed -0.90
319
16:14:33.986 -> e -0.90 p 0.00 i 22.81
out
22 temp 39.10 ust 38.20 d 0.00 ed -0.90
320
16:14:35.246 -> e -0.80 p 0.00 i 22.77
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
321
16:14:36.443 -> e -0.80 p 0.00 i 22.73
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
322
16:14:37.746 -> e -0.80 p 0.00 i 22.69
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
323
16:14:38.911 -> e -0.80 p 0.00 i 22.65
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
324
16:14:40.135 -> e -0.80 p 0.00 i 22.61
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
325
16:14:41.396 -> e -0.80 p 0.00 i 22.57
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
326
16:14:42.589 -> e -0.80 p 0.00 i 22.53
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
327
16:14:43.852 -> e -0.80 p 0.00 i 22.49
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
328
16:14:45.047 -> e -0.80 p 0.00 i 22.45
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
329
16:14:46.323 -> e -0.80 p 0.00 i 22.41
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
330
16:14:47.520 -> e -0.80 p 0.00 i 22.37
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
331
16:14:48.751 -> e -0.80 p 0.00 i 22.33
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
332
16:14:49.983 -> e -0.80 p 0.00 i 22.29
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
333
16:14:51.175 -> e -0.80 p 0.00 i 22.25
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
334
16:14:52.443 -> e -0.80 p 0.00 i 22.21
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
335
16:14:53.699 -> e -0.80 p 0.00 i 22.17
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
336
16:14:54.892 -> e -0.80 p 0.00 i 22.13
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
337
16:14:56.155 -> e -0.80 p 0.00 i 22.09
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
338
16:14:57.348 -> e -0.80 p 0.00 i 22.05
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
339
16:14:58.609 -> e -0.80 p 0.00 i 22.01
out
22 temp 39.00 ust 38.20 d 0.00 ed -0.80
340
16:14:59.803 -> e -0.80 p 0.00 i 21.97
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
341
16:15:01.031 -> e -0.80 p 0.00 i 21.93
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
342
16:15:02.287 -> e -0.80 p 0.00 i 21.89
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
343
16:15:03.486 -> e -0.80 p 0.00 i 21.85
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
344
16:15:04.749 -> e -0.80 p 0.00 i 21.81
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
345
16:15:05.937 -> e -0.80 p 0.00 i 21.77
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
346
16:15:07.201 -> e -0.80 p 0.00 i 21.73
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
347
16:15:08.401 -> e -0.80 p 0.00 i 21.69
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
348
16:15:09.602 -> e -0.80 p 0.00 i 21.65
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
349
16:15:10.858 -> e -0.80 p 0.00 i 21.61
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
350
16:15:12.055 -> e -0.80 p 0.00 i 21.57
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
351
16:15:13.326 -> e -0.80 p 0.00 i 21.53
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
352
16:15:14.526 -> e -0.80 p 0.00 i 21.49
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
353
16:15:15.795 -> e -0.80 p 0.00 i 21.45
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
354
16:15:16.996 -> e -0.80 p 0.00 i 21.41
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
355
16:15:18.252 -> e -0.80 p 0.00 i 21.37
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
356
16:15:19.484 -> e -0.80 p 0.00 i 21.33
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
357
16:15:20.676 -> e -0.80 p 0.00 i 21.29
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
358
16:15:21.910 -> e -0.80 p 0.00 i 21.25
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
359
16:15:23.136 -> e -0.80 p 0.00 i 21.21
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
360
16:15:24.361 -> e -0.80 p 0.00 i 21.17
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
361
16:15:25.656 -> e -0.80 p 0.00 i 21.13
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
362
16:15:26.822 -> e -0.80 p 0.00 i 21.09
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
363
16:15:28.046 -> e -0.80 p 0.00 i 21.05
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
364
16:15:29.310 -> e -0.80 p 0.00 i 21.01
out
21 temp 39.00 ust 38.20 d 0.00 ed -0.80
365
16:15:30.505 -> e -0.80 p 0.00 i 20.97
out
20 temp 39.00 ust 38.20 d 0.00 ed -0.80
366
16:15:31.774 -> e -0.80 p 0.00 i 20.93
out
20 temp 39.00 ust 38.20 d 0.00 ed -0.80
367
16:15:32.973 -> e -0.80 p 0.00 i 20.89
out
20 temp 39.00 ust 38.20 d 0.00 ed -0.80
368
16:15:34.204 -> e -0.80 p 0.00 i 20.85
out
20 temp 39.00 ust 38.20 d 0.00 ed -0.80
369
16:15:35.406 -> e -0.80 p 0.00 i 20.81
out
20 temp 39.00 ust 38.20 d 0.00 ed -0.80
370
16:15:36.678 -> e -0.80 p 0.00 i 20.77
out
20 temp 39.00 ust 38.20 d 0.00 ed -0.80
371
16:15:37.870 -> e -0.80 p 0.00 i 20.73
out
20 temp 39.00 ust 38.20 d 0.00 ed -0.80
372
16:15:39.134 -> e -0.80 p 0.00 i 20.69
out
20 temp 39.00 ust 38.20 d 0.00 ed -0.80
373
16:15:40.364 -> e -0.80 p 0.00 i 20.65
out
20 temp 39.00 ust 38.20 d 0.00 ed -0.80
374
16:15:41.624 -> e -0.80 p 0.00 i 20.61
out
20 temp 39.00 ust 38.20 d 0.00 ed -0.80
375
16:15:42.815 -> e -0.80 p 0.00 i 20.57
out
20 temp 39.00 ust 38.20 d 0.00 ed -0.80
376
16:15:44.078 -> e -0.90 p 0.00 i 20.52
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
377
16:15:45.280 -> e -0.90 p 0.00 i 20.48
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
378
16:15:46.497 -> e -0.90 p 0.00 i 20.43
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
379
16:15:47.725 -> e -0.90 p 0.00 i 20.39
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
380
16:15:48.993 -> e -0.90 p 0.00 i 20.34
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
381
16:15:50.189 -> e -0.90 p 0.00 i 20.30
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
382
16:15:51.459 -> e -0.90 p 0.00 i 20.25
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
383
16:15:52.661 -> e -0.90 p 0.00 i 20.21
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
384
16:15:53.853 -> e -0.90 p 0.00 i 20.16
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
385
16:15:55.117 -> e -0.90 p 0.00 i 20.12
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
386
16:15:56.347 -> e -0.90 p 0.00 i 20.07
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
387
16:15:57.574 -> e -0.90 p 0.00 i 20.03
out
20 temp 39.10 ust 38.20 d 0.00 ed -0.90
388
16:15:58.766 -> e -0.90 p 0.00 i 19.98
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
389
16:16:00.030 -> e -0.90 p 0.00 i 19.94
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
390
16:16:01.296 -> e -0.90 p 0.00 i 19.89
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
391
16:16:02.454 -> e -0.90 p 0.00 i 19.85
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
392
16:16:03.715 -> e -0.90 p 0.00 i 19.80
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
393
16:16:04.979 -> e -0.90 p 0.00 i 19.76
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
394
16:16:06.136 -> e -0.90 p 0.00 i 19.71
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
395
16:16:07.398 -> e -0.90 p 0.00 i 19.67
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
396
16:16:08.662 -> e -0.90 p 0.00 i 19.62
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
397
16:16:09.889 -> e -0.90 p 0.00 i 19.57
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
398
16:16:11.116 -> e -0.90 p 0.00 i 19.53
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
399
16:16:12.321 -> e -0.90 p 0.00 i 19.48
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
400
16:16:13.585 -> e -0.90 p 0.00 i 19.44
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
401
16:16:14.779 -> e -0.90 p 0.00 i 19.39
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
402
16:16:16.010 -> e -0.90 p 0.00 i 19.35
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
403
16:16:17.208 -> e -0.90 p 0.00 i 19.30
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
404
16:16:18.450 -> e -0.90 p 0.00 i 19.26
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
405
16:16:19.713 -> e -0.90 p 0.00 i 19.21
out
19 temp 39.10 ust 38.20 d 0.00 ed -0.90
406
16:16:20.916 -> e -1.00 p 0.00 i 19.17
out
19 temp 39.20 ust 38.20 d 0.00 ed -1.00
407
16:16:22.151 -> e -1.00 p 0.00 i 19.12
out
19 temp 39.20 ust 38.20 d 0.00 ed -1.00
408
16:16:23.413 -> e -1.00 p 0.00 i 19.07
out
19 temp 39.20 ust 38.20 d 0.00 ed -1.00
409
16:16:24.614 -> e -1.00 p 0.00 i 19.02
out
19 temp 39.20 ust 38.20 d 0.00 ed -1.00
410
16:16:25.870 -> e -1.00 p 0.00 i 18.97
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
411
16:16:27.066 -> e -1.00 p 0.00 i 18.92
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
412
16:16:28.329 -> e -1.00 p 0.00 i 18.87
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
413
16:16:29.517 -> e -1.00 p 0.00 i 18.82
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
414
16:16:30.748 -> e -1.00 p 0.00 i 18.77
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
415
16:16:32.015 -> e -1.00 p 0.00 i 18.72
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
416
16:16:33.178 -> e -1.00 p 0.00 i 18.67
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
417
16:16:34.444 -> e -1.00 p 0.00 i 18.62
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
418
16:16:35.636 -> e -1.00 p 0.00 i 18.57
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
419
16:16:36.902 -> e -1.00 p 0.00 i 18.52
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
420
16:16:38.103 -> e -1.00 p 0.00 i 18.47
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
421
16:16:39.337 -> e -1.00 p 0.00 i 18.42
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
422
16:16:40.573 -> e -1.00 p 0.00 i 18.37
out
18 temp 39.20 ust 38.20 d 0.00 ed -1.00
423
16:16:41.838 -> e -1.10 p 0.00 i 18.31
out
18 temp 39.30 ust 38.20 d 0.00 ed -1.10
424
16:16:43.041 -> e -1.10 p 0.00 i 18.26
out
18 temp 39.30 ust 38.20 d 0.00 ed -1.10
425
16:16:44.275 -> e -1.10 p 0.00 i 18.20
out
18 temp 39.30 ust 38.20 d 0.00 ed -1.10
426
16:16:45.473 -> e -1.10 p 0.00 i 18.15
out
18 temp 39.30 ust 38.20 d 0.00 ed -1.10
427
16:16:46.743 -> e -1.10 p 0.00 i 18.09
out
18 temp 39.30 ust 38.20 d 0.00 ed -1.10
428
16:16:47.932 -> e -1.10 p 0.00 i 18.04
out
18 temp 39.30 ust 38.20 d 0.00 ed -1.10
429
16:16:49.170 -> e -1.10 p 0.00 i 17.98
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
430
16:16:50.368 -> e -1.10 p 0.00 i 17.93
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
431
16:16:51.626 -> e -1.10 p 0.00 i 17.87
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
432
16:16:52.891 -> e -1.10 p 0.00 i 17.82
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
433
16:16:54.092 -> e -1.10 p 0.00 i 17.76
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
434
16:16:55.348 -> e -1.10 p 0.00 i 17.71
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
435
16:16:56.541 -> e -1.10 p 0.00 i 17.65
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
436
16:16:57.777 -> e -1.10 p 0.00 i 17.60
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
437
16:16:58.973 -> e -1.10 p 0.00 i 17.54
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
438
16:17:00.234 -> e -1.10 p 0.00 i 17.49
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
439
16:17:01.504 -> e -1.10 p 0.00 i 17.43
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
440
16:17:02.697 -> e -1.10 p 0.00 i 17.38
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
441
16:17:03.965 -> e -1.10 p 0.00 i 17.32
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
442
16:17:05.162 -> e -1.10 p 0.00 i 17.27
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
443
16:17:06.432 -> e -1.10 p 0.00 i 17.21
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
444
16:17:07.591 -> e -1.10 p 0.00 i 17.16
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
445
16:17:08.851 -> e -1.10 p 0.00 i 17.10
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
446
16:17:10.086 -> e -1.10 p 0.00 i 17.05
out
17 temp 39.30 ust 38.20 d 0.00 ed -1.10
447
16:17:11.281 -> e -1.10 p 0.00 i 16.99
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
448
16:17:12.542 -> e -1.10 p 0.00 i 16.94
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
449
16:17:13.740 -> e -1.10 p 0.00 i 16.88
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
450
16:17:15.004 -> e -1.10 p 0.00 i 16.83
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
451
16:17:16.173 -> e -1.10 p 0.00 i 16.77
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
452
16:17:17.473 -> e -1.10 p 0.00 i 16.72
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
453
16:17:18.671 -> e -1.10 p 0.00 i 16.66
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
454
16:17:19.909 -> e -1.10 p 0.00 i 16.61
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
455
16:17:21.099 -> e -1.10 p 0.00 i 16.55
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
456
16:17:22.364 -> e -1.10 p 0.00 i 16.50
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
457
16:17:23.603 -> e -1.20 p 0.00 i 16.44
out
16 temp 39.40 ust 38.20 d 0.00 ed -1.20
458
16:17:24.844 -> e -1.10 p 0.00 i 16.38
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
459
16:17:26.080 -> e -1.20 p 0.00 i 16.32
out
16 temp 39.40 ust 38.20 d 0.00 ed -1.20
460
16:17:27.289 -> e -1.20 p 0.00 i 16.26
out
16 temp 39.40 ust 38.20 d 0.00 ed -1.20
461
16:17:28.525 -> e -1.20 p 0.00 i 16.20
out
16 temp 39.40 ust 38.20 d 0.00 ed -1.20
462
16:17:29.728 -> e -1.20 p 0.00 i 16.14
out
16 temp 39.40 ust 38.20 d 0.00 ed -1.20
463
16:17:30.971 -> e -1.20 p 0.00 i 16.08
out
16 temp 39.40 ust 38.20 d 0.00 ed -1.20
464
16:17:32.171 -> e -1.10 p 0.00 i 16.03
out
16 temp 39.30 ust 38.20 d 0.00 ed -1.10
465
16:17:33.438 -> e -1.10 p 0.00 i 15.97
out
15 temp 39.30 ust 38.20 d 0.00 ed -1.10
466
16:17:34.638 -> e -1.20 p 0.00 i 15.91
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
467
16:17:35.905 -> e -1.20 p 0.00 i 15.85
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
468
16:17:37.104 -> e -1.20 p 0.00 i 15.79
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
469
16:17:38.334 -> e -1.20 p 0.00 i 15.73
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
470
16:17:39.598 -> e -1.20 p 0.00 i 15.67
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
471
16:17:40.789 -> e -1.20 p 0.00 i 15.61
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
472
16:17:42.049 -> e -1.20 p 0.00 i 15.55
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
473
16:17:43.250 -> e -1.20 p 0.00 i 15.49
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
474
16:17:44.519 -> e -1.20 p 0.00 i 15.43
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
475
16:17:45.683 -> e -1.20 p 0.00 i 15.37
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
476
16:17:46.956 -> e -1.20 p 0.00 i 15.31
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
477
16:17:48.190 -> e -1.20 p 0.00 i 15.25
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
478
16:17:49.387 -> e -1.20 p 0.00 i 15.19
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
479
16:17:50.650 -> e -1.20 p 0.00 i 15.13
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
480
16:17:51.855 -> e -1.20 p 0.00 i 15.07
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
481
16:17:53.091 -> e -1.20 p 0.00 i 15.01
out
15 temp 39.40 ust 38.20 d 0.00 ed -1.20
482
16:17:54.284 -> e -1.20 p 0.00 i 14.95
out
14 temp 39.40 ust 38.20 d 0.00 ed -1.20
483
16:17:55.547 -> e -1.20 p 0.00 i 14.89
out
14 temp 39.40 ust 38.20 d 0.00 ed -1.20
484
16:17:56.812 -> e -1.20 p 0.00 i 14.83
out
14 temp 39.40 ust 38.20 d 0.00 ed -1.20
485
16:17:58.010 -> e -1.20 p 0.00 i 14.77
out
14 temp 39.40 ust 38.20 d 0.00 ed -1.20
486
16:17:59.241 -> e -1.20 p 0.00 i 14.71
out
14 temp 39.40 ust 38.20 d 0.00 ed -1.20
487
16:18:00.440 -> e -1.20 p 0.00 i 14.65
out
14 temp 39.40 ust 38.20 d 0.00 ed -1.20
488
16:18:01.670 -> e -1.20 p 0.00 i 14.59
out
14 temp 39.40 ust 38.20 d 0.00 ed -1.20
489
16:18:02.870 -> e -1.20 p 0.00 i 14.53
out
14 temp 39.40 ust 38.20 d 0.00 ed -1.20
490
16:18:04.137 -> e -1.30 p 0.00 i 14.46
out
14 temp 39.50 ust 38.20 d 0.00 ed -1.30
491
16:18:05.395 -> e -1.30 p 0.00 i 14.40
out
14 temp 39.50 ust 38.20 d 0.00 ed -1.30
492
16:18:06.597 -> e -1.30 p 0.00 i 14.33
out
14 temp 39.50 ust 38.20 d 0.00 ed -1.30
493
16:18:07.831 -> e -1.30 p 0.00 i 14.27
out
14 temp 39.50 ust 38.20 d 0.00 ed -1.30
494
16:18:09.065 -> e -1.20 p 0.00 i 14.21
out
14 temp 39.40 ust 38.20 d 0.00 ed -1.20
495
16:18:10.263 -> e -1.30 p 0.00 i 14.14
out
14 temp 39.50 ust 38.20 d 0.00 ed -1.30
496
16:18:11.529 -> e -1.20 p 0.00 i 14.08
out
14 temp 39.40 ust 38.20 d 0.00 ed -1.20
497
16:18:12.765 -> e -1.20 p 0.00 i 14.02
out
14 temp 39.40 ust 38.20 d 0.00 ed -1.20
498
16:18:13.961 -> e -1.20 p 0.00 i 13.96
out
13 temp 39.40 ust 38.20 d 0.00 ed -1.20
499
16:18:15.208 -> e -1.30 p 0.00 i 13.90
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
500
16:18:16.427 -> e -1.30 p 0.00 i 13.83
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
501
16:18:17.647 -> e -1.30 p 0.00 i 13.77
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
502
16:18:18.862 -> e -1.30 p 0.00 i 13.70
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
503
16:18:20.116 -> e -1.20 p 0.00 i 13.64
out
13 temp 39.40 ust 38.20 d 0.00 ed -1.20
504
16:18:21.382 -> e -1.30 p 0.00 i 13.58
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
505
16:18:22.573 -> e -1.30 p 0.00 i 13.51
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
506
16:18:23.808 -> e -1.30 p 0.00 i 13.45
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
507
16:18:25.080 -> e -1.30 p 0.00 i 13.38
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
508
16:18:26.316 -> e -1.30 p 0.00 i 13.32
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
509
16:18:27.510 -> e -1.30 p 0.00 i 13.25
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
510
16:18:28.772 -> e -1.30 p 0.00 i 13.19
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
511
16:18:29.944 -> e -1.30 p 0.00 i 13.13
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
512
16:18:31.221 -> e -1.30 p 0.00 i 13.06
out
13 temp 39.50 ust 38.20 d 0.00 ed -1.30
513
16:18:32.392 -> e -1.30 p 0.00 i 13.00
out
12 temp 39.50 ust 38.20 d 0.00 ed -1.30
514
16:18:33.657 -> e -1.30 p 0.00 i 12.93
out
12 temp 39.50 ust 38.20 d 0.00 ed -1.30
515
16:18:34.921 -> e -1.30 p 0.00 i 12.87
out
12 temp 39.50 ust 38.20 d 0.00 ed -1.30
516
16:18:36.152 -> e -1.30 p 0.00 i 12.80
out
12 temp 39.50 ust 38.20 d 0.00 ed -1.30
517
16:18:37.345 -> e -1.30 p 0.00 i 12.74
out
12 temp 39.50 ust 38.20 d 0.00 ed -1.30
518
16:18:38.580 -> e -1.30 p 0.00 i 12.67
out
12 temp 39.50 ust 38.20 d 0.00 ed -1.30
519
16:18:39.778 -> e -1.30 p 0.00 i 12.61
out
12 temp 39.50 ust 38.20 d 0.00 ed -1.30
520
16:18:41.039 -> e -1.30 p 0.00 i 12.54
out
12 temp 39.50 ust 38.20 d 0.00 ed -1.30
521
16:18:42.268 -> e -1.30 p 0.00 i 12.48
out
12 temp 39.50 ust 38.20 d 0.00 ed -1.30
522
16:18:43.470 -> e -1.30 p 0.00 i 12.41
out
12 temp 39.50 ust 38.20 d 0.00 ed -1.30
523
16:18:44.700 -> e -1.20 p 0.00 i 12.35
out
12 temp 39.40 ust 38.20 d 0.00 ed -1.20
524
16:18:45.927 -> e -1.20 p 0.00 i 12.29
out
12 temp 39.40 ust 38.20 d 0.00 ed -1.20
525
16:18:47.193 -> e -1.20 p 0.00 i 12.23
out
12 temp 39.40 ust 38.20 d 0.00 ed -1.20
526
16:18:48.429 -> e -1.20 p 0.00 i 12.17
out
12 temp 39.40 ust 38.20 d 0.00 ed -1.20
527
16:18:49.631 -> e -1.20 p 0.00 i 12.11
out
12 temp 39.40 ust 38.20 d 0.00 ed -1.20
528
16:18:50.907 -> e -1.20 p 0.00 i 12.05
out
12 temp 39.40 ust 38.20 d 0.00 ed -1.20
529
16:18:52.109 -> e -1.20 p 0.00 i 11.99
out
11 temp 39.40 ust 38.20 d 0.00 ed -1.20
530
16:18:53.309 -> e -1.20 p 0.00 i 11.93
out
11 temp 39.40 ust 38.20 d 0.00 ed -1.20
531
16:18:54.577 -> e -1.20 p 0.00 i 11.87
out
11 temp 39.40 ust 38.20 d 0.00 ed -1.20
532
16:18:55.818 -> e -1.20 p 0.00 i 11.81
out
11 temp 39.40 ust 38.20 d 0.00 ed -1.20
533
16:18:57.017 -> e -1.20 p 0.00 i 11.75
out
11 temp 39.40 ust 38.20 d 0.00 ed -1.20
534
16:18:58.251 -> e -1.20 p 0.00 i 11.69
out
11 temp 39.40 ust 38.20 d 0.00 ed -1.20
535
16:18:59.480 -> e -1.20 p 0.00 i 11.63
out
11 temp 39.40 ust 38.20 d 0.00 ed -1.20
536
16:19:00.684 -> e -1.10 p 0.00 i 11.57
out
11 temp 39.30 ust 38.20 d 0.00 ed -1.10
537
16:19:01.946 -> e -1.10 p 0.00 i 11.52
out
11 temp 39.30 ust 38.20 d 0.00 ed -1.10
538
16:19:03.143 -> e -1.10 p 0.00 i 11.46
out
11 temp 39.30 ust 38.20 d 0.00 ed -1.10
539
16:19:04.412 -> e -1.10 p 0.00 i 11.41
out
11 temp 39.30 ust 38.20 d 0.00 ed -1.10
540
16:19:05.576 -> e -1.10 p 0.00 i 11.35
out
11 temp 39.30 ust 38.20 d 0.00 ed -1.10
541
16:19:06.814 -> e -1.10 p 0.00 i 11.30
out
11 temp 39.30 ust 38.20 d 0.00 ed -1.10
542
16:19:08.084 -> e -1.10 p 0.00 i 11.24
out
11 temp 39.30 ust 38.20 d 0.00 ed -1.10
543
16:19:09.287 -> e -1.10 p 0.00 i 11.19
out
11 temp 39.30 ust 38.20 d 0.00 ed -1.10
544
16:19:10.580 -> e -1.10 p 0.00 i 11.13
out
11 temp 39.30 ust 38.20 d 0.00 ed -1.10
545
16:19:11.743 -> e -1.10 p 0.00 i 11.08
out
11 temp 39.30 ust 38.20 d 0.00 ed -1.10
546
16:19:13.021 -> e -1.10 p 0.00 i 11.02
out
11 temp 39.30 ust 38.20 d 0.00 ed -1.10
547
16:19:14.188 -> e -1.10 p 0.00 i 10.97
out
10 temp 39.30 ust 38.20 d 0.00 ed -1.10
548
16:19:15.452 -> e -1.10 p 0.00 i 10.91
out
10 temp 39.30 ust 38.20 d 0.00 ed -1.10
549
16:19:16.685 -> e -1.10 p 0.00 i 10.86
out
10 temp 39.30 ust 38.20 d 0.00 ed -1.10
550
16:19:17.875 -> e -1.10 p 0.00 i 10.80
out
10 temp 39.30 ust 38.20 d 0.00 ed -1.10
551
16:19:19.167 -> e -1.10 p 0.00 i 10.75
out
10 temp 39.30 ust 38.20 d 0.00 ed -1.10
552
16:19:20.367 -> e -1.10 p 0.00 i 10.69
out
10 temp 39.30 ust 38.20 d 0.00 ed -1.10
553
16:19:21.633 -> e -1.10 p 0.00 i 10.64
out
10 temp 39.30 ust 38.20 d 0.00 ed -1.10
554
16:19:22.800 -> e -1.10 p 0.00 i 10.58
out
10 temp 39.30 ust 38.20 d 0.00 ed -1.10
555
16:19:24.072 -> e -1.10 p 0.00 i 10.53
out
10 temp 39.30 ust 38.20 d 0.00 ed -1.10
556
16:19:25.269 -> e -1.00 p 0.00 i 10.48
out
10 temp 39.20 ust 38.20 d 0.00 ed -1.00
557
16:19:26.477 -> e -1.00 p 0.00 i 10.43
out
10 temp 39.20 ust 38.20 d 0.00 ed -1.00
558
16:19:27.706 -> e -1.00 p 0.00 i 10.38
out
10 temp 39.20 ust 38.20 d 0.00 ed -1.00
559
16:19:28.965 -> e -1.00 p 0.00 i 10.33
out
10 temp 39.20 ust 38.20 d 0.00 ed -1.00
560
16:19:30.159 -> e -1.00 p 0.00 i 10.28
out
10 temp 39.20 ust 38.20 d 0.00 ed -1.00
561
16:19:31.424 -> e -1.00 p 0.00 i 10.23
out
10 temp 39.20 ust 38.20 d 0.00 ed -1.00
562
16:19:32.658 -> e -1.00 p 0.00 i 10.18
out
10 temp 39.20 ust 38.20 d 0.00 ed -1.00
563
16:19:33.852 -> e -1.00 p 0.00 i 10.13
out
10 temp 39.20 ust 38.20 d 0.00 ed -1.00
564
16:19:35.119 -> e -1.00 p 0.00 i 10.08
out
10 temp 39.20 ust 38.20 d 0.00 ed -1.00
565
16:19:36.355 -> e -1.00 p 0.00 i 10.03
out
10 temp 39.20 ust 38.20 d 0.00 ed -1.00
566
16:19:37.554 -> e -1.00 p 0.00 i 9.98
out
9 temp 39.20 ust 38.20 d 0.00 ed -1.00
567
16:19:38.786 -> e -1.00 p 0.00 i 9.93
out
9 temp 39.20 ust 38.20 d 0.00 ed -1.00
568
16:19:40.054 -> e -1.00 p 0.00 i 9.88
out
9 temp 39.20 ust 38.20 d 0.00 ed -1.00
569
16:19:41.282 -> e -0.90 p 0.00 i 9.83
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
570
16:19:42.477 -> e -0.90 p 0.00 i 9.79
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
571
16:19:43.705 -> e -0.90 p 0.00 i 9.74
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
572
16:19:44.972 -> e -0.90 p 0.00 i 9.70
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
573
16:19:46.164 -> e -0.90 p 0.00 i 9.65
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
574
16:19:47.426 -> e -0.90 p 0.00 i 9.61
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
575
16:19:48.624 -> e -0.90 p 0.00 i 9.56
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
576
16:19:49.901 -> e -0.90 p 0.00 i 9.52
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
577
16:19:51.105 -> e -0.90 p 0.00 i 9.47
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
578
16:19:52.332 -> e -0.90 p 0.00 i 9.43
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
579
16:19:53.565 -> e -0.90 p 0.00 i 9.38
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
580
16:19:54.758 -> e -0.90 p 0.00 i 9.34
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
581
16:19:56.029 -> e -0.90 p 0.00 i 9.29
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
582
16:19:57.235 -> e -0.90 p 0.00 i 9.25
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
583
16:19:58.467 -> e -0.90 p 0.00 i 9.20
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
584
16:19:59.670 -> e -0.90 p 0.00 i 9.16
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
585
16:20:00.901 -> e -0.90 p 0.00 i 9.11
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
586
16:20:02.167 -> e -0.90 p 0.00 i 9.07
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
587
16:20:03.433 -> e -0.90 p 0.00 i 9.02
out
9 temp 39.10 ust 38.20 d 0.00 ed -0.90
588
16:20:04.598 -> e -0.90 p 0.00 i 8.98
out
8 temp 39.10 ust 38.20 d 0.00 ed -0.90
589
16:20:05.896 -> e -0.90 p 0.00 i 8.93
out
8 temp 39.10 ust 38.20 d 0.00 ed -0.90
590
16:20:07.094 -> e -0.90 p 0.00 i 8.89
out
8 temp 39.10 ust 38.20 d 0.00 ed -0.90
591
16:20:08.290 -> e -0.90 p 0.00 i 8.84
out
8 temp 39.10 ust 38.20 d 0.00 ed -0.90
592
16:20:09.519 -> e -0.90 p 0.00 i 8.80
out
8 temp 39.10 ust 38.20 d 0.00 ed -0.90
593
16:20:10.750 -> e -0.90 p 0.00 i 8.75
out
8 temp 39.10 ust 38.20 d 0.00 ed -0.90
594
16:20:12.016 -> e -0.90 p 0.00 i 8.71
out
8 temp 39.10 ust 38.20 d 0.00 ed -0.90
595
16:20:13.211 -> e -0.90 p 0.00 i 8.66
out
8 temp 39.10 ust 38.20 d 0.00 ed -0.90
596
16:20:14.446 -> e -0.90 p 0.00 i 8.62
out
8 temp 39.10 ust 38.20 d 0.00 ed -0.90
597
16:20:15.671 -> e -0.90 p 0.00 i 8.57
out
8 temp 39.10 ust 38.20 d 0.00 ed -0.90
598
16:20:16.930 -> e -0.80 p 0.00 i 8.53
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
599
16:20:18.130 -> e -0.80 p 0.00 i 8.49
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
600
16:20:19.365 -> e -0.80 p 0.00 i 8.45
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
601
16:20:20.627 -> e -0.80 p 0.00 i 8.41
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
602
16:20:21.820 -> e -0.80 p 0.00 i 8.37
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
603
16:20:23.052 -> e -0.80 p 0.00 i 8.33
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
604
16:20:24.250 -> e -0.80 p 0.00 i 8.29
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
605
16:20:25.552 -> e -0.80 p 0.00 i 8.25
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
606
16:20:26.712 -> e -0.80 p 0.00 i 8.21
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
607
16:20:27.974 -> e -0.80 p 0.00 i 8.17
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
608
16:20:29.244 -> e -0.80 p 0.00 i 8.13
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
609
16:20:30.432 -> e -0.80 p 0.00 i 8.09
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
610
16:20:31.631 -> e -0.80 p 0.00 i 8.05
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
611
16:20:32.862 -> e -0.80 p 0.00 i 8.01
out
8 temp 39.00 ust 38.20 d 0.00 ed -0.80
612
16:20:34.092 -> e -0.80 p 0.00 i 7.97
out
7 temp 39.00 ust 38.20 d 0.00 ed -0.80
613
16:20:35.352 -> e -0.80 p 0.00 i 7.93
out
7 temp 39.00 ust 38.20 d 0.00 ed -0.80
614
16:20:36.609 -> e -0.80 p 0.00 i 7.89
out
7 temp 39.00 ust 38.20 d 0.00 ed -0.80
615
16:20:37.798 -> e -0.80 p 0.00 i 7.85
out
7 temp 39.00 ust 38.20 d 0.00 ed -0.80
616
16:20:39.060 -> e -0.80 p 0.00 i 7.81
out
7 temp 39.00 ust 38.20 d 0.00 ed -0.80
617
16:20:40.250 -> e -0.80 p 0.00 i 7.77
out
7 temp 39.00 ust 38.20 d 0.00 ed -0.80
618
16:20:41.484 -> e -0.80 p 0.00 i 7.73
out
7 temp 39.00 ust 38.20 d 0.00 ed -0.80
619
16:20:42.753 -> e -0.80 p 0.00 i 7.69
out
7 temp 39.00 ust 38.20 d 0.00 ed -0.80
620
16:20:43.918 -> e -0.80 p 0.00 i 7.65
out
7 temp 39.00 ust 38.20 d 0.00 ed -0.80
621
16:20:45.186 -> e -0.80 p 0.00 i 7.61
out
7 temp 39.00 ust 38.20 d 0.00 ed -0.80
Здесь Д=0 в коде, но видно что изменений практически нет за 1 цикл.
Изменил вызов функции на 3 сек, потребовалось установить коэфф. Д = 200 чтобы убрать перерегулирование.
Везде Р=15, I=0, слева направо пид 1сек, далее ПИД раз в 3 сек, Д=1, Д=10, Д=30, Д=100, Д=200
@yul-i-an
У меня в инкубаторе используется термокабель в качестве источника тепла, он инерционный, но работает отлично. Пытался установить коэффициент Д для того что бы небыло перерегулирования, но из-за того что система инерционна не работает функция ed = e, так как практически не происходит изменения за секунду, ставил Д 0,1, 1, 10, 100, график нагрева не меняется, идет перерегулирование. Если следить за измением 5 секунд, например высчитывать среднеарифметическое за послендние 5 показаний то должно сработать. Есть вариант вызывать функцию пид реже чем раз в 1,2сек, но нехочется терять быстродействие системы
В этом посте примерный подход к настройе регулятора.
Д - это как ускоритель и замедлитель при резких внешних возмущениях
Доброго всем времени! что то тема заглохла,
у меня вопрос к знатокам, потому как сам дуб дерево, как можно заменить символьный дисплей на графический,
спросите зачем, да просто он у меня валяется без дела типа Нокиа 5110
кто чем сможет, помогите.
с уважением Валерий
Украина, Николаев
Просто в коде заменяете команды вывода на экран и соответственно объявить библиотеку для экрана на который осуществляется вывод.
Посмотрите примеры вывода на оба дисплея и проведите анологии между командами.
Доброго всем времени! вопрос к знатокам, подскажите пож. тупому как выставить значения ПИД, у меня стоят на обогрев лампы, и еще один вопрос поставил датчик Si7021 , нужно ли его покрыть лаком.
с ув. Валерий
Для ламп там все по умолчанию настроено, а про лак- это Вы серьезно?
поставил датчик Si7021 , нужно ли его покрыть лаком.
Лучше матом покрой, и то лучше работать будет, чем лакированный.
матом то мы завсегда могем, я же имел ввиду не всю платку, а места пайки
Где тут хоть слово про места пайки?
Доброго всем времени! вопрос к знатокам, подскажите пож. тупому как выставить значения ПИД, у меня стоят на обогрев лампы, и еще один вопрос поставил датчик Si7021 , нужно ли его покрыть лаком.
с ув. Валерий
а что вы так все на меня накинулись, что просто ответить нельзя, что не надо покрывать, и тем не менее всем спасибо
с ув.
День добрый, мне так и не удалось оживить полностью , скеч "lean_74" народный инкубатор" этот франкенштейн не заработал. Меню все включается, открывается и правится, температура и влажность показывает, pin6 heater нагреватель не включается, pin 13 fan постоянно под тянут на +5 вольт.
В чем ошибка я не могу найти , так как только пытаюсь освоить программирование .
001
#include <avr/wdt.h>
002
#include <LiquidCrystal_I2C.h>
003
#include <EEPROM.h>
004
#include "DHT.h"//мой датчик влажности
005
//include <Si7021.h>
006
#include <OneWire.h>
007
#include <Wire.h>
008
OneWire ds(7);
009
#define START_CONVERT 0
010
#define READ_TEMP 1
011
012
013
014
#define DHTPIN 11 // what digital pin we're connected to
015
#define DHTTYPE DHT11 // DHT 11, DHT 22
016
DHT dht(DHTPIN, DHTTYPE);
017
//SI7021 si7021; //раскоментировать, если используем датчик si7021.
018
019
LiquidCrystal_I2C lcd(0x3F, 16, 2);
// инициализация библиотеки дисплея
020
021
//номера выводов кнопок
022
//#define EXT_HEATING // ИСПОЛЬЗУЕМ ДОП.НАГРЕВАТЕЛЬ ВМЕСТО УВЛАЖНИТЕЛЯ. Если нужен увлажнитель, просто закомментируйте эту строку.
023
#define heater_pin 6 // нагреватель
024
#define humidifer_pin 12 // увлажнитель
025
#define fan_pin 13 // вентилятор
026
#define alarm_pin 10 // пин аварии
027
#define beeper_pin 14 //пищалка по аварии
028
029
#define turn_pin 8 // управление поворотом вперед
030
//#define pin9 9 // проверка
031
//#define extend_heater_pin 8 // дополнительный нагреватель
032
#define button_minus_pin 3 //пин кнопки "минус"
033
#define button_plus_pin 4 //пин кнопки "плюс"
034
#define button_enter_pin 5 //пин кнопки "enter"
035
#define DS18B20_Pin 7 //пин термометра
036
//Пин 2 Вход обработки прерывания для детектора нуля и управления семистором
037
#define voltmeter_pin 15 //вход А1 через делитель (22к/10к) подключен к питанию модуля. Измеряет до 16В.
038
039
040
boolean button_minus;
// статус нажатия кнопок
041
boolean button_plus;
042
boolean button_enter;
043
044
unsigned
long
currentTime;
// задаем переменные для тайминга поворота
045
unsigned
long
loopTime;
046
unsigned
long
serialTime;
//this will help us know when to talk with processing
047
048
boolean hotFlag1 = 0;
// флаг включения обогревателя основного 1-ошибка, включать нельзя
049
boolean fanFlag = 0;
// флаг включения вентилятора проветривания 1-включено проветривание
050
unsigned
long
trhMillis = 0;
051
052
boolean flag = 0;
053
int
clockTime = 0;
// флаг того что выводим температуру или влажность
054
unsigned
long
lastMillis = millis();
055
int
TimeTemp = 4;
//время следующего измерения температуры в секундах
056
int
TimeTurn = 20;
//время поворота в десятых долях секунды
057
058
const
unsigned
long
TRHSTEP = 300UL;
// Период опроса датчиков
059
060
//int counter=0;//для проверки вачдога
061
062
volatile uint8_t minut=0;
063
//volatile uint8_t chas=0;
064
int
chas=0;
065
volatile uint8_t sec=0;
066
int
den=0;
067
int
oldden=0;
068
int
oldchas=0;
069
070
int
temp=0;
// температура Далласа
071
float
temp1=0;
// температура Далласа с десятыми
072
float
temp2=0;
// температура DHT, si7021
073
float
hum=0;
074
075
int
del = 80;
// переменная ожидания между выборами меню
076
unsigned
int
interval = 200;
// интервал сколько будет длиться цикл while, после чего перейдёт к следующему меню.(кол-во итераций)
077
078
boolean
out
=0;
//управление симистором yul-i-an
079
int
reg,er,zad;
// yul-i-an
080
double
I,Kp=3,Ki=0.45,Kd=0.6,pre_err,err;
// yul-i-an
081
082
unsigned
long
alarmDelay;
083
084
float
needTemp = 37.6;
// нужная для текущего дня температура инкубации (по умолчанию)
085
float
needHum = 60.5;
// ---- влажность
086
int
ventTime = 2;
// длительность проветривания
087
boolean needTurn =
false
;
// нужен ли поворот яиц?
088
int
bird=0;
089
090
// make some custom characters:
091
byte
znak_g[8] = {
//г
092
0b11111,
093
0b10001,
094
0b10000,
095
0b10000,
096
0b10000,
097
0b10000,
098
0b10000,
099
0b00000
100
};
101
byte
znak_b[8] = {
//Б
102
0b11111,
103
0b10001,
104
0b10000,
105
0b11110,
106
0b10001,
107
0b10001,
108
0b11110,
109
0b00000
110
};
111
112
byte
znak_p[8] = {
113
0b11111,
114
0b10001,
115
0b10001,
116
0b10001,
117
0b10001,
118
0b10001,
119
0b10001,
120
0b00000
121
};
122
byte
znak_i[8] = {
123
0b10001,
124
0b10001,
125
0b10011,
126
0b10101,
127
0b11001,
128
0b10001,
129
0b10001,
130
0b00000
131
};
132
133
byte
znak_l[8] = {
134
0b00111,
135
0b01001,
136
0b10001,
137
0b10001,
138
0b10001,
139
0b10001,
140
0b10001,
141
0b00000
142
};
143
144
byte
light_znak[8] = {
145
0b10000,
146
0b10000,
147
0b10000,
148
0b11110,
149
0b10001,
150
0b10001,
151
0b01110,
152
0b00000
153
};
154
155
byte
znak_u[8] = {
156
0b10001,
157
0b10001,
158
0b10001,
159
0b01111,
160
0b00001,
161
0b10001,
162
0b01110,
163
0b00000
164
};
165
166
167
byte
znak_ia[8] = {
168
0b01111,
169
0b10001,
170
0b10001,
171
0b01111,
172
0b00101,
173
0b01001,
174
0b10001,
175
0b00000
176
};
177
byte
znak_d[8] = {
178
0b01110,
179
0b01010,
180
0b01010,
181
0b01010,
182
0b01010,
183
0b11111,
184
0b10001,
185
0b00000
186
};
187
byte
znak_ch[8] = {
188
0b10001,
189
0b10001,
190
0b10001,
191
0b01111,
192
0b00001,
193
0b00001,
194
0b00001,
195
0b00000
196
};
197
byte
znak_c[8] = {
198
0b10010,
199
0b10010,
200
0b10010,
201
0b10010,
202
0b10010,
203
0b10010,
204
0b11111,
205
0b00001
206
};
207
208
//расчет мощности по ПИД закону регулирования
209
//_------------------------------------------------------------
210
#define kP 6//коэффициент пропорциональности 6
211
#define p_min 0.0//минимум П составляющей - не < 0
212
#define p_max 100.0//максимум П составляющей - не > 100
213
#define kI 0.100//коэффициент интегрирования 0.025
214
#define i_min 0.0//минимум И составляющей
215
#define i_max 30.0//максимум И составляющей
216
#define kd 0//коэффициент диференциирования
217
#define d_ctl 7.0//зона пропорциональности ust-d_ctl
218
#define out_min 0//минимальный выходной %
219
#define out_max 100//максимальный выходной %
220
//возвращает необходимую мощность
221
uint8_t PIctl(
float
temp,
float
ust) {
222
223
uint8_t
out
= 0;
//uint8_t
224
static
float
i = 0;
225
static
float
ed=0;
///
226
float
e, p;
227
float
d;
///
228
e = (ust - temp);
//ошибка регулирования
229
p=(temp<ust-d_ctl)?p_max:(temp>ust)?p_min:(kP*e);
//П составляющая
230
i=(i<i_min)?i_min:(i>i_max)?i_max:i+(kI*e);
//И составляющая
231
d=kd*(e-ed);
//Д составляющая
232
ed=e;
///
233
out
=(p+i+d<out_min)?out_min:(p+i+d>out_max)?out_max:p+i+d;
234
//вывод для настройки
235
Serial
.print(
" e "
);
236
Serial
.print(e);
237
Serial
.print(
" p "
);
238
Serial
.print(p);
239
Serial
.print(
" i "
);
240
Serial
.print(i);
241
Serial
.print(
" out "
);
242
Serial
.println(
out
);
243
return
out
;
244
}
245
//---------------------------------------------------------------
246
247
248
249
void
readSet(){
250
den=EEPROM_int_read(100);
251
chas=EEPROM_int_read(102);
252
int
bird;
// выбор птицы
253
int
r_array[6][4][5] = {
254
{{2, 382, 600, 0, 1}, {12, 376, 600, 3, 1}, {15, 374, 480, 10, 1}, {18, 370, 855, 10, 0}},
255
{{2, 378, 550, 0, 1}, {7, 378, 500, 3, 1}, {14, 378, 500, 10, 1}, {16, 375, 700, 0, 0}},
256
{{7, 382, 700, 0, 1}, {14, 378, 600, 0, 1}, {25, 378, 600, 10, 1}, {28, 375, 855, 0, 0}},
257
{{2, 380, 600, 0, 1}, {7, 378, 550, 0, 1}, {29, 375, 450, 10, 1}, {30, 370, 750, 0, 0}},
258
{{7, 378, 700, 0, 1}, {14, 378, 600, 0, 1}, {27, 378, 600, 15, 1}, {30, 375, 855, 0, 0}},
259
{{8, 377, 650, 0, 1}, {14, 377, 500, 0, 1}, {25, 375, 650, 10, 1}, {28, 375, 655, 10, 0}},
260
};
261
//Serial.println("readset=");
262
263
bird= EEPROM_int_read(110);
264
for
(
int
d=4; d>=0; d--){
265
if
(den <= r_array[bird][d][0]){
266
needTemp =
float
(r_array[bird][d][1])/10;
//
267
needHum =
float
(r_array[bird][d][2])/10;
//
268
ventTime = r_array[bird][d][3];
269
needTurn = r_array[bird][d][4];
270
}
271
}
272
273
if
(den>36 || den<0){
274
den=0;
//
275
}
276
if
(chas>24){
277
chas=0;
//
278
}
279
if
(minut>60){
280
minut=0;
//
281
}
282
283
}
284
285
void
setup
(){
286
wdt_disable();
// запретили как можно скорее собаку, что-бы не уйти в бесконечный ребут
287
Serial
.begin(9600);
288
// readSet();
289
lcd.begin();
290
lcd.backlight();
// Включаем подсветку дисплея
291
lcd.clear();
292
293
// create a new character
294
// lcd.createChar(5, znak_g);//г
295
lcd.createChar(5, znak_b);
//Б
296
lcd.createChar(1, znak_i);
//И
297
lcd.createChar(2, znak_p);
//П
298
lcd.createChar(3, znak_l);
//Л
299
lcd.createChar(4, light_znak);
// мягкий хнак
300
lcd.createChar(7, znak_d);
//Д
301
lcd.createChar(8, znak_c);
//Ц
302
lcd.createChar(6, znak_u);
//У
303
304
lcd.setCursor(0, 0);
305
306
lcd.print(
" HAPO"
);
307
lcd.write(7);
308
lcd.print(
"H"
);
309
lcd.write(4);
310
lcd.print(
"|"
);
311
lcd.write(1);
312
lcd.setCursor(0, 1);
313
lcd.print(
" "
);
314
lcd.write(1);
315
lcd.print(
"HK"
);
316
lcd.write(6);
317
lcd.write(5);
318
lcd.print(
"ATOP"
);
319
320
321
322
Wire.begin();
// старт I2C
323
324
dht.begin();
325
//si7021.begin(); // Runs : Wire.begin() + reset() // старт датчика влажности
326
delay(3000);
// подождем пока датчик запуститься, и завтавка погорит
327
// si7021.setHumidityRes(12); // Humidity = 12-bit / Temperature = 14-bit //максимальное разрешение
328
329
330
lcd.createChar(5, znak_g);
//г
331
readSet();
// читаем настройки из еепром
332
333
334
335
// настройкa часов
336
TCCR1A=(1<<WGM11);
//режим14 FAST PWM
337
TCCR1B=(1<<CS12)|(1<<WGM13)|(1<<WGM12);
//делить частоту CPU на 256
338
ICR1=62499;
// (16000000MHz /div256) -1 = 1 раз в секунду
339
TIMSK1=(1<<TOIE1);
//разрешить прерывание
340
341
tempProcess(START_CONVERT);
//конвентируем dallas
342
343
attachInterrupt(0, zero_crosss_int, RISING);
//внешнее прерывание на D2
344
345
//pinMode(extend_heater_pin, OUTPUT); //пин дополнительного нагревателя. Переводим в 1 чтобы не включать реле.
346
//digitalWrite(extend_heater_pin, HIGH);
347
pinMode(heater_pin, OUTPUT);
348
pinMode(turn_pin, OUTPUT);
// устанавливаем выводы
349
// pinMode(pin9, INPUT); // устанавливаем выводы
350
digitalWrite(turn_pin, HIGH);
351
//digitalWrite(turn_pin2, HIGH);
352
pinMode(humidifer_pin, OUTPUT);
353
pinMode(fan_pin, OUTPUT);
354
digitalWrite(fan_pin, HIGH);
355
pinMode(alarm_pin, OUTPUT);
356
digitalWrite(alarm_pin, HIGH);
357
pinMode(button_minus_pin, INPUT_PULLUP);
//подтягиваем входы кнопок к плюсу встроенными резисторами
358
pinMode(button_plus_pin, INPUT_PULLUP);
359
pinMode(button_enter_pin, INPUT_PULLUP);
360
alarmDelay = millis();
361
362
wdt_enable(WDTO_8S);
// активировали таймер, каждые 8 секунд его нужно сбрасывать
363
364
}
365
366
ISR (TIMER1_OVF_vect) {
367
sec++ ;
//инкремент переменной каждую секунду
368
if
(sec>59){sec=0; minut++;}
369
if
(minut>59){minut=0; chas++;}
// при записи каждый час хватит памяти на 11 лет
370
if
(chas>23){chas=0;den++;}
//readSet(); но нам главное знать день инкубации
371
if
(den>36){den=0; }
// частный случай для нас не принципиальный, у нас день инкубации
372
}
373
374
void
loop
(){
375
wdt_reset();
// говорим собаке что "В Багдаде все спокойно", начинается очередной отсчет 8-х секунд.
376
// Serial.print("pin9=");
377
// Serial.println(digitalRead(pin9));
378
// Serial.println(" ");
379
380
if
(oldchas!=chas){
// раз в час сохраняем время
381
EEPROM_int_write(102, chas);
382
oldchas=chas;
383
}
384
if
(oldden!=den){
// раз в день читаем настройки заново
385
EEPROM_int_write(100, den);
386
readSet();
387
oldden=den;
388
}
389
button_read();
390
if
(!button_enter) {
391
delay(del);
//
392
lcd.clear();
393
menu();
394
}
395
if
(!button_minus) {
396
delay(del);
397
lcd.clear();
398
alarmDelay = millis();
// задержка аварии по нажатии кнопки Минус
399
}
400
if
(!button_plus) {
401
delay(del);
402
lcd.clear();
403
digitalWrite(turn_pin, !digitalRead(turn_pin));
// включаем/выключаем реле поворота по кнопке Плюс
404
}
405
406
lcd.setCursor(0, 0);
407
if
(millis() > serialTime)
408
{
409
PID();
//расчитываем ПИД yul-i-an
410
serialTime += 1200;
411
// err=needTemp-temp1
412
Serial
.print(
"needTemp="
);
413
Serial
.println(needTemp);
414
Serial
.print(
"temp1="
);
415
Serial
.println(temp1);
416
Serial
.print(
"err="
);
417
Serial
.println(err);
418
Serial
.print(
"zad="
);
419
Serial
.println(zad);
420
// Serial.print("serialTime=");
421
// Serial.println(serialTime);
422
// Serial.print("hotFlag1=");
423
// Serial.println(hotFlag1);
424
}
425
426
if
(flag == 0)
427
{
428
lastMillis = millis();
429
clockTime=!clockTime;
430
flag = 1;
431
}
432
433
if
(millis() - lastMillis >=TimeTemp*1000) {
434
flag = 0;
435
}
436
if
(clockTime == 1){
437
lcd.setCursor(0, 0);
// выводим часы и день инкубации
438
if
(chas < 10) lcd.print(
" "
);
439
lcd.print(chas, DEC);
440
lcd.print(
":"
);
441
if
(minut < 10)lcd.print(0);
442
lcd.print(minut, DEC);
443
lcd.print(
" "
);
444
lcd.write(7);
445
lcd.print(
"EH"
);
446
lcd.write(4);
447
lcd.print(
" "
);
448
lcd.print(den, DEC);
449
lcd.print(
" "
);
450
lcd.setCursor(0, 1);
451
// lcd.print(" ");
452
lcd.print(temp2, 1);
// печать температуры на дисплей temp%10
453
lcd.print((
char
)223);
454
lcd.print(
" "
);
455
printbird(bird);
456
}
457
else
{
458
lcd.setCursor(0, 0);
// устанавливаем курсор в 0-ом столбце, 0 строка (начинается с 0)
459
lcd.print(
"T1="
);
460
lcd.print(temp/10, 1);
// печать температуры на дисплей temp
461
lcd.print(
"."
);
462
lcd.print(temp%10, 1);
// печать температуры на дисплей temp%10
463
464
lcd.print((
char
)223);
465
lcd.print(
" ("
);
466
lcd.print(needTemp, 1);
467
lcd.print((
char
)223);
468
lcd.print(
") "
);
469
lcd.setCursor(0, 1);
470
lcd.print(
"H ="
);
471
lcd.print(hum, 1);
// печать влажности на дисплей
472
lcd.print(
"%"
);
473
lcd.print(
" ("
);
474
lcd.print(needHum, 1);
475
lcd.print(
"%) "
);
476
// lcd.setCursor(15, 3);
477
// lcd.print(" ");
478
479
}
480
481
getSensors();
// получаем данные с датчиков
482
humidifer(needHum);
483
turn(needTurn);
484
fan(ventTime);
485
alarm(needTemp);
486
}
487
488
489
//регулятор ПИД
490
void
PID(){
491
err=needTemp-temp1;
492
if
(hotFlag1 ==0) I=I+err;
//если проветривание или авария не включаем
493
494
// zad=Kp*err+(Ki*I*0.25)+(Kd*(err-pre_err)/0.25);
495
zad = PIctl(temp1, needTemp);
//расчет мощности
496
pre_err=err;
497
if
(temp1>=39.5)
//это при перегреве
498
{
499
zad=0;
500
I=0;
501
}
502
if
(zad<0){ zad=0;I=0;}
503
if
(zad>100){zad=100;}
504
// Serial.print("reg=");
505
// Serial.println(reg);
506
507
}
508
//Внешнее прерывание детектора нуля
509
void
zero_crosss_int()
510
{
511
ResOut();
//Вызов функции управления симистором по алгоритму Брезенхема
512
}
513
514
//управление симистором
515
void
ResOut(){
516
delayMicroseconds(1230);
//для попадания в ноль
517
reg = zad + er;
518
if
(reg < 50){
519
out
=0;
520
er = reg ;
521
522
}
523
else
{
524
out
=1;
525
526
er=reg-100;
527
}
528
if
(hotFlag1 ==0){
529
digitalWrite(heater_pin,
out
);
//если проветривание или авария не включаем
530
}
531
else
{
532
digitalWrite(heater_pin,LOW);
533
534
}
535
}
536
537
//Авто настройка коэффициентов ПИД
538
void
AutoPIDSet(){
539
//тут будет автонастройка
540
}
541
542
543
void
button_read() {
//функция проверки нажатия кнопки
544
button_minus = digitalRead(button_minus_pin);
//запоминаем значение кнопки
545
button_plus = digitalRead(button_plus_pin);
//запоминаем значение кнопки
546
button_enter = digitalRead(button_enter_pin);
//запоминаем значение кнопки
547
if
(!button_minus || !button_plus || !button_enter) beeper(50);
548
wdt_reset();
549
}
550
551
552
//меню
553
void
menu() {
554
startInk();
555
time_setup_chas();
556
time_setup_minut();
557
bird_setup();
558
turn_setup();
559
alarm_setup();
560
vent_setup();
561
}
562
563
// записываем в память день начала инкубации
564
void
startInk() {
565
String str_menu=
"START INK"
;
566
int
perem_menu=den;
567
int
adress_errom=100;
568
int
perem_max=36;
569
String str_perem=
"Day"
;
570
den= setup_menu(str_menu,perem_menu,adress_errom,perem_max,str_perem);
571
}
572
//устанавливаем часы
573
void
time_setup_chas() {
574
String str_menu=
"SETUP HOUR"
;
575
int
perem_menu=chas;
576
int
adress_errom=102;
577
int
perem_max=23;
578
String str_perem=
"Hour"
;
579
chas= setup_menu(str_menu,perem_menu,adress_errom,perem_max,str_perem);
580
}
581
//устанавливаем минуты
582
void
time_setup_minut() {
583
String str_menu=
"SETUP minute"
;
584
int
perem_menu=minut;
585
int
adress_errom=0;
586
int
perem_max=59;
587
String str_perem=
"minute"
;
588
minut= setup_menu(str_menu,perem_menu,adress_errom,perem_max,str_perem);
589
}
590
591
//выбираем птицу /////////////////////////////////////////////////////////
592
593
void
bird_setup() {
594
String str_menu=
"SETUP bird"
;
595
int
perem_menu=bird;
596
int
adress_errom=110;
597
int
perem_max=5;
598
String str_perem=
"bird"
;
599
bird= setup_menu(str_menu,perem_menu,adress_errom,perem_max,str_perem);
600
}
601
602
603
//устанавливаем поворот
604
void
turn_setup() {
605
int
turnPeriod=EEPROM_int_read(104);
//период поворота лотков в часах
606
607
String str_menu=
"TURN SETUP"
;
608
int
perem_menu=turnPeriod;
609
int
adress_errom=104;
610
int
perem_max=12;
611
String str_perem=
"TURN Hour"
;
612
turnPeriod= setup_menu(str_menu,perem_menu,adress_errom,perem_max,str_perem);
613
}
614
615
616
//устанавливаем сигнализацию
617
void
alarm_setup() {
618
int
alarmTemp=EEPROM_int_read(106);
619
String str_menu=
"ALARM SETUP"
;
620
int
perem_menu=alarmTemp;
621
int
adress_errom=106;
622
int
perem_max=10;
623
String str_perem=
"T.Alarm +- C"
;
624
alarmTemp= setup_menu(str_menu,perem_menu,adress_errom,perem_max,str_perem);
625
}
626
627
//устанавливаем вентиляцию
628
void
vent_setup() {
629
int
fanTemp=EEPROM_int_read(108);
630
String str_menu=
"A.FAN SETUP"
;
631
int
perem_menu=fanTemp;
632
int
adress_errom=108;
633
int
perem_max=40;
634
String str_perem=
"T.Fan C"
;
635
fanTemp= setup_menu(str_menu,perem_menu,adress_errom,perem_max,str_perem);
636
}
637
638
int
setup_menu(String str_menu,
int
perem_menu,
int
adress_errom,
int
perem_max,String str_perem) {
639
lcd.clear();
640
delay(del);
641
button_read();
642
lcd.setCursor(0, 0);
643
lcd.print(str_menu);
644
lcd.print(
" "
);
645
delay(1000);
646
int
x = 0;
647
while
(1) {
648
x++;
649
if
(x > interval)
break
;
650
button_read();
651
if
(adress_errom!=0) perem_menu=EEPROM_int_read(adress_errom);
652
if
(!button_enter) {
653
delay(del);
654
lcd.clear();
//очищаем экран
655
break
;
656
}
657
if
(!button_minus) {
658
perem_menu--;
659
if
(perem_menu<0) perem_menu=perem_max;
660
if
(adress_errom!=0) EEPROM_int_write(adress_errom, perem_menu);
661
lcd.clear();
662
readSet();
663
}
664
665
if
(!button_plus) {
666
perem_menu++;
667
if
(perem_menu>perem_max) perem_menu=0;
668
if
(adress_errom!=0) EEPROM_int_write(adress_errom, perem_menu);
669
lcd.clear();
670
readSet();
671
}
672
if
(adress_errom!=0) perem_menu= EEPROM_int_read(adress_errom);
673
674
lcd.setCursor(0, 0);
675
if
(str_perem==
"bird"
){
676
lcd.print(
"BIRD "
);
677
printbird(perem_menu);
678
679
lcd.print(
" "
);
680
681
}
else
{
682
lcd.print(str_perem);
683
lcd.print(
"= "
);
684
lcd.print(perem_menu);
685
lcd.print(
" "
);
686
}
687
lcd.setCursor(0, 1);
688
lcd.print(
"START NEXT +1"
);
689
delay(del);
690
}
691
return
perem_menu;
692
}
693
694
void
printbird(
int
nbird){
695
switch
(nbird) {
696
case
0:
697
lcd.print(
"K"
);
// курица
698
lcd.write(6);
699
lcd.print(
"P"
);
// курица
700
lcd.write(1);
701
lcd.write(8);
702
lcd.print(
"A "
);
// курица
703
break
;
704
case
1:
705
lcd.write(2);
706
lcd.print(
"EPE"
);
// перепелка
707
lcd.write(2);
708
lcd.print(
"E"
);
// перепелка
709
lcd.write(3);
710
lcd.print(
"KA "
);
// перепелка
711
break
;
712
case
2:
713
lcd.write(6);
714
lcd.print(
"TKA "
);
// утка
715
break
;
716
case
3:
717
lcd.write(1);
718
lcd.print(
"H"
);
// индоутка
719
lcd.write(7);
720
lcd.print(
"O"
);
// индоутка
721
lcd.write(6);
722
lcd.print(
"TKA "
);
// утка
723
break
;
724
case
4:
725
lcd.write(5);
726
lcd.write(6);
727
lcd.print(
"C"
);
// гусь
728
lcd.write(4);
729
lcd.print(
" "
);
// гусь
730
break
;
731
case
5:
732
lcd.write(1);
733
lcd.print(
"H"
);
// индюк
734
lcd.write(7);
735
lcd.print(
"|OK "
);
// индюк
736
737
break
;
738
}
739
740
}
741
742
743
void
getSensors() {
744
unsigned
long
curMillis = millis();
// Получаем текущее время работы
745
if
(curMillis - trhMillis >= TRHSTEP) {
// время для нового измерения?
746
temp= tempProcess(READ_TEMP);
//читаем темпратуру с далласа
747
temp1=
float
(temp)/10;
748
tempProcess(START_CONVERT);
// сразу запрос на конвертацию
749
}
750
751
// Demonstrate non-blocking calls
752
if
(curMillis - trhMillis >= TRHSTEP * 4) {
// время для нового измерения?
753
754
hum = dht.readHumidity();
//получение темпрературы и влажности с DHT11
755
temp2 = dht.readTemperature();
756
// temp2=si7021.readTemp(); //получение темпрературы и влажности с si7021
757
// hum = si7021.readHumidity();
758
759
trhMillis = curMillis;
760
}
761
762
}
763
764
//управляем влажностью
765
void
humidifer(
float
set_humidity) {
766
//float humidity;
767
unsigned
long
humMillis = 0;
768
unsigned
long
curMillis = millis();
769
if
(set_humidity > hum) digitalWrite(humidifer_pin, HIGH);
//сравниваем измеренную влажность с заданной
770
else
if
(set_humidity -5 < hum) digitalWrite(humidifer_pin, LOW);
//если влажность низкая, включаем увлажнитель
771
772
}
773
774
//управляем поворотом
775
void
turn(boolean needTurn) {
776
int
turnPeriod=EEPROM_int_read(104);
//период поворота лотков в часах
777
int
turnCommand;
778
if
(turnPeriod == 0)
return
;
//если нулевой период поворота, то не поворачиваем яйца.
779
turnCommand = turnPeriod;
780
currentTime = millis();
781
if
(needTurn ==
true
) {
782
if
(currentTime >= (loopTime + turnCommand * 3600000)) {
// 3600000 сравниваем текущий таймер с переменной loopTime + период поворота в часах.
783
// if (turnFlagUp){
784
digitalWrite(turn_pin,LOW);
785
delay(TimeTurn*100);
//время поворота
786
digitalWrite(turn_pin,HIGH);
787
loopTime = currentTime;
// в loopTime записываем новое значение
788
}
789
}
790
}
791
792
//управляем авариями
793
void
alarm(
float
needTemp) {
794
int
alarmTemp=EEPROM_int_read(106);
795
if
(temp1> (needTemp + alarmTemp) || temp1 < (needTemp - alarmTemp)) {
796
beeper(10);
797
digitalWrite(alarm_pin, LOW);
//если измеренная температура выше заданной на величину аварии
798
}
799
else
digitalWrite(alarm_pin, HIGH);
//то включаем аварийный сигнал.
800
801
}
802
803
void
beeper(
int
duration) {
804
tone(beeper_pin, 2000, duration);
805
}
806
807
808
//управляем вентиляторами
809
void
fan(
int
fanTime) {
810
int
fanTemp=EEPROM_int_read(108);
811
if
((chas == 7 && minut < fanTime) || (chas == 19 && minut < fanTime) || (temp1 > 39.5)) {
//fanTemp=395
812
// digitalWrite( fan_pin, LOW);
813
fanFlag=1;
814
815
//если наступило время проветривания или измеренная температура выше заданной на величину авариито включаем продувку.
816
// digitalWrite(extend_heater_pin, HIGH); // при этом отключаем обогрев
817
// digitalWrite(heater_pin, LOW);
818
hotFlag1 = 1;
819
// hotFlag2 = 1;
820
}
821
else
{
822
fanFlag=0;
823
hotFlag1 = 0;
824
}
825
826
//digitalWrite(fan_pin, HIGH); //иначе выключаем.
827
828
// hotFlag1 = 1;
829
// hotFlag2 = 1;
830
//
831
832
}
833
834
// вольтметр
835
//void voltmeter() {
836
// float outputValue = 0;
837
// outputValue = float(analogRead(voltmeter_pin)) / 63, 9;
838
// //if(outputValue < 4.5) beeper(50);
839
// //Serial.print("Voltage = " );
840
// //Serial.println(outputValue);
841
// lcd.setCursor(14, 3);
842
// lcd.print("V");
843
// lcd.print(outputValue, 1);
844
//}
845
//
846
//// Печать мощности нагрвателя
847
//void outpuPower() {
848
// lcd.setCursor(14, 3);
849
// lcd.print("W");
850
// lcd.print(Output, 0);
851
// lcd.print(" ");
852
//}
853
854
855
//==============================
856
int
tempProcess(boolean ch){
857
int
t=0;
858
if
(!ch){
859
ds.reset();
860
ds.write(0xCC);
861
ds.write(0x44);
862
}
863
else
{
864
ds.reset();
865
ds.write(0xCC);
866
ds.write(0xBE);
867
t= ds.read();
868
t = t | (ds.read()<<8);
869
//return t>>4;//целые *C, десятые отброшены
870
//return (t+8)>>4;//целые *С с округлением
871
return
(t*10)>>4;
//целое в десятых *C (214=>21,4*C)
872
}
873
}
874
// чтение
875
int
EEPROM_int_read(
int
addr) {
876
byte
raw[2];
877
for
(
byte
i = 0; i < 2; i++) raw[i] = EEPROM.read(addr+i);
878
int
&num = (
int
&)raw;
879
return
num;
880
}
881
882
// запись
883
void
EEPROM_int_write(
int
addr,
int
num) {
884
byte
raw[2];
885
(
int
&)raw = num;
886
for
(
byte
i = 0; i < 2; i++) EEPROM.write(addr+i, raw[i]);
887
}
888
//пример int
889
//// запись
890
//EEPROM_int_write(12, 1000); // адрес 12 (+2 байта)
891
//EEPROM_int_write(14, 2000); // адрес 14 (+2 байта)
892
//EEPROM_int_write(16, 3000); // адрес 16 (+2 байта)
893
//// чтение
894
//int d = EEPROM_int_read(12);
895
//int e = EEPROM_int_read(14);
896
//int f = EEPROM_int_read(16);
С вентилятором все просто у вас
В функции setup(), в строке 354 вы включаете вентилятор, digitalWrite(fan_pin, HIGH);
В функции void fan(int fanTime), в строке 812 выключение вентилятора, 13 нога, закомментировано // digitalWrite( fan_pin, LOW);
То есть так как вы пишете так и должно быть, в вашем случае вентилятор включен постоянно.
Так же в функции void fan(int fanTime) закомментирована строка 817 где идет управление heater_pin, правда он там отключается но все же, если это комментировали вы то вопрос - Зачем?
Про heater_pin
включается нагреватель в одном единственном месте строка 529 digitalWrite(heater_pin,out); и то если переменная out будет равна единице, а ее состояние зависит от переменных zad и er и тут вообще написано очень загадочно, почему в zero_crosss_int() вызывается ResOut(), почему просто не поместить код ResOut() в zero_crosss_int() ? Опять же это прерывание и переменные int reg,er,zad; должны быть описаны как volatile int reg,er,zad; но этого не сделано. В общем надо автора спрашивать, и потом если инкубатор небольшой яиц на 100 то PID вам не нужен, становится намного проще программа.
01
//Внешнее прерывание детектора нуля
02
void
zero_crosss_int()
03
{
04
ResOut();
//Вызов функции управления симистором по алгоритму Брезенхема
05
}
06
07
//управление симистором
08
void
ResOut(){
09
delayMicroseconds(1230);
//для попадания в ноль
10
reg = zad + er;
11
if
(reg < 50){
12
out
=0;
13
er = reg ;
14
15
}
16
else
{
17
out
=1;
18
19
er=reg-100;
20
}
21
if
(hotFlag1 ==0){
22
digitalWrite(heater_pin,
out
);
//если проветривание или авария не включаем
23
}
24
else
{
25
digitalWrite(heater_pin,LOW);
26
27
}
28
}
Дело в том , что я очень плохо разбираюсь ,пытаюсь освоить, но видимо в 59 лет уже поздно. Эти строки я не трогал. Сейчас попробую отредактировать.
Andrey12 С вентилятором , что то прояснилось, но есть нюансы. Он включаясь прерывает работу нагревателя во время охлаждения и проветривания. Выставляет флаг 1. Но сам почему то на аварию и перегрев не реагирует. Чего то там явно не хватает , он не видит задание по температуре. Да ладно бы с вентилятором, нагреватель вообще не работает, а с нагревателем я совсем не понимаю, там сделано включение симистора при переходе через ноль. Совершенно лишнее так как оптопарой это реализовать легче. И не нужно алгоритм "минхаузена". За подсказки спасибо. Буду копать дальше.
А саму схему собрали с использованием DHT11, он не очень для инкубатора подходит, или если быть точнее очень не подходит.
Если понять что и как у вас подключено, можно попробовать убрать из программы лишнее. Авось заработает.
Если есть схема выкладывайте, будем "подгонять" под схему программу.
Просто я так понимаю там один человек написал, другой исправил под себя и тд, оттуда и масса закомментированных строк.
Если инкубатор небольшой то можно отказаться от ПИД и всех алгоритмов плавного включения выключения.
Andrey12 это уже третий апгрейд инкубатора, первый блок управления был на компараторе, температура мерилась термометром. Потом собрал на atmege 8 схема от Дмитрия, температура колебалась 0,5 градуса, и показания были на семи сегментном индикаторе. Потом собрал на ардуине mini терморегулятор с ПИД регулированием, колебания уменьшились до 0,2. Дисплей 16*2 , но нет контроля влажности, и поворота. Датчик ДНТ-11 временно буду заказывать SHT 10 или 15. это уже адаптировать по готовый скетч не трудно. Пока Китай отдыхает.
Вот решился все ещё раз переделать, сейчас все спаянно на столе рассыпухой. Ардуино HAHO прошит новый загрузчик с поддержкой сторожевого таймера, вот и не могу подобрать подходящий скетч. То дисплей 20*4 , то скетч не проходит компиляцию, то ПИД регулятор "мудренный".
Вот нашел подходящий скетч от Emeljanowich http://arduino.ru/forum/proekty/inkubator?page=1
001
//на второй строке дисплея отображаются: мощность на нагеревателе Pw 1-99%;
002
// режим инкубации 0 - ручной; 1 - куры; 2 - перепелки; 3 - утки; 4 - гуси;
003
// включен поворот - |; выключен поворот - 0
004
// вентиляция работает - *; выключена - -;
005
// работает вентилятор влажности - #; выключен - -;
006
// текущее значение температуры
007
008
009
//в меню появились два новых пункта: пункт 7 - включение подсветки дисплея - постоянно горит или выключение - погасает по истечении 4 минут после нажатия клавиши "меню"
010
// пункт 8 - выбор датчика температуры - DHT22 или 18B20
011
//ШИМ модуляция на порт 3 со значением 8-200
012
013
//работа сценария ошибки: - если по истечении 6 часов после включения температура меньше установленной на 2 градуса срабатывает ошибка
014
// - при достижении температуры установленного значения включается функция определения ошибки - если в течении 20 минут температура
015
// превышает или ниже установленных пределов срабатывает ошибка
016
// - если спустя 2 часа после проветривания температура меньше установленной на 2 градуса включается ошибка
017
018
019
020
021
022
023
024
#include <avr/wdt.h> //сторожевой пёс
025
#include <OneWire.h>
026
#include <DallasTemperature.h>
027
#include "DHT.h"
028
#include <EEPROM.h>
029
#include <Wire.h>
030
#include <LiquidCrystal_I2C.h> // Set the LCD address to 0x27 for a 16 chars and 2 line display
031
LiquidCrystal_I2C lcd(0x27, 16, 2);
032
033
#define DHTPIN 12 // номер пина, к которому подсоединен датчик
034
DHT dht(DHTPIN, DHT22);
//DHT dht(DHTPIN, DHT11);// Data wire is plugged into port 2 on the Arduino
035
#define ONE_WIRE_BUS 11 // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
036
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
037
DallasTemperature sensors(&oneWire);
038
039
#define turnPin 6 //поворот
040
#define ventilator 4 //вентилятор проветривания
041
#define ventilatorH 5 //венилятор для поддержания влажности
042
#define buttonPlus 15
043
#define buttonMenu 16
044
#define buttonMinus 17
045
046
#define TimeError 60 //время задержки ошибки 20сек * TimeError = 20 1 минута-3 еденицы
047
048
049
boolean r_povorota, r_povorot, r_ventilator, r_nasosa, proverka, turn, PowerLigt, dhT;
050
long
prevmicros;
051
byte
Power_promeg, ventilar, H, dlit_raboti_nasosa = 5, vrema_raboti_ventilatora;
//0-255 vrema_roboti_ventilatora
052
053
byte
gradus[8] = {B01000, B10100, B01000, B00111, B01000, B01000, B00111, B00000,};
054
055
boolean counter, r_ventilatora, step, powerTurn, exitMenu, left, right, turnStartPosition, ventilation, error, ErrorPower;
056
byte
hi, sec, mi, sTimer, mTimer, hTimer, dTimer = 1, day = 1;
057
byte
backLight, menu;
058
byte
avtomatik, timeTurn, setPower, timeTurnExperement, periodTurn, accountTurn, Power;
059
byte
n, rn, rv, m, i, errorTime, errorL, errorH, errorHour = 6;
060
unsigned
int
t, Temperature, b;
//0-65535
061
float
e, h, tt, kof, tSetprintDisplay;
062
//signed char kof; //-128 - 127
063
064
065
066
void
setup
() {
067
068
wdt_disable();
069
sensors.begin();
070
dht.begin();
071
lcd.begin(); lcd.clear();
072
073
lcd.createChar(1, gradus);
//Регистрируем собственные символы с кодами 1 и ...
074
075
DDRB |= (1 << 5);
//моргание светодиода на пине 13 каждую секунду
076
pinMode(ventilatorH, OUTPUT); pinMode(ventilator, OUTPUT); digitalWrite(ventilator, LOW); pinMode(turnPin, OUTPUT); digitalWrite(turnPin, LOW);
077
078
pinMode(buttonPlus, INPUT_PULLUP); pinMode(buttonMinus, INPUT_PULLUP); pinMode(buttonMenu, INPUT_PULLUP);
079
080
hTimer = EEPROM.read(20); dTimer = EEPROM.read(3);
081
powerTurn = EEPROM.read(11);
082
kof = EEPROM.read(5);
083
dlit_raboti_nasosa = EEPROM.read(6); vrema_raboti_ventilatora = EEPROM.read(7);
084
avtomatik = EEPROM.read(8); t = EEPROM.read(9) + 370; H = EEPROM.read(10);
085
setPower = EEPROM.read(13); PowerLigt = EEPROM.read(15); dhT = EEPROM.read(16);
//dhT - флаг для выбора датчика температуры dht|18B20
086
087
if
(avtomatik) parametri();
088
setTimer();
089
lcd.backlight();
//noBacklight();
090
backLight = 240;
091
wdt_enable (WDTO_4S);
092
093
h = dht.readHumidity();
094
if
(dhT) {tt = dht.readTemperature(); Temperature = (10 * tt) + kof;}
//температура с DHT22
095
else
{sensors.requestTemperatures(); tt = sensors.getTempCByIndex(0); Temperature = (10 * tt) + kof;}
//температура с 18B20
096
lcd.setCursor(2, 0); lcd.print(
"inkubator_4"
); lcd.setCursor(5, 1); lcd.print(
"v_0.8"
); delay(2000);
097
displayPrint();
098
}
099
100
101
102
103
104
105
void
setTimer(){
106
cli();
107
TCCR1A = 0b00000000;
//none toggle clear set - инверсия установить
108
TCCR1B = (1 << WGM12)|(1 << CS12);
// 10b00011001;
109
TIMSK1 = (1 << OCIE1A);
110
OCR1A = 62500;
//разрешение ШИМ сигнала (ограничение для счета регистра TCNT1), возможно до 65 535
111
sei();
112
}
113
114
ISR (TIMER1_COMPA_vect)
//вектор прерывания по СТС таймера/счетчика 2 для работы собственного времени контроллера
115
{
116
PORTB = PORTB ^ (1 << 5); sTimer++;
if
(sTimer > 59) {mTimer++; sTimer = 0;
if
(mTimer > 59) {hTimer++; mTimer = 0;}
if
(hTimer > 23) {dTimer++; hTimer = 0;}}
117
}
118
119
120
121
122
void
loop
() {
123
124
if
(menu){
125
switch
(menu){
126
case
1:
127
lcd.setCursor(0, 1); lcd.print(
"Temp calibration"
);
128
lcd.setCursor(2, 0); lcd.print(kof/10); lcd.print(
"\1"
);
//lcd.print(" daL "); lcd.print(e, 1);
129
if
(!digitalRead(buttonPlus)) {backLight = 20; delay(200); kof++; EEPROM.write(5, kof);
if
(kof > 15) {kof = -15; lcd.clear();} exitMenu =
true
;}
130
if
(!digitalRead(buttonMinus)) {backLight = 20; delay(200); kof--; EEPROM.write(5, kof);
if
(kof < -15) {kof = 15; lcd.clear();} exitMenu =
true
;}
131
break
;
132
133
case
2: lcd.setCursor(2, 0); lcd.print(
"reset time?"
);
134
if
(!digitalRead(buttonMinus) || !digitalRead(buttonPlus)) {backLight = 20; delay(200); hTimer = 0; dTimer = 1; day = 1; mTimer = 0;
135
EEPROM.write(3, day); EEPROM.write(2, hTimer); menu = 0; lcd.clear(); displayPrint();}
136
break
;
137
138
case
3: lcd.setCursor(1, 0); lcd.print(
"setPowerDefaul"
);
139
if
(!digitalRead(buttonPlus)) {backLight = 20; delay(200); setPower--; EEPROM.write(13, setPower); lcd.clear(); exitMenu =
true
;}
140
if
(!digitalRead(buttonMinus)) {backLight = 20; delay(200); setPower++; EEPROM.write(13, setPower); lcd.clear(); exitMenu =
true
;}
141
lcd.setCursor(5, 1); i = map(setPower, 60, 200, 99, 1);
if
(i < 10) lcd.print(
" "
); lcd.print(i); lcd.print(
"%"
);
142
break
;
143
144
case
4: lcd.setCursor(3, 0); lcd.print(
"avtom setap"
);
145
if
(!digitalRead(buttonPlus)) {backLight = 20; delay(200); avtomatik++; lcd.clear(); EEPROM.write(8, avtomatik);
if
(avtomatik > 4) avtomatik = 4; exitMenu =
true
;}
146
if
(!digitalRead(buttonMinus)) {backLight = 20; delay(200); avtomatik--; lcd.clear(); EEPROM.write(8, avtomatik);
if
(avtomatik > 4) avtomatik = 0; exitMenu =
true
;}
147
lcd.setCursor(2, 1);
148
if
(!avtomatik) lcd.print(
"not avtom"
);
if
(avtomatik == 1) lcd.print(
"kuri"
);
if
(avtomatik == 2) lcd.print(
"perepelki"
);
if
(avtomatik == 3) lcd.print(
"ytki"
);
if
(avtomatik == 4) lcd.print(
"gusi"
);
149
if
(avtomatik) parametri();
150
break
;
151
152
case
5: lcd.setCursor(3, 0); lcd.print(
"test turn"
);
153
if
(!digitalRead(buttonPlus)) {PORTD = PORTD ^ (1 << 6); turn = !turn; lcd.setCursor(4, 1);
if
(turn) lcd.print(
"left"
);
else
lcd.print(
"right"
); delay(500); exitMenu =
true
;}
154
if
(!digitalRead(buttonMinus)) {PORTD = PORTD ^ (1 << 6); turn = !turn; lcd.setCursor(4, 1);
if
(turn) lcd.print(
"left"
);
else
lcd.print(
"right"
); delay(500); exitMenu =
true
;}
155
break
;
156
157
case
6: lcd.setCursor(3, 0); lcd.print(
"test Vent"
);
158
if
(!digitalRead(buttonPlus)) {PORTD = PORTD ^ (1 << 4); ventilation = !ventilation; lcd.setCursor(5, 1);
if
(ventilation) lcd.print(
"on "
);
else
lcd.print(
"off"
); delay(500); exitMenu =
true
;}
159
if
(!digitalRead(buttonMinus)) {PORTD = PORTD ^ (1 << 4); ventilation = !ventilation; lcd.setCursor(5, 1);
if
(ventilation) lcd.print(
"on "
);
else
lcd.print(
"off"
); delay(500); exitMenu =
true
;}
160
break
;
161
162
// case 6: lcd.setCursor(3, 0); lcd.print("Set Power"); lcd.setCursor(2, 1); i = map(Power, 60, 200, 99, 1); if (i < 10) lcd.print(" "); lcd.print(i); lcd.print("%");
163
// if (!digitalRead(buttonPlus)) {delay(200); Power--; if (Power < 60) Power = 60; exitMenu = true;}
164
// if (!digitalRead(buttonMinus)) {delay(200); Power++; if (Power > 200) Power = 200; exitMenu = true;}
165
// break;
166
167
case
7: lcd.setCursor(3, 0); lcd.print(
"Set Ligt"
); lcd.setCursor(5, 1);
if
(PowerLigt) lcd.print(
"on "
);
else
lcd.print(
"off"
);
168
if
(!digitalRead(buttonPlus)) {delay(200); PowerLigt = !PowerLigt; exitMenu =
true
; EEPROM.write(15, PowerLigt);}
169
if
(!digitalRead(buttonMinus)) {delay(200); PowerLigt = !PowerLigt; exitMenu =
true
; EEPROM.write(15, PowerLigt);}
170
break
;
171
172
case
8: lcd.setCursor(3, 0); lcd.print(
"DHT "
); lcd.setCursor(10, 0); lcd.print(
" 18B20"
);
173
lcd.setCursor(8, 0);
if
(dhT) lcd.print(
"<"
);
else
lcd.print(
">"
);
174
if
(!digitalRead(buttonPlus)) {delay(300); dhT = !dhT; exitMenu =
true
; EEPROM.write(16, dhT);}
175
if
(!digitalRead(buttonMinus)) {delay(300); dhT = !dhT; exitMenu =
true
; EEPROM.write(16, dhT);}
176
break
;
177
178
case
9:
if
(avtomatik) {menu = 0; displayPrint(); backLight = 240;}
179
else
{lcd.setCursor(1, 0); lcd.print(
"Set t = "
); lcd.setCursor(10, 0); tSetprintDisplay = 370+t; lcd.print(tSetprintDisplay/10); lcd.print(
"\1"
);
180
if
(!digitalRead(buttonPlus)) {delay(200); t++;
if
(t > 15) t = 15; EEPROM.write(9, t); exitMenu =
true
;}
181
if
(!digitalRead(buttonMinus)) {delay(200); t--;
if
(t > 8) t = 0; EEPROM.write(9, t); exitMenu =
true
;}}
182
break
;
183
184
case
10: lcd.setCursor(1, 0); lcd.print(
"Set H = "
);
185
if
(!digitalRead(buttonPlus)) {delay(200); H += 5;
if
(H > 90) H = 90; EEPROM.write(10, H); exitMenu =
true
;}
186
if
(!digitalRead(buttonMinus)) {delay(200); H -= 5;
if
(H < 30) H = 30; EEPROM.write(10, H); exitMenu =
true
;}
187
break
;
188
189
case
11: lcd.setCursor(3, 0); lcd.print(
"povorot "
);
if
(powerTurn) lcd.print(
"on "
);
else
lcd.print(
"off"
);
190
if
(!digitalRead(buttonPlus)) {delay(200); powerTurn = !powerTurn; EEPROM.write(11, powerTurn); exitMenu =
true
;}
191
if
(!digitalRead(buttonMinus)) {delay(200); powerTurn = !powerTurn; EEPROM.write(11, powerTurn); exitMenu =
true
;}
192
break
;
193
194
case
15: lcd.setCursor(3, 0); lcd.print(
"error"
); lcd.setCursor(10, 0); lcd.print(Temperature * 0.1, 1); lcd.print(
"\1"
);
195
lcd.setCursor(1, 1); lcd.print(
"off"
); lcd.setCursor(12, 1); lcd.print(
"off"
);
196
if
(!digitalRead(buttonPlus)) {delay(200); noTone(8);}
197
if
(!digitalRead(buttonMinus)) {delay(200); noTone(8);}
198
break
;
199
200
201
}
202
}
203
204
205
if
(mi != mTimer){
206
h = dht.readHumidity();
//влажность с DHT22
207
if
(!menu) {lcd.setCursor(3, 0);
if
(mTimer < 10) lcd.print(
"0"
); lcd.print(mTimer);
208
lcd.setCursor(12, 0); lcd.print(
"H"
); lcd.print(h, 0); lcd.print(
"%"
); }
//влажность
209
mi = mTimer;
210
211
if
((Temperature > t - 5) && (Temperature < t + 5) && (h < H - 3)) {digitalWrite(ventilatorH, HIGH); displayPrint();}
//вентилятор для поддержания влажности
212
else
{digitalWrite(ventilatorH, LOW); displayPrint();}
213
214
if
(ventilation) {displayPrint(); vrema_raboti_ventilatora--; PORTD |= (1 << 4);
if
(!vrema_raboti_ventilatora) {PORTD &= ~(1 << 4); ventilation =
false
; vrema_raboti_ventilatora = EEPROM.read(7); displayPrint();
//включение/выключение работа вентилятора проветривания
215
errorHour = 2; ErrorPower =
false
;}}
// включение отсчета времени для срабатывания ошибки
216
}
217
218
219
if
(sec != sTimer){
220
counter = !counter;
if
(!menu) {
if
(counter) {lcd.setCursor(2, 0); lcd.print(
":"
);}
else
{lcd.setCursor(2, 0); lcd.print(
" "
);}}
221
222
if
(backLight) {backLight--; lcd.backlight();
if
(!backLight) {
if
(!PowerLigt) lcd.noBacklight(); menu = 0; lcd.clear(); displayPrint();}}
223
224
if
(!ventilation) m++;
//если не работает проветривание, то считаем 20 сек для работы нагревателя
225
else
{
if
(dhT) {tt = dht.readTemperature(); Temperature = (10 * tt) + kof;}
//температура с DHT22
226
else
{sensors.requestTemperatures(); tt = sensors.getTempCByIndex(0); Temperature = (10 * tt) + kof;}
//температура с 18B20
227
if
(!menu) {lcd.setCursor(11, 1); lcd.print(Temperature * 0.1, 1);}}
228
229
sec = sTimer;}
230
231
232
233
if
(hi != hTimer){
if
(!menu) {lcd.setCursor(0, 0);
if
(hTimer < 10) lcd.print(
"0"
); lcd.print(hTimer);} EEPROM.write(20, hTimer);
//сохранение текущего часа
234
235
sensors.requestTemperatures();
// температура с 18b20
236
e = sensors.getTempCByIndex(0);
237
if
((r_ventilator || (!avtomatik && vrema_raboti_ventilatora)) && (hTimer == 6 || hTimer == 18)) {ventilation =
true
; Power = 2; analogWrite(3, Power);}
//включение вентиляции
238
if
(powerTurn) {timeTurn++;
if
(timeTurn > 1) {timeTurn = 0; PORTD = PORTD ^ (1 << 6); accountTurn++;}}
//инверсия пина для поворота
239
if
(errorHour) errorHour--;
//истечение 6 часов для включения режима авария
240
hi = hTimer;}
241
242
243
if
(day != dTimer) {
if
(!menu) {lcd.setCursor(6, 0); lcd.print(
"Day"
); lcd.print(dTimer);}
244
EEPROM.write(3, dTimer); day = dTimer; parametri(); }
245
246
if
(m > 20) {
247
248
if
(dhT) {tt = dht.readTemperature(); Temperature = (10 * tt) + kof;}
//температура с DHT22
249
else
{sensors.requestTemperatures(); tt = sensors.getTempCByIndex(0); Temperature = (10 * tt) + kof;}
//температура с 18B20
250
251
252
if
((!errorHour) && (Temperature < t - 20)) {error =
true
; menu = 15; errorMelody();}
//включение мелодии ошибки
253
if
(Temperature == t) ErrorPower =
true
;
254
if
(ErrorPower) {
if
(Temperature < errorL || Temperature > errorH) errorTime++;
//определение ошибки
255
else
{errorTime--;
if
(errorTime > TimeError) {errorTime = 0; noTone(8);}}
256
if
(errorTime > TimeError) {errorMelody(); error =
true
; menu = 15; errorTime = 20;}
257
258
259
if
(!menu) {lcd.setCursor(11, 1); lcd.print(Temperature * 0.1, 1);}
260
if
(Temperature != t) nagrev(); m = 0;}
//работа нагревателя, выполнется 3 разa в 1 минуту(ы), чтобы не мешать инерционности процессу
261
262
263
if
(!digitalRead(buttonMenu)) {delay(250); menu++; lcd.clear();
if
(exitMenu) {menu = 0; displayPrint(); exitMenu =
false
;}
264
if
(menu > 11) {noTone(8); menu = 0; displayPrint(); backLight = 240;}}
265
266
wdt_reset();
267
268
}
269
270
271
272
273
274
275
276
277
278
279
280
281
282
void
nagrev()
//работа нагревателя, 200 - минимальная мощность, 0 - максимальная
283
{
284
// if (!r_ventilatora) {
285
if
(Temperature > t + 5) {
286
// digitalWrite(ventilator, HIGH);
287
rn += 4;
288
Power = EEPROM.read(13);
289
}
290
// if (Temperature < t + 3) digitalWrite(ventilator, LOW);
291
// }
292
293
if
(Temperature < t) n = 1;
294
if
(Temperature < t - 10) n = 2;
295
if
(Temperature < t - 40) n = 5;
296
if
(Temperature > t) n = 4;
297
if
(Power == 255) n = 3;
298
299
switch
(n) {
300
case
4:
301
if
(rn > 12) {
302
rn = 0;
303
if
(Temperature >= b) Power -= 1;
304
else
Power += 1;
305
if
(Temperature > t + 3) Power -= 6;
306
}
307
else
rn++;
308
break
;
309
310
case
1:
311
if
(rv > 14) {
312
rv = 0;
313
if
(Temperature <= b) Power += 1;
314
else
Power -= 1;
315
}
316
else
rv++;
317
break
;
318
319
case
2:
320
if
(Temperature > b)
321
{
322
b = Temperature - b;
323
switch
(b)
324
{
case
1: Power -= 4;
break
;
325
case
2: Power -= 5;
break
;
326
case
3: Power -= 8;
break
;
327
case
4: Power -= 8;
break
;
328
case
5: Power -= 20;
break
;
329
default
: Power -= 22;
330
}
331
}
332
else
{
333
Power += 4;
334
if
(Temperature < (t - 20)) Power += 30;
335
}
336
break
;
337
338
case
5:
339
if
(Temperature <= (b + 30)) Power += 20;
if
(Power > 200) Power = 200;
340
break
;
341
342
case
3:
343
if
(Temperature < t) Power = 30;
344
break
;
345
}
346
347
b = Temperature;
//промежуточное значение температуры
348
if
(Temperature > t + 7) Power -= 20;
349
Power = constrain(Power, 8, 200);
//ограничение мощности 50%
350
if
((Power == 8) && (Temperature > t + 3)) Power = 0;
//выключение нагревателя
351
if
(!menu) {lcd.setCursor(0, 1); lcd.print(
"Pow"
); i = map(Power, 0, 200, 1, 99);
if
(i < 10) lcd.print(
" "
); lcd.print(i); lcd.print(
"%"
);}
//мощность на нагрев
352
analogWrite(3, Power);
353
}
354
355
356
void
parametri()
//изменение параметров в зависимости от дня инкубации, сюда можно внести свои данные режима инкубации
357
{
358
switch
(avtomatik){
359
case
1:
//для кур
360
if
(day < 2) {t = 380; powerTurn =
true
; r_ventilator =
false
; H = 60;}
361
else
{t = 378; powerTurn =
true
; r_ventilator =
false
; H = 60;}
362
if
(day > 14) {t = 377; H = 60; r_ventilator =
true
; EEPROM.write(7, 18); vrema_raboti_ventilatora = 18; powerTurn =
true
; }
363
if
(day > 17) {t = 370; H = 80; powerTurn =
false
; r_ventilator =
true
;}
364
break
;
365
case
2:
//для перепелов
366
if
(day < 2) {t = 380; powerTurn =
true
; r_ventilator =
false
; H = 60;}
367
else
{t = 378; powerTurn =
true
; r_ventilator =
false
; H = 60;}
368
if
(day > 7) {t = 377; H = 60; r_ventilator =
true
; EEPROM.write(7, 10); vrema_raboti_ventilatora = 10; powerTurn =
true
;}
369
if
(day > 13) {t = 377; H = 60; powerTurn =
true
; r_ventilator =
true
;}
370
if
(day > 14) {t = 370; H = 80; powerTurn =
false
; r_ventilator =
true
;}
371
break
;
372
case
3:
//утка
373
if
(day < 2) {t = 385; powerTurn =
true
; r_ventilator =
false
; H = 70;}
374
else
{t = 380; powerTurn =
true
; r_ventilator =
false
; H = 70;}
375
if
(day > 7) {t = 378; H = 60; r_ventilator =
false
; EEPROM.write(7, 15); vrema_raboti_ventilatora = 15; powerTurn =
true
;}
376
if
(day > 14) {t = 378; H = 60; powerTurn =
true
; r_ventilator =
true
;}
377
if
(day > 25) {t = 375; H = 90; powerTurn =
false
; r_ventilator =
false
;}
378
break
;
379
case
4:
//гуси
380
if
(day < 6) {t = 380; powerTurn =
true
; r_ventilator =
false
; H = 70;}
381
else
{t = 378; powerTurn =
true
; r_ventilator =
false
; H = 60;}
382
if
(day > 13) {t = 378; H = 70; r_ventilator =
true
; EEPROM.write(7, 25); vrema_raboti_ventilatora = 25; powerTurn =
true
;}
383
if
(day > 26) {t = 375; H = 85; powerTurn =
true
; r_ventilator =
true
;}
384
if
(day > 28) {t = 375; H = 85; powerTurn =
false
; r_ventilator =
false
;}
385
break
;
386
}
387
}
388
389
390
391
void
displayPrint(){
392
lcd.setCursor(0, 0);
if
(hTimer < 10) lcd.print(
"0"
); lcd.print(hTimer); lcd.setCursor(3, 0);
if
(mTimer < 10) lcd.print(
"0"
); lcd.print(mTimer);
393
lcd.setCursor(6, 0); lcd.print(
"Day"
); lcd.print(dTimer);
394
lcd.setCursor(12, 0); lcd.print(
"H"
); lcd.print(h, 0); lcd.print(
"%"
);
395
396
lcd.setCursor(0, 1); lcd.print(
"Pw"
); i = map(Power, 0, 200, 1, 99);
if
(i < 10) lcd.print(
" "
); lcd.print(i); lcd.print(
"%"
);
//мощность на нагрев
397
lcd.setCursor(6, 1); lcd.print(avtomatik);
398
lcd.setCursor(7, 1);
if
(powerTurn) lcd.print(
"|"
);
else
lcd.print(
"0"
); lcd.print(accountTurn);
399
lcd.setCursor(8, 1);
if
(ventilation) lcd.print(
"*"
);
else
lcd.print(
"-"
);
400
lcd.setCursor(9, 1);
if
(digitalRead(ventilatorH)) lcd.print(
"#"
);
else
lcd.print(
"-"
);
401
lcd.setCursor(11, 1); lcd.print(Temperature * 0.1, 1); lcd.print(
"\1"
);
402
403
}
404
405
//на второй строке дисплея отображаются: мощность на нагеревателе Pw 1-99%;
406
// режим инкубации 0 - ручной; 1 - куры; 2 - перепелки; 3 - утки; 4 - гуси;
407
// включен поворот - |; выключен поворот - 0
408
// вентиляция работает - *; выключена - -;
409
// работает вентилятор влажности - #; выключен - -;
410
// текущее значение температуры
411
412
413
414
void
errorMelody() {
//8 пин на буззер
415
//noTone(8); tone(6, 440, 200); delay(200);
416
//noTone(6); tone(7, 494, 500); delay(500);
417
tone(8, 523, 300);
418
}
на 149 стоке компиляция зависает
if (avtomatik) parametri();
Arduino: 1.8.9 (Windows XP), Плата:"Arduino Nano, ATmega328P"
D:\Documents and Settings\Администратор\Мои документы\Arduino\sketch_feb13a_versia_8\sketch_feb13a_versia_8.ino: In function 'void setup()':
sketch_feb13a_versia_8:87:28: error: 'parametri' was not declared in this scope
sketch_feb13a_versia_8:97:16: error: 'displayPrint' was not declared in this scope
D:\Documents and Settings\Администратор\Мои документы\Arduino\sketch_feb13a_versia_8\sketch_feb13a_versia_8.ino: In function 'void loop()':
sketch_feb13a_versia_8:135:90: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:149:32: error: 'parametri' was not declared in this scope
sketch_feb13a_versia_8:178:52: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:211:118: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:212:54: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:214:34: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:222:141: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:252:87: error: 'errorMelody' was not declared in this scope
sketch_feb13a_versia_8:256:45: error: 'errorMelody' was not declared in this scope
sketch_feb13a_versia_8:260:34: error: 'nagrev' was not declared in this scope
sketch_feb13a_versia_8:263:105: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:264:57: error: 'displayPrint' was not declared in this scope
sketch_feb13a_versia_8:283:1: error: a function-definition is not allowed here before '{' token
sketch_feb13a_versia_8:418:1: error: expected '}' at end of input
sketch_feb13a_versia_8:418:1: error: expected '}' at end of input
Используем библиотеку OneWire-2.3.5 версии 2.3.5 из папки: D:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\OneWire-2.3.5
Используем библиотеку DallasTemperature версии 3.8.0 из папки: D:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\DallasTemperature
Используем библиотеку DHT-sensor-library-master версии 1.3.8 из папки: D:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\DHT-sensor-library-master
Используем библиотеку EEPROM версии 2.0 из папки: D:\Documents and Settings\Администратор\Рабочий стол\АРДУИНО\arduino-1.8.9-windows\arduino-1.8.9\hardware\arduino\avr\libraries\EEPROM
Используем библиотеку Wire версии 1.0 из папки: D:\Documents and Settings\Администратор\Рабочий стол\АРДУИНО\arduino-1.8.9-windows\arduino-1.8.9\hardware\arduino\avr\libraries\Wire
Используем библиотеку Arduino-LiquidCrystal-I2C-library-master в папке: D:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master (legacy)
Используем библиотеку Adafruit_Unified_Sensor версии 1.1.2 из папки: D:\Documents and Settings\Администратор\Мои документы\Arduino\libraries\Adafruit_Unified_Sensor
exit status 1
'parametri' was not declared in this scope
Тут в строке 269 добавь закрывающую скобку }
Кудато делась, на работе не могу проверить.
Для меня было важно:
1. Выбор режимов для инкубации разных птиц, перепела, индюки, куры...
2. Сигнализация ошибок, температура, СО2 или влажность ушла за пределы
3. Автоповорот
То есть принцип положил закрыл и ждешь вывода. Не проветриваешь, не меняешь режимы руками во время инкубации...
Я смотрю тут все скетчи без часов реального времени. Таймеры везде используются. Я в этом слаб, мне проще воткнуть часы DS3231
Мой скетч тоже не блещет красотой, по первых собрано на 2х МК, Atmega32U4 и Attinu85, первый это основное устройство которое за всем следит, второй это ПИД регулятор, как оказалось бесполезный :-(
Отработало 2 сезона, но у меня основная проблема в конструкции, надо все переделывать. Вот под конструкцию и буду делать новую электронику. Но не в этом сезоне, этот сезон думаю старый инкубатор протянет.
Дисплей ОЛЕД 1,3" SSD1306, сенсор температуры влажности Si7021 возможно заменю на SHT31, сенсор eCO CCS811, заменю наверное на MH-Z19B но особой нужды в нем нет, потому как при постоянном небольшом притоке воздуха проблем не наблюдается.
Кнопки управления сенсорные на TTP224.
Да и еще хочу добавить подсветку при выводе, то есть например у кур с 20го дня включать подсветку в инкубаторе, чтоб на свет лезли :-)
Andrey12, спасибо помогло. Но проблему не сняло. Этот вариант на питание от12 вольт, до этого тестировал второй скетч на 220 вольт с управлением симистора. это оба скетча выложил автор Emeljanowich. http://arduino.ru/forum/proekty/inkubator?page=1 К сожалению оба не рабочие , найти ошибку не смог. Тот , что с ошибкой которую Вы нашли он не выходит в меню настроек, не откликается на кнопки pin15,16,17. Хота температуру и влажность показывает, он постоянно прокручивает заставку (inkubator_4 v_0.8) и панель с показаниями температуры и влажности времени и шим в процентах.
Второй на работу от 220вольт, сразу прошел компиляцию, но также не работает. Он как бы висит , в меню все управляется температуру и влажность считывает только при загрузке, потом она не меняется. В нем можно только менять корректировку даласа, выбрать ДНТ или далас. поменять мощность, специально что ли выкладывают не рабочие версии. Так и не чего не удалось. Завтра на дежурство сутки. После завтра попытаюсь. Андрей ещё раз спасибо за внимание. Я искал конструкцию по проще, температура с пид регулировкой, влажность, поворот, выход аварии. В любом случае необходим постоянный контроль. Умный инкубатор от Umka мне больше всех понравился, но дома три дисплея на 16х2. Их надо приспособить.
А кнопки правильно подключены? Надо к пинам 15 - А1, 16 - А2, 17 - А3. И замыкать на минус. Ну если я не сильно ошибся в нумерации аналоговых пинов.
Вроде как ничего криминального нет в программе.
А переделать с большего дисплея на меньший тот еще геморой, согласен.
В общем проверять надо. Может поставить вывод в Serial состояние кнопок чтобы проверить нажатия.
Кнопки правильно по схеме и по пинам, в скетче на 220 вольт они также подключены, там работают.
Ну тут дело думаю в том что срабатывает wdt таймер :-( заставку inkubator_4 v_0.8 оно показывает только при загрузке, а значит почемуто не доходит до сброса wdt, то есть он отображает inkubator_4 v_0.8, потом 2 секунды ждет согласно delay(2000);, потом выполняет displayPrint(); а вот до строки 266 wdt_reset(); почемуто не доходит.
Как вариант попробуйте
1. увеличить время срабатывания wdt строка 91 укажиет вместо wdt_enable (WDTO_8S);
2. если не поможет вообще отключите WDT закомментируйте строки 91 и 266
Что показывает?
Честно говоря не люблю солянку типа такой
if
(ventilation) {displayPrint(); vrema_raboti_ventilatora--; PORTD |= (1 << 4);
Я так понимаю не везде потом работает.
Во втором тоже шаманство
DRD |= (1 << 5)|(1 << 4)|(1 << 6);
//кулер, вентилятор, насос
061
PORTD |= (1 << 5);
062
PORTD &= ~(1 << 4)|(1 << 6);
Вобщем не лучшие варианты. Плата должна быть именно на Атмега328 потому как вот здесь
void
setTimer()
092
{
093
cli();
094
TCCR2A |= (1 << WGM21);
//CTC to OCR2A
095
TCCR2A &= ~(1 << WGM20);
096
TCCR2B &= ~(1 << WGM22);
097
TCCR2B |= (1 << CS22) | (1 << CS21) | (1 << CS20);
//1024
098
TIMSK2 &= ~(1 << OCIE2A);
099
OCR2A = 50;
100
sei();
101
}
102
103
ISR (TIMER2_COMPA_vect)
104
{
105
PORTB = PORTB ^ (1 << 2);
//шаги для двигателя поворота (шаговый двинатель типа 28BYJ-49) - времени на шаг 0,0032 сек
106
}
Я так понимаю настраивается именно под этот чип как у автора.
Разбираться в алгоритме дольше чем написать новый.
Andrey12 увеличение до 8 сек не помогло, закоментировал строки 24,69,92,267. Заработало меню , но работает очень вдумчиво. Кнопки надо удерживать 1-2 секунды. на изменение температуры и влажности отклик секунд 30-50 всегда по разному. Шим стоит 1% и не на что не реагирует. Вероятно там тоже не все в порядке. отсчет дней и часов и минутами идет нормально. Индикация выбора режима инкубации тоже работает. Если он будет с сорока секундной задержкой греть , он и сварить может все. Побежал на работу, ужинать забегал.
Andrey12 увеличение до 8 сек не помогло, закоментировал строки 24,69,92,267. Заработало меню , но работает очень вдумчиво. Кнопки надо удерживать 1-2 секунды. на изменение температуры и влажности отклик секунд 30-50 всегда по разному. Шим стоит 1% и не на что не реагирует. Вероятно там тоже не все в порядке. отсчет дней и часов и минутами идет нормально. Индикация выбора режима инкубации тоже работает. Если он будет с сорока секундной задержкой греть , он и сварить может все. Побежал на работу, ужинать забегал.
У вас тоже ардуино нано ? на 328 МК?
Ну вот говорю он там както таймеры настраивает. Может в этом дело, тут я не силен, уж если Ардуино с Wiring то руками я думаю лезть не стоит. Уж лучше часы использовать, хотя я понимаю секундная и даже часовая точность инкубатору не нужна.
Вот може тут какой косяк, если кто знающий или автор зайдут объяснят.
105
void
setTimer(){
106
cli();
107
TCCR1A = 0b00000000;
//none toggle clear set - инверсия установить
108
TCCR1B = (1 << WGM12)|(1 << CS12);
// 10b00011001;
109
TIMSK1 = (1 << OCIE1A);
110
OCR1A = 62500;
//разрешение ШИМ сигнала (ограничение для счета регистра TCNT1), возможно до 65 535
111
sei();
112
}
113
114
ISR (TIMER1_COMPA_vect)
//вектор прерывания по СТС таймера/счетчика 2 для работы собственного времени контроллера
115
{
116
PORTB = PORTB ^ (1 << 5); sTimer++;
if
(sTimer > 59) {mTimer++; sTimer = 0;
if
(mTimer > 59) {hTimer++; mTimer = 0;}
if
(hTimer > 23) {dTimer++; hTimer = 0;}}
117
}
Andrey12 у мена ардуино HAHO. Спасибо за помощь , Вы хорошо разбираетесь в этом вопросе.
но что то этот скеч мне сильно разонравился. Буду искать что по проще и рабочее. Сейчас в раздумьях, после дежурства надо поспать, голова совсем не варит, весна идет и надо принять решение.
Я пока на старом варианте этот сезон поинкубирую, может к следующему сезону новый слеплю.
Уважаемый conder просьба,не засирать мою ветку чужим говнокодом, если есть желание, тут можно обсуждать мой говнокод.
Хотите обсуждать свои, создайте свою ветку.
а Админов прошу почистить сообщения с чужим кодом.
lean_74 Все понял. К сожалению Ваш код не удалось довести до рабочего состояния.
и потом если инкубатор небольшой яиц на 100 то PID вам не нужен, становится намного проще программа.
доброго времени вам! а по подробней, может ли ардуино плавно регулировать
с ув.
и потом если инкубатор небольшой яиц на 100 то PID вам не нужен, становится намного проще программа.
доброго времени вам! а по подробней, может ли ардуино плавно регулировать
с ув.
Плавно регулировать может с использование PID алгоритма. Почему не смочь то, главное суметь настроить.
Кто поделиться архивом с печаткой и схемой
Добрый день. Какая на данный момент актуальная версия кода?
Хочу помочь тестю с инкубатором, ваша тема приглянулась, но давно активности в теме нет. Может есть обновления в коде или финальный вариант уже здесь выложен?