24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

Термостат ∆T=0,1°C

Здесь только проекты на ATtiny
Post Reply
User avatar
Yanshun
Живу тут
Posts: 211
Joined: 01 Feb 2015 12:45

Re: Термостат ∆T=0,1°C

Post by Yanshun »

Добрый вечер.
Сегодня решил прошить микроконтроллер прогромматором USBasp в программе AVRDUDE_PROG 3.3, прошилось все за 1сек. верификацию прошло на УРА, так-же с фьюзами все замечательно. Но мне ОЧЕНЬ хочется считать назад прошивку и сравнить ее с оригиналом, есть ли такая возможность в AVRDUDE_PROG 3.3, как я не пробывал у меня ничего не получается, считать прошивку и сохранить ее себе на ПК, буду очень признателен за помощь.
Благодарю.
Attachments
SNC00515.jpg
SNC00516.jpg
Корпорация MARS
Nikolas
Частенько бываю
Posts: 42
Joined: 29 Jun 2011 14:58
Location: Калуш

Re: Термостат ∆T=0,1°C

Post by Nikolas »

За 1 сек. он не может прошить так скорость записи флеш в мк. низкая.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат ∆T=0,1°C

Post by hardlock »

Yanshun, если вы не знаете команды ДУДки, то может посомтреть в сторону графических оборлочек для неё? Типа Burn-O-Mat или SinaProg.
User avatar
Yanshun
Живу тут
Posts: 211
Joined: 01 Feb 2015 12:45

Re: Термостат ∆T=0,1°C

Post by Yanshun »

Добрый день.
Большое спасибо всем за помощь, оказалось AVRDUDE_PROG 3.3 записала в микроконтроллер всего 13 байт, не могу понять почему, отсюда высокая скорость записи. Только как-же она прошла верификацию, не понятно.
Попробую с помощью SinaProg поколдовать, может что у меня получится зашить полностью прошивку в микроконтроллер.
USBasp наверно мне попался не много с сюрпризом.
В случае удачи отпишусь и сделаю фотоотчет.
Корпорация MARS
felyx
Пробегал мимо
Posts: 11
Joined: 15 Sep 2015 22:17

Re: Термостат ∆T=0,1°C

Post by felyx »

Добрый день. Не хочу флудить,но вопрос у меня остался открытым: Можно ли доработать этот термостат для управления ДВУМЯ каналами нагрузки, с одного датчика температуры,для нагрева и охлаждения. То есть надо держать постоянную заданную температуру с помощью подогрева и охлаждения. Если уже есть такое устройство,просьба написать где оно.Спасибо.
propell_ant
Живу тут
Posts: 490
Joined: 03 Jun 2014 09:22

Re: Термостат ∆T=0,1°C

Post by propell_ant »

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
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Термостат ∆T=0,1°C

Post by IYra »

propell_ant wrote:
felyx wrote:Если уже есть такое устройство,просьба написать где оно.Спасибо.
на вскидку - http://hardlock.org.ua/viewtopic.php?f=9&t=10&p=9822#p9823
Это совсем не то что ему нужно. Ему нужны две температуры регулирования - первая (например +15) нагрев дельта 1 градус, вторая (например +25) охлаждение дельта 1
Это проще сделать самому. Только сделать одну температуру регулирования жестко прошитой в программе.
felyx сам сможешь с помощью или нужны готовые хексики ?
felyx
Пробегал мимо
Posts: 11
Joined: 15 Sep 2015 22:17

Re: Термостат ∆T=0,1°C

Post by felyx »

IYra, спасибо за отзывчивость,если можешь помочь,буду признателен. Я так понимаю что мне нужно переделать немного схему и повесить второое реле.А температурный диапазон мне нужен: верхний порог 14*С, а нижний 12*С. С чего начнем или создадим еще одну ветку форума?
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Термостат ∆T=0,1°C

Post by IYra »

felyx wrote:Я так понимаю что мне нужно переделать немного схему и повесить второое реле.
Да надо добавить еще один транзистор и реле как на схеме
Один транс подключен к PD2 (6 ножка) - это управление нагревом ( 1 = T < Tуст)
Другой тр подключен к PD3 (7 ножка) - это управление охлаждением ( 1 = T > Tуст)
felyx wrote: А температурный диапазон мне нужен: верхний порог 14*С, а нижний 12*С.
Это непонятно. Что - при 14 включается охлаждение, а при 12 нагрев ?
Если настройка границ не требуется то можно пороги зашить жестко для надежности.
Иногда слетают настройки при плохом питании.
И еще вопрос. Какой у тебя CodeVision и сможешь ли ты сам исправить код и пересобрать проект ?
felyx
Пробегал мимо
Posts: 11
Joined: 15 Sep 2015 22:17

Re: Термостат ∆T=0,1°C

Post by felyx »

IYra, Сode vision есть,немного умею им пользоваться,открывал исходник этого термостата,а вот что именно там надо исправить или добавить и где - не знаю. Если ты в этом понимаешь то надо добавить срабатывание реле на нагрев при нижнем пороге 10*С - этот порог можно зашить стабильно в мк, а верхний порог оставить регулируемым(для охлаждения).Спасибо.
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Термостат ∆T=0,1°C

Post by IYra »

felyx wrote: надо добавить срабатывание реле на нагрев при нижнем пороге 10*С - этот порог можно зашить стабильно в мк, а верхний порог оставить регулируемым(для охлаждения).Спасибо.
Тогда надо в функции interrupt [TIM1_OVF] void timer1_ovf_isr(void) заменить

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;              
}   
дельта общая
felyx
Пробегал мимо
Posts: 11
Joined: 15 Sep 2015 22:17

Re: Термостат ∆T=0,1°C

Post by felyx »

IYra, спасибо,завтра попробую и отпишусь :good:
propell_ant
Живу тут
Posts: 490
Joined: 03 Jun 2014 09:22

Re: Термостат ∆T=0,1°C

Post by propell_ant »

IYra, а что ж не вот так, вместо

Code: Select all

Temp = 1100 + DeltaT;
написать

Code: Select all

Temp = T_LoadOn - DeltaT;
то есть гистерезис как бы расширяется вниз, ниже уставки. Алгоритм переключения станет таким:
падение температуры:
от T_LoadOn - DeltaT - включается нагрев
рост температуры:
после достижения T_LoadOn - прекращение нагрева
при достиженииT_LoadOn - DeltaT - охлаждение
падение температуры:
после достижения T_LoadOn - прекращение охлаждения.
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Термостат ∆T=0,1°C

Post by IYra »

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
felyx
Пробегал мимо
Posts: 11
Joined: 15 Sep 2015 22:17

Re: Термостат ∆T=0,1°C

Post by felyx »

Ув. форумчане, При копиляции исходника с первой страницы(без всяких изменений в исходнике),с помощью Codevisionavr 2.05.3, выдает пять предупреждений,и в работе с термостатом не регулируется дельта!!! Куда копать или что делать?
Ув.IYra, , идея такова,что мы устанавливаем в исходнике 10*С + дельта, а на охлаждение оставляем регулируемым-дельта. Пробывал испытать подправленый тобой код из поста выше, но не смог определить правильность работы из-за ошибок связаных с регулировкой дельты.
propell_ant
Живу тут
Posts: 490
Joined: 03 Jun 2014 09:22

Re: Термостат ∆T=0,1°C

Post by propell_ant »

felyx,
для компиляции под 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
а вообще, в первом посте, в самом конце списка файлов доступных для скачивания есть архив с исходниками, нормально собирающимися под CVAVR 2:
firmware v3.2.cv2.rar
felyx
Пробегал мимо
Posts: 11
Joined: 15 Sep 2015 22:17

Re: Термостат ∆T=0,1°C

Post by felyx »

propell_ant wrote:felyx,
для компиляции под 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
а вообще, в первом посте, в самом конце списка файлов доступных для скачивания есть архив с исходниками, нормально собирающимися под CVAVR 2:
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 этого файла
...что еще не так? Спасибо
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Термостат ∆T=0,1°C

Post by IYra »

felyx wrote: ...что еще не так? Спасибо
Все нормально. Так и должно быть
felyx
Пробегал мимо
Posts: 11
Joined: 15 Sep 2015 22:17

Re: Термостат ∆T=0,1°C

Post by felyx »

Всем спасибо за помощь.Все скомпилилось и заработало в железе. Вопрос такой: если я не хочу привязывать дельту к нижнему порогу 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*С?
Спасибо!
IYra
Живу тут
Posts: 712
Joined: 01 Feb 2012 18:36
Location: Санкт-Петербург

Re: Термостат ∆T=0,1°C

Post by IYra »

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) и освобождаются два вывода (кнопки)
К ним можно еще что-нибудь прикрутить
User avatar
Yanshun
Живу тут
Posts: 211
Joined: 01 Feb 2015 12:45

Re: Термостат ∆T=0,1°C

Post by Yanshun »

Добрый вечер.
Наконец сегодня пришли печатки, 10 шт. начну потихоньку пробовать собирать.
В случае удачи сделаю фотоотчет.
Attachments
Фото (4).jpg
Корпорация MARS
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат ∆T=0,1°C

Post by hardlock »

Yanshun, где заказывали?
User avatar
Yanshun
Живу тут
Posts: 211
Joined: 01 Feb 2015 12:45

Re: Термостат ∆T=0,1°C

Post by Yanshun »

Донецк, но есть такой-же и еще и с шелкографией в Харькове.
Корпорация MARS
robert
Пробегал мимо
Posts: 3
Joined: 08 Oct 2015 21:02

Re: Термостат ∆T=0,1°C

Post by robert »

уважаемый 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 сек.
}
}
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат ∆T=0,1°C

Post by hardlock »

robert, не, не будет работать, т.к. в программе все реализовано через прерывания и таймеры. Надо подумать. А в теме про инкубатор похожего нету?
Post Reply