24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.
Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.
Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.
«Спасибо дедушка путин за счастливое детство и мое освобождение». ©
Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©
PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...
Due to periodic DDoS attacks, the forum may not be available.
Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.
Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.
«Спасибо дедушка путин за счастливое детство и мое освобождение». ©
Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©
PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...
Due to periodic DDoS attacks, the forum may not be available.
Термостат ∆T=0,1°C
- Yanshun
- Живу тут
- Posts: 211
- Joined: 01 Feb 2015 12:45
Re: Термостат ∆T=0,1°C
Добрый вечер.
Сегодня решил прошить микроконтроллер прогромматором USBasp в программе AVRDUDE_PROG 3.3, прошилось все за 1сек. верификацию прошло на УРА, так-же с фьюзами все замечательно. Но мне ОЧЕНЬ хочется считать назад прошивку и сравнить ее с оригиналом, есть ли такая возможность в AVRDUDE_PROG 3.3, как я не пробывал у меня ничего не получается, считать прошивку и сохранить ее себе на ПК, буду очень признателен за помощь.
Благодарю.
Сегодня решил прошить микроконтроллер прогромматором USBasp в программе AVRDUDE_PROG 3.3, прошилось все за 1сек. верификацию прошло на УРА, так-же с фьюзами все замечательно. Но мне ОЧЕНЬ хочется считать назад прошивку и сравнить ее с оригиналом, есть ли такая возможность в AVRDUDE_PROG 3.3, как я не пробывал у меня ничего не получается, считать прошивку и сохранить ее себе на ПК, буду очень признателен за помощь.
Благодарю.
Корпорация MARS
-
- Частенько бываю
- Posts: 42
- Joined: 29 Jun 2011 14:58
- Location: Калуш
Re: Термостат ∆T=0,1°C
За 1 сек. он не может прошить так скорость записи флеш в мк. низкая.
- hardlock
- Администратор
- Posts: 4014
- Joined: 21 Jan 2009 14:48
- Location: Minsk - zp.ua
- Contact:
Re: Термостат ∆T=0,1°C
Yanshun, если вы не знаете команды ДУДки, то может посомтреть в сторону графических оборлочек для неё? Типа Burn-O-Mat или SinaProg.
- Yanshun
- Живу тут
- Posts: 211
- Joined: 01 Feb 2015 12:45
Re: Термостат ∆T=0,1°C
Добрый день.
Большое спасибо всем за помощь, оказалось AVRDUDE_PROG 3.3 записала в микроконтроллер всего 13 байт, не могу понять почему, отсюда высокая скорость записи. Только как-же она прошла верификацию, не понятно.
Попробую с помощью SinaProg поколдовать, может что у меня получится зашить полностью прошивку в микроконтроллер.
USBasp наверно мне попался не много с сюрпризом.
В случае удачи отпишусь и сделаю фотоотчет.
Большое спасибо всем за помощь, оказалось AVRDUDE_PROG 3.3 записала в микроконтроллер всего 13 байт, не могу понять почему, отсюда высокая скорость записи. Только как-же она прошла верификацию, не понятно.
Попробую с помощью SinaProg поколдовать, может что у меня получится зашить полностью прошивку в микроконтроллер.
USBasp наверно мне попался не много с сюрпризом.
В случае удачи отпишусь и сделаю фотоотчет.
Корпорация MARS
-
- Пробегал мимо
- Posts: 11
- Joined: 15 Sep 2015 22:17
Re: Термостат ∆T=0,1°C
Добрый день. Не хочу флудить,но вопрос у меня остался открытым: Можно ли доработать этот термостат для управления ДВУМЯ каналами нагрузки, с одного датчика температуры,для нагрева и охлаждения. То есть надо держать постоянную заданную температуру с помощью подогрева и охлаждения. Если уже есть такое устройство,просьба написать где оно.Спасибо.
-
- Живу тут
- Posts: 490
- Joined: 03 Jun 2014 09:22
Re: Термостат ∆T=0,1°C
на вскидку - промах...felyx wrote:Если уже есть такое устройство,просьба написать где оно.Спасибо.
и еще несколько выдает поиск:
http://hardlock.org.ua/search.php?keywords=нагрева охлаждения&t=10&sf=msgonly
вот какое-то похожее решение
http://hardlock.org.ua/viewtopic.php?f=9&t=10&p=2552#p2553
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Это совсем не то что ему нужно. Ему нужны две температуры регулирования - первая (например +15) нагрев дельта 1 градус, вторая (например +25) охлаждение дельта 1propell_ant wrote:на вскидку - http://hardlock.org.ua/viewtopic.php?f=9&t=10&p=9822#p9823felyx wrote:Если уже есть такое устройство,просьба написать где оно.Спасибо.
Это проще сделать самому. Только сделать одну температуру регулирования жестко прошитой в программе.
felyx сам сможешь с помощью или нужны готовые хексики ?
-
- Пробегал мимо
- Posts: 11
- Joined: 15 Sep 2015 22:17
Re: Термостат ∆T=0,1°C
IYra, спасибо за отзывчивость,если можешь помочь,буду признателен. Я так понимаю что мне нужно переделать немного схему и повесить второое реле.А температурный диапазон мне нужен: верхний порог 14*С, а нижний 12*С. С чего начнем или создадим еще одну ветку форума?
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Да надо добавить еще один транзистор и реле как на схемеfelyx wrote:Я так понимаю что мне нужно переделать немного схему и повесить второое реле.
Один транс подключен к PD2 (6 ножка) - это управление нагревом ( 1 = T < Tуст)
Другой тр подключен к PD3 (7 ножка) - это управление охлаждением ( 1 = T > Tуст)
Это непонятно. Что - при 14 включается охлаждение, а при 12 нагрев ?felyx wrote: А температурный диапазон мне нужен: верхний порог 14*С, а нижний 12*С.
Если настройка границ не требуется то можно пороги зашить жестко для надежности.
Иногда слетают настройки при плохом питании.
И еще вопрос. Какой у тебя CodeVision и сможешь ли ты сам исправить код и пересобрать проект ?
-
- Пробегал мимо
- Posts: 11
- Joined: 15 Sep 2015 22:17
Re: Термостат ∆T=0,1°C
IYra, Сode vision есть,немного умею им пользоваться,открывал исходник этого термостата,а вот что именно там надо исправить или добавить и где - не знаю. Если ты в этом понимаешь то надо добавить срабатывание реле на нагрев при нижнем пороге 10*С - этот порог можно зашить стабильно в мк, а верхний порог оставить регулируемым(для охлаждения).Спасибо.
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Тогда надо в функции interrupt [TIM1_OVF] void timer1_ovf_isr(void) заменитьfelyx wrote: надо добавить срабатывание реле на нагрев при нижнем пороге 10*С - этот порог можно зашить стабильно в мк, а верхний порог оставить регулируемым(для охлаждения).Спасибо.
Code: Select all
Temp = T_LoadOn + DeltaT; //Temp - временная переменная.
if ((Tnew >= Temp) & (LoadOn)) //Если температура выше (установленной + Дэльта) и нагрузка включена,
{ //то выключаем нагрузку
PORTD.3 = 1;
PORTD.2 = 0;
LoadOn = 0;
}
Temp = T_LoadOn; //Temp - временная переменная.
if ((Tnew <= Temp) & (!LoadOn)) //Если температура ниже (установленной) и нагрузка выключена,
{ //то включаем нагрузку
PORTD.3 = 0;
PORTD.2 = 1;
LoadOn = 1;
}
Code: Select all
Temp = 1100 + DeltaT; // 10 градусов.
if (Tnew >= Temp) //Если температура выше (10 + Дэльта)
{ // выключаем Нагрев
PORTD.2 = 0;
}
else if (Tnew < 1100)
{ // включаем Нагрев
PORTD.2 = 1;
}
Temp = T_LoadOn + DeltaT; // Уставка Охлаждение
if (Tnew >= Temp) //Если температура выше Уставка+дельта включаем Охлаждение
{ //то включаем нагрузку
PORTD.3 = 1;
}
else if (Tnew < T_LoadOn)
{ //то выключаем Охлаждение
PORTD.3 = 0;
}
-
- Пробегал мимо
- Posts: 11
- Joined: 15 Sep 2015 22:17
Re: Термостат ∆T=0,1°C
IYra, спасибо,завтра попробую и отпишусь
-
- Живу тут
- Posts: 490
- Joined: 03 Jun 2014 09:22
Re: Термостат ∆T=0,1°C
IYra, а что ж не вот так, вместо
написать
то есть гистерезис как бы расширяется вниз, ниже уставки. Алгоритм переключения станет таким:
падение температуры:
от T_LoadOn - DeltaT - включается нагрев
рост температуры:
после достижения T_LoadOn - прекращение нагрева
при достиженииT_LoadOn - DeltaT - охлаждение
падение температуры:
после достижения T_LoadOn - прекращение охлаждения.
Code: Select all
Temp = 1100 + DeltaT;
Code: Select all
Temp = T_LoadOn - DeltaT;
падение температуры:
от T_LoadOn - DeltaT - включается нагрев
рост температуры:
после достижения T_LoadOn - прекращение нагрева
при достиженииT_LoadOn - DeltaT - охлаждение
падение температуры:
после достижения T_LoadOn - прекращение охлаждения.
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Если я правильно понял идея в том чтобы с помощью одной уставки и большой дельтыpropell_ant wrote: Алгоритм переключения станет таким:
падение температуры:
от T_LoadOn - DeltaT - включается нагрев
рост температуры:
после достижения T_LoadOn - прекращение нагрева
при достижении T_LoadOn - DeltaT - охлаждение (наверное имелось ввиду T_LoadOn + DeltaT)
падение температуры:
после достижения T_LoadOn - прекращение охлаждения.
регулировать и нагрев и охлаждение.
То есть к примеру T_LoadOn = 20.0 DeltaT = 10.0
Тогда при 10 гр включается нагрев и греет до 20
а при 30 включается охлаждение и отключается при 20
-
- Пробегал мимо
- Posts: 11
- Joined: 15 Sep 2015 22:17
Re: Термостат ∆T=0,1°C
Ув. форумчане, При копиляции исходника с первой страницы(без всяких изменений в исходнике),с помощью Codevisionavr 2.05.3, выдает пять предупреждений,и в работе с термостатом не регулируется дельта!!! Куда копать или что делать?
Ув.IYra, , идея такова,что мы устанавливаем в исходнике 10*С + дельта, а на охлаждение оставляем регулируемым-дельта. Пробывал испытать подправленый тобой код из поста выше, но не смог определить правильность работы из-за ошибок связаных с регулировкой дельты.
Ув.IYra, , идея такова,что мы устанавливаем в исходнике 10*С + дельта, а на охлаждение оставляем регулируемым-дельта. Пробывал испытать подправленый тобой код из поста выше, но не смог определить правильность работы из-за ошибок связаных с регулировкой дельты.
-
- Живу тут
- Posts: 490
- Joined: 03 Jun 2014 09:22
Re: Термостат ∆T=0,1°C
felyx,
для компиляции под CVAVR 2 добавь в файл kbd.c после строк #include "tiny2313.h" такие строчки:
а вообще, в первом посте, в самом конце списка файлов доступных для скачивания есть архив с исходниками, нормально собирающимися под CVAVR 2:
firmware v3.2.cv2.rar
для компиляции под CVAVR 2 добавь в файл kbd.c после строк #include "tiny2313.h" такие строчки:
Code: Select all
#if __CODEVISIONAVR__ > 2000
//проверка версии только для полной гарантии того, что
//оригинальная версия исходника не затрагивается
extern BYTE View;
extern BYTE Counter;
extern int T_LoadOn;
extern int DeltaT;
extern void RefreshDisplay(void);
#endif
firmware v3.2.cv2.rar
-
- Пробегал мимо
- Posts: 11
- Joined: 15 Sep 2015 22:17
Re: Термостат ∆T=0,1°C
добавил,теперь выскочили два таких предупреждения:propell_ant wrote:felyx,
для компиляции под CVAVR 2 добавь в файл kbd.c после строк #include "tiny2313.h" такие строчки:а вообще, в первом посте, в самом конце списка файлов доступных для скачивания есть архив с исходниками, нормально собирающимися под CVAVR 2:Code: Select all
#if __CODEVISIONAVR__ > 2000 //проверка версии только для полной гарантии того, что //оригинальная версия исходника не затрагивается extern BYTE View; extern BYTE Counter; extern int T_LoadOn; extern int DeltaT; extern void RefreshDisplay(void); #endif
firmware v3.2.cv2.rar
Warning: firmware v3.2.cv2\firmware v3.2.cv2\termostat_led.c(382): overflow is possible in 8 bit multiplication, casting to 'int' may be required
Warning: firmware v3.2.cv2\firmware v3.2.cv2\termostat_led.c(387): overflow is possible in 8 bit multiplication, casting to 'int' may be required
в строке
Tnew = 1000 - (((~T & 0xFF) * 10) + (Ff * 10 / 16)); //вычисляем значение температуры если T < 0.
//Формат хранения - смотри строку 58 этого файла
...что еще не так? Спасибо
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Все нормально. Так и должно бытьfelyx wrote: ...что еще не так? Спасибо
-
- Пробегал мимо
- Posts: 11
- Joined: 15 Sep 2015 22:17
Re: Термостат ∆T=0,1°C
Всем спасибо за помощь.Все скомпилилось и заработало в железе. Вопрос такой: если я не хочу привязывать дельту к нижнему порогу 10*С,то мне надо сделать так:
Temp = 1110; // 11 градусов.
if (Tnew >= Temp) //Если температура выше (11 градусов)
{ // выключаем Нагрев
PORTD.2 = 0;
}
else if (Tnew < 1100) //Если ниже 10 градусов
{ // включаем Нагрев
PORTD.2 = 1;
}
Temp = T_LoadOn + DeltaT; // Установка Охлаждение
if (Tnew >= Temp) //Если температура выше Установка+дельта включаем Охлаждение
{ //то включаем нагрузку
PORTD.3 = 1;
}
else if (Tnew < T_LoadOn)
{ //то выключаем Охлаждение
PORTD.3 = 0;
}
Я все правильно написал,тут вручную установил дельту в 1*С?
Спасибо!
Temp = 1110; // 11 градусов.
if (Tnew >= Temp) //Если температура выше (11 градусов)
{ // выключаем Нагрев
PORTD.2 = 0;
}
else if (Tnew < 1100) //Если ниже 10 градусов
{ // включаем Нагрев
PORTD.2 = 1;
}
Temp = T_LoadOn + DeltaT; // Установка Охлаждение
if (Tnew >= Temp) //Если температура выше Установка+дельта включаем Охлаждение
{ //то включаем нагрузку
PORTD.3 = 1;
}
else if (Tnew < T_LoadOn)
{ //то выключаем Охлаждение
PORTD.3 = 0;
}
Я все правильно написал,тут вручную установил дельту в 1*С?
Спасибо!
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Да все правильноfelyx wrote: Вопрос такой: если я не хочу привязывать дельту к нижнему порогу 10*С,то мне надо сделать так:Code: Select all
Temp = 1110; // 11 градусов. if (Tnew >= Temp) //Если температура выше (11 градусов) { // выключаем Нагрев PORTD.2 = 0; } else if (Tnew < 1100) //Если ниже 10 градусов { // включаем Нагрев PORTD.2 = 1; }
PS
Можно и верхнюю границу так же зашить в программу.
Увеличивается надежность (сбой EEPROM) и освобождаются два вывода (кнопки)
К ним можно еще что-нибудь прикрутить
- Yanshun
- Живу тут
- Posts: 211
- Joined: 01 Feb 2015 12:45
Re: Термостат ∆T=0,1°C
Добрый вечер.
Наконец сегодня пришли печатки, 10 шт. начну потихоньку пробовать собирать.
В случае удачи сделаю фотоотчет.
Наконец сегодня пришли печатки, 10 шт. начну потихоньку пробовать собирать.
В случае удачи сделаю фотоотчет.
Корпорация MARS
- hardlock
- Администратор
- Posts: 4014
- Joined: 21 Jan 2009 14:48
- Location: Minsk - zp.ua
- Contact:
- Yanshun
- Живу тут
- Posts: 211
- Joined: 01 Feb 2015 12:45
-
- Пробегал мимо
- Posts: 3
- Joined: 08 Oct 2015 21:02
Re: Термостат ∆T=0,1°C
уважаемый hardlock подскажите пожалуйста как можно заставить первую ножку или шестую заставить прерываться с переодичностью? это я для авто поворота лотка в инкубаторе.читал есть команда .посмотрите пожалуйста будет ли она работать если я ее вставлю в прошивку?заранее благодарен.
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
while(1)
{
PORTD=0b00000001;//включаем
_delay_ms(10000);//Задержка 10 сек.
PORTD=0b00000000;//выключаем
_delay_ms(10000);//Задержка 10 сек.
}
}
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
while(1)
{
PORTD=0b00000001;//включаем
_delay_ms(10000);//Задержка 10 сек.
PORTD=0b00000000;//выключаем
_delay_ms(10000);//Задержка 10 сек.
}
}
- hardlock
- Администратор
- Posts: 4014
- Joined: 21 Jan 2009 14:48
- Location: Minsk - zp.ua
- Contact:
Re: Термостат ∆T=0,1°C
robert, не, не будет работать, т.к. в программе все реализовано через прерывания и таймеры. Надо подумать. А в теме про инкубатор похожего нету?