Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

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

Здесь только проекты на ATtiny

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

Сообщение IYra » 05 апр 2013 19:46

Alexei писал(а): ну теоретически 100 Ом не должны сжечь контроллер или для надежности раззвязать транзисторными ключами?

Практически тоже не должны. Я делал вообще без сопротивлений, правда на зеленом маленьком индикаторе.
А ключи это лишнее.
Ну и еще. hardlock где-то на форуме писал что красный лучше видно на солнце.
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

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

Сообщение aleshka_4ik » 29 апр 2013 10:41

Подскажите, как доработать текст программы, чтоб выключать дисплей.
Т.е., термостат используется, как пороговое устройство, выход на нагрузку только один (например PORTD.3, PORTD.2 свободен).
Нужно, чтоб пока на PORTD.3 лог.0, экран был потушен (в целях экономии батарейки), когда поднимается тем-ра и PORTD.3=1, включаются индикаторы.
Так же чтоб была кнопка, можно на PORTD.2, чтоб нажатием кнопки можно было включить дисплей, посмотреть тем-ру.

Спасибо.
aleshka_4ik
Пробегал мимо
 
Сообщения: 2
Зарегистрирован: 03 авг 2012 15:57

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

Сообщение IYra » 29 апр 2013 18:54

aleshka_4ik писал(а):Подскажите, как доработать текст программы, чтоб выключать дисплей.
Нужно, чтоб пока на PORTD.3 лог.0, экран был потушен (в целях экономии батарейки), когда поднимается тем-ра и PORTD.3=1, включаются индикаторы.

Попробуй в функции ShowDisplayData(void) добавить
{
#ifdef Cathode
if (PIND.3==0)
{
PORTB = 0 ; return
}

PORTB = byCharacter[byDisplay[0]];

----
----

#ifdef Anode
if (PIND.3==0)
{
PORTB = 0xFF ;
return ;
}

PORTB = ~byCharacter[byDisplay[0]];


aleshka_4ik писал(а):Так же чтоб была кнопка, можно на PORTD.2, чтоб нажатием кнопки можно было включить дисплей, посмотреть тем-ру. Спасибо.

Лишнюю кнопку можно наверно не заводить а использовать те что есть. Только завести глобальный флаг. Pokaz = 0
Если дисплей не горит то любое нажатие на кнопку - Pokaz = 10.
каждую секунду в функции уменьшаем Pokaz--
// Timer 1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
----
if (Counter > 0) //Counter - переменная для подсчёта времени отображения различных режимов
{
Counter --; //если она больше "0", то значит кто-то переключил режим отображения и
} //присвоил ей значение отличное от "0". Значит надо екрементировать,
else //пока не станет равной "0".
{
View = 0; //если она =0, то сбрасываем текущий режим на "0"
}

if (Pokaz > 0) //Pokaz - переменная для подсчёта времени отображения
{
Pokaz --; //если она больше "0", то значит была нажата кнопка
}
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

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

Сообщение aleshka_4ik » 30 апр 2013 12:22

Попробуй в функции ShowDisplayData(void) добавить
{
#ifdef Cathode
if (PIND.3==0)
{
PORTB = 0 ; return
}
PORTB = byCharacter[byDisplay[0]];

----
----

#ifdef Anode
if (PIND.3==0)
{
PORTB = 0xFF ;
return ;
}
PORTB = ~byCharacter[byDisplay[0]];

Спасибо! Все получилось!

if (Counter > 0) //Counter - переменная для подсчёта времени отображения различных режимов
{
Counter --; //если она больше "0", то значит кто-то переключил режим отображения и
} //присвоил ей значение отличное от "0". Значит надо екрементировать,
else //пока не станет равной "0".
{
View = 0; //если она =0, то сбрасываем текущий режим на "0"
}

if (Pokaz > 0) //Pokaz - переменная для подсчёта времени отображения
{
Pokaz --; //если она больше "0", то значит была нажата кнопка
}

По поводу кнопки не совсем понял.
Для Pokaz тоже нужно условие переключения в режим View = 0 ?
И еще, нужно написать еще какое-то условие там где
#ifdef Cathode
if (PIND.3==0)
{
PORTB = 0 ; return }

ведь дисплей не включиться пока PIND.3==0, а соответственно PORTB = 0.
aleshka_4ik
Пробегал мимо
 
Сообщения: 2
Зарегистрирован: 03 авг 2012 15:57

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

Сообщение IYra » 30 апр 2013 14:13

aleshka_4ik писал(а):По поводу кнопки не совсем понял.

По порядку.
1.
Добавляем глобальный флаг Pokaz
BYTE Counter = 0;
BYTE Pokaz = 0;
2.
При нажатии на любую кнопку Pokaz = 10
функция ScanKbd в kbd.c
// Если обнаружено нажатие на клавишу, то переходим к ее проверке.
if (KeyCode != 0)
{
byCheckedKey = KeyCode;
Pokaz = 10;
3.
каждую секунду в функции interrupt [TIM1_OVF] void timer1_ovf_isr(void) уменьшаем Pokaz на единицу
пока не станет 0
// Timer 1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
----
if (Counter > 0) //Counter - переменная для подсчёта времени отображения различных режимов
{
Counter --; //если она больше "0", то значит кто-то переключил режим отображения и
} //присвоил ей значение отличное от "0". Значит надо екрементировать,
else //пока не станет равной "0".
{
View = 0; //если она =0, то сбрасываем текущий режим на "0"
}
if (Pokaz > 0) //Pokaz - переменная для подсчёта времени отображения
{
Pokaz --; //если она больше "0", то значит была нажата кнопка
}

4.
Использование Pokaz в условие
#ifdef Cathode
if ((PIND.3==0)&(Pokaz==0))
{
PORTB = 0 ; return
}
0) //Counter - переменная для подсчёта времени отображения различных режимов
{
Counter --; //если она больше

Посмотрел я на пункт 2. Надо бы чтоб при первом нажатии изменялся только Pokaz.
А стандартная реакция на кнопки была бы уже при Pokaz > 0
Поэтому добавляем в другом месте
if( btKeyUpdate )
{
if (Pokaz==0) Pokaz=10
else

{
btKeyUpdate = FALSE;
ProcessKey();
}
}
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

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

Сообщение georg77 » 01 май 2013 17:26

Вашему вниманию мои 5 копеек в общую копилку
на основе прошивки от grey4ip чуток переделал логику работы термостата и теперь один термостат может управлять и охладителем и нагревателем одновременно
6 и 7 пины - выходы на охладитель и нагреватель соответственно (1 - включено)
применение - в погребах, теплицах, взамен штатных регуляторов холодильников - морозильников и т. д. и т. п.
исключается одновременное включение нагревателя и охладителя, пределы установки температуры максимально расширены для универсальности термостата
прошу не пинать сильно если что-то не так
Вложения
my TS01 03.zip
(2.46 КБ) Скачиваний: 291
georg77
Частенько бываю
 
Сообщения: 84
Зарегистрирован: 26 ноя 2011 06:38

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

Сообщение Serioga » 10 май 2013 17:10

georg77 писал(а):Вашему вниманию мои 5 копеек в общую копилку
на основе прошивки от grey4ip чуток переделал логику работы термостата и теперь один термостат может управлять и охладителем и нагревателем одновременно
6 и 7 пины - выходы на охладитель и нагреватель соответственно (1 - включено)
применение - в погребах, теплицах, взамен штатных регуляторов холодильников - морозильников и т. д. и т. п.
исключается одновременное включение нагревателя и охладителя, пределы установки температуры максимально расширены для универсальности термостата
прошу не пинать сильно если что-то не так


В "железе" пробовал, как работает ?
Serioga
Живу тут
 
Сообщения: 270
Зарегистрирован: 19 апр 2010 19:52
Откуда: Полтава

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

Сообщение georg77 » 11 май 2013 07:11

да, пробовал
забыл написать, что прошивка под общий анод
из косяков - несколько неправильно работает точка на индикаторе, обозначающая включение нагрузки (логика её работы осталась прежней)
аларма пока нет
постараюсь всё поправить в будущем
georg77
Частенько бываю
 
Сообщения: 84
Зарегистрирован: 26 ноя 2011 06:38

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

Сообщение Serioga » 11 май 2013 07:34

georg77 писал(а):да, пробовал
забыл написать, что прошивка под общий анод
из косяков - несколько неправильно работает точка на индикаторе, обозначающая включение нагрузки (логика её работы осталась прежней)
аларма пока нет
постараюсь всё поправить в будущем


Я правельно тебя понял:
Устанавливаем необходимую температуру и дельту.
При привышении Т+дельта, включаеться охлаждение ( на 6 выходе порта 1).
При понижении Т-дельта, включаеться нагреватель ( на 7 выходе порта 1).
Точка в первом розряде показывает только включенный нагреватель.
Индикатор только с общим анодом.
Все так ?
Serioga
Живу тут
 
Сообщения: 270
Зарегистрирован: 19 апр 2010 19:52
Откуда: Полтава

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

Сообщение georg77 » 11 май 2013 07:47

именно так
georg77
Частенько бываю
 
Сообщения: 84
Зарегистрирован: 26 ноя 2011 06:38

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

Сообщение Serioga » 11 май 2013 10:26

georg77 писал(а):именно так


Спасибо, попробую.
Serioga
Живу тут
 
Сообщения: 270
Зарегистрирован: 19 апр 2010 19:52
Откуда: Полтава

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

Сообщение georg77 » 13 май 2013 20:06

кое - как впихнул в тиньку полноценную функцию аларма (регулируется как и другие параметры через нажатие 2-х кнопок)
кое - чем пришлось пожертвовать
но функцию паралельного управления нагревателем и охладителем удалось сохранить
протестирую пару-тройку дней и выложу
georg77
Частенько бываю
 
Сообщения: 84
Зарегистрирован: 26 ноя 2011 06:38

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

Сообщение Cannibal Corpse » 14 май 2013 21:37

Всем доброго времени суток
Нельзя ли переделать прошивку с ОА, задействовав PD2 в качестве входа для уменьшения яркости индикаторов.
Планируется установка в авто, термостат для управления вентилятором охлаждения двигателя
Cannibal Corpse
Пробегал мимо
 
Сообщения: 7
Зарегистрирован: 17 мар 2011 12:42

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

Сообщение IYra » 15 май 2013 09:55

Cannibal Corpse писал(а):Всем доброго времени суток
Нельзя ли переделать прошивку с ОА, задействовав PD2 в качестве входа для уменьшения яркости индикаторов.

Веткой выше это уже обсуждалось. Типа как в тахометре.
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

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

Сообщение Cannibal Corpse » 15 май 2013 15:50

IYra, дайте пожалуйста ссылку

Добавлено спустя 6 минут 29 секунд:
Извиняюсь, принял выражение "ветка" за отдельную тему, нашел на предыдущей странице :)

Добавлено спустя 6 часов 42 минуты 28 секунд:
IYra, если Вас не затруднит, сделайте hex под порт PD2, в CVAVR первый раз залез, а оное чудо после кнопки компиляции еще и ругается забугорным языком да красным цветом
Cannibal Corpse
Пробегал мимо
 
Сообщения: 7
Зарегистрирован: 17 мар 2011 12:42

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

Сообщение IYra » 16 май 2013 18:12

Cannibal Corpse писал(а):IYra, если Вас не затруднит, сделайте hex под порт PD2, в CVAVR первый раз залез, а оное чудо после кнопки компиляции еще и ругается забугорным языком да красным цветом

Предыдущий товарищ Alexei убрал кнопки и жестко прописал температуру срабатывания и дельту.
(97 и 5 вроде) Габариты подключал к PA1. Так не подходит ?
PS
В таком варианте можно использовать два порога включения для 2-х скоростного вентилятора
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

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

Сообщение georg77 » 16 май 2013 19:07

Выкладываю желающим прошивку под ОА термостата с функцией нагрев/охлажд с алармом
Сделано на основе исходника от уважаемого Grey4ip и доведена до конца его идея Аларма
1 на 6-ом пине - нагрев
1 на 7-ом пине - охлаждение
Аларм сработает при отклонении температуры от выставленной на заданную величину
вход в регулировку аларма как и в другие регулировки - нажатием 2-х кнопок одновременно
если выставить А=0 - аларм (индикатор срабатывания - точка в самом правом разряде индикатора) – выключен
аларм можно использовать как второй порог для усиления нагрева или охлаждения (по вкусу)
прошивка не даст выставить аларм меньше Дельты (правда можно обмануть при желании - на устраниение этой "фичи" мне не хватило ёмкости флеша)
не хватило ног для вывода Аларма - я вытащил чёткий однозначный сигнал с помощью небольшой схемки на 2- транзисторах разной проводимости используя сигналы с 8 и 14 пина
функция коррекции датчика сохранена полностью
по умолчанию Туст=20 град, Дельта=0.5 град, Аларм=5.0 град, Корр=0.
Вложения
ts01CoolHeatAlarm_OA.zip
(2.61 КБ) Скачиваний: 282
georg77
Частенько бываю
 
Сообщения: 84
Зарегистрирован: 26 ноя 2011 06:38

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

Сообщение Cannibal Corpse » 16 май 2013 20:31

IYra писал(а):Предыдущий товарищ Alexei убрал кнопки и жестко прописал температуру срабатывания и дельту.
(97 и 5 вроде) Габариты подключал к PA1. Так не подходит ?
PS
В таком варианте можно использовать два порога включения для 2-х скоростного вентилятора

Почти то, что мне нужно, но архива с файлом в ветке я не нашел
Cannibal Corpse
Пробегал мимо
 
Сообщения: 7
Зарегистрирован: 17 мар 2011 12:42

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

Сообщение IYra » 16 май 2013 20:41

Cannibal Corpse писал(а):Почти то, что мне нужно, но архива с файлом в ветке я не нашел

А он свой окончательный вариант чего-то не выложил.
Я смотрел его предварительный вариант. Кое-что там подправил. Могу его выложить.
Какие диапазоны поставить ?
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

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

Сообщение Cannibal Corpse » 16 май 2013 21:12

IYra, , если можно 2 диапазона, то 80 и 95, гистерезис 5
Cannibal Corpse
Пробегал мимо
 
Сообщения: 7
Зарегистрирован: 17 мар 2011 12:42

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

Сообщение IYra » 17 май 2013 18:37

Cannibal Corpse писал(а):IYra, , если можно 2 диапазона, то 80 и 95, гистерезис 5

Вот собрал. Проверил в Протеусе.
1. Если на PORTA.1 - 0 тогда добавляется задержка и яркость меньше.Как в тахометре.
2. Первая скорость PORTD.2 - 1 когда > 85 гр, 0 < 80 гр
3. Вторая скорость PORTD.3 - 1 когда > 100 гр, 0 < 95 гр
Вложения
termostat_led_car_2speed.rar
(18.01 КБ) Скачиваний: 183
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

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

Сообщение Recov » 18 май 2013 04:03

georg77 писал(а):не хватило ног для вывода Аларма - я вытащил чёткий однозначный сигнал с помощью небольшой схемки на 2- транзисторах разной проводимости используя сигналы с 8 и 14 пина

Подскажи, как аларм подключать, 8 и 14 идут на индикатор?
Recov
Живу тут
 
Сообщения: 160
Зарегистрирован: 26 дек 2011 16:23
Откуда: г. Находка

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

Сообщение georg77 » 18 май 2013 06:31

выкладываю схемку вывода аларма
Вложения
AlarmTS01.GIF
AlarmTS01.GIF (6.3 КБ) Просмотров: 3517
georg77
Частенько бываю
 
Сообщения: 84
Зарегистрирован: 26 ноя 2011 06:38

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

Сообщение Recov » 18 май 2013 12:58

Нагрузка пьезо излучатель или динамик?
Recov
Живу тут
 
Сообщения: 160
Зарегистрирован: 26 дек 2011 16:23
Откуда: г. Находка

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

Сообщение georg77 » 18 май 2013 13:18

конечно пьезо, причём со встроенным генератором(продаются такие, где-то 10 руб), так как на выходе аларма ПОСТОЯННОЕ напряжение.
georg77
Частенько бываю
 
Сообщения: 84
Зарегистрирован: 26 ноя 2011 06:38

Пред.След.

Вернуться в ATtiny



Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 7