Вопрос про термостат для котла.

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить
rjn
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 28, 2010 02:46:37

Вопрос про термостат для котла.

Сообщение rjn »

Здравствуйте дамы и господа, понадобился мне термостат для нового котла BAXI в квартире, уж больно много жрет газа, сказано сделано, но вот беда так как я не силен в программировании, ну уж очень хотелось написать программу самому так сказать для общего развития. Взял завалявшийся МК atmega 8515 и датчик DS18B20 плюс LCD 16x4 наваял программу часть из библиотеки, часть с интернета, часть своими силами и вот получилось вроде все работает но как то не так и чего то не хватает, а не хватает десятых или даже сотых от датчика, как сделать не знаю. Так решил выложить на форум может кто поправит исходник. Короче вот простой термостат который у меня работает уже месяц.
Вложения
termostat.GIF
(87.04 КБ) 476 скачиваний
atmega8515.rar
(94.29 КБ) 185 скачиваний
Реклама
phenomen
Потрогал лапой паяльник
Сообщения: 310
Зарегистрирован: Пт дек 17, 2010 14:41:25

Re: помогите с программой для термостата на atmega и ds18b20

Сообщение phenomen »

Эта тема вам должна помочь.
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: помогите с программой для термостата на atmega и ds18b20

Сообщение ploop »

Сотых вы тут не получите, у него точность ±0.5°
Хотя сам датчик может дать до сотых с шагом 0,0625, т.е. по 0,06 прыгать будет. Но смысла никакого нет. Поэтому округляют до десятых.

А вообще, научитесь пользоваться поиском
rjn
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 28, 2010 02:46:37

Вопрос про термостат

Сообщение rjn »

а по моему это не помощь, а отписка.

то что у датчика точность ±0.5° это еще до создания проекта читается., и то что сам датчик может дать до сотых с шагом 0,0625 это тоже везде написано

а смысл есть еще какой, вы же уважаемый проект мой даже и не посмотрели?
смысл такой что при срабатывании верхний - нижний порог допустим 21°-23° все нормально но когда разрыв в один градус 21°-22° то реле на включение котла постоянно щелкает. Вот в чем вопрос который я так и не успел задать в моей предыдущей теме (помогите с программой для термостата на atmega и ds18b20) которую закрыли так и не дав даже мяукнуть.
да и поиском я умею пользоваться.
Реклама
Эиком - электронные компоненты и радиодетали
rjn
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 28, 2010 02:46:37

Re: все тот же вопрос про термостат

Сообщение rjn »

ну и так вообще просил посмотреть саму программу. может мне лучше и не стоит писать свое, а так всю жизнь и пользоваться чужим. Я же за советом, а то действительно как не сюда попал » Обучалка » Практика
Реклама
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Вопрос про термостат

Сообщение ploop »

Вы спрашивали про работу с датчиком, а тут примеров кода на всех языках немеряно.

Ладно. Давайте конструктивно.
смысл такой что при срабатывании верхний - нижний порог допустим 21°-23° все нормально но когда разрыв в один градус 21°-22° то реле на включение котла постоянно щелкает.
Так и будет. Десятые градуса в большей степени показывают шумы АЦП, сотые - чистые шумы, и прыгать будут постоянно. Можно их конечно сгладить усреднением (среднее арифметическое - считываете, допустим, 16 показаний, потом делите на 16), но это ничего особенного не даст.

Если надо точно поддерживать какой-то параметр инертной системы (температуру воды, как у вас), простое релейное (или пропорциональное) регулирование тут не поможет. Будьте готовы к "волнам" в 5-10°, если не больше. Надо городить ПИД-регулирование.
Как оно реализуется программно не знаю, не делал, но слова для поиска дал.
Реклама
rjn
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 28, 2010 02:46:37

Re: Вопрос про термостат

Сообщение rjn »

ПИД регулятор это сильный наворот для моего девайса. Тут еще такая мысль была поставить задержку выключения на выход который идет на реле при достижении верхнего порога, чтобы избавится от постоянного перещелкивания реле. вот только где ее в программе поставить так чтобы считывание температуры с датчика не тормозить. Заранее спасибо.
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Вопрос про термостат

Сообщение ploop »

Я посмотрел ваш архив, но похоже это не то, что было на скриншоте. Точнее там был виден русский текст, а нигде в программе он не выводится.
Это тот архив?
И перезалейте его сюда, чтоб ту тему не дёргать.
Я в Си не силён, но думаю, общими усилиями что-нибудь родим.
rjn
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 28, 2010 02:46:37

Re: Вопрос про термостат

Сообщение rjn »

вот пожалуйста, просто в протеусе я использую библиотеку русский для LCD, а в контроллер заливал с использованием директивы pragma rl+. Я программу сейчас подредактировал надписи все английскими буквами не красиво, но теперь должно в любом протеусе отображать

могу добавить файлик из библиотеки для протеуса версии 7.7 русский на LCD после замены стандартного будет как на скришоте
Вложения
atmega8515 termostat.rar
(194.19 КБ) 159 скачиваний
phenomen
Потрогал лапой паяльник
Сообщения: 310
Зарегистрирован: Пт дек 17, 2010 14:41:25

Re: Вопрос про термостат

Сообщение phenomen »

Вам не нужно копипастить код с других ресурсов.
Вот мой старый но простой код для CV:

Код: Выделить всё

#include <mega8.h>
#include <delay.h>
#include <stdio.h>

#asm
   .equ __w1_port=0x12 ;PORTD
   .equ __w1_bit=0
#endasm
#include <1wire.h>

// DS1820 Temperature Sensor functions
#include <ds1820.h>

#include "n3310lcd.c"
// Declare your global variables here

void main(void)
{
int temp;
char i;

//some code (инициализация контроллера).........

LcdInit();
w1_init();

while (1)
      {  
      temp=ds1820_temperature_10(0);
      LcdClear();            
      sprintf (lcd_buf, "%d.%02d C",temp/100,temp%100);
      LcdStringBig(1,2);
      LcdUpdate();
      delay_ms(300);
      }
}
Умножение температуры было на 100, почему так не понимаю :? . Но все работало отлично

Тоесть теперь вам нужно сравнивать температуру вместо 21-22°C с 210-220 (а то и ваще с 2100-2200).
Плюс к всему можно добавить т.н. "мертвую зону" (en "deadband") в 1°C и тогда щелканье точно пропадет :)
rjn
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 28, 2010 02:46:37

Re: Вопрос про термостат

Сообщение rjn »

phenomen отличный код, большое спасибо, а на счет мертвой зоны не совсем понятно можно по конкретней на картошках так сказать
phenomen
Потрогал лапой паяльник
Сообщения: 310
Зарегистрирован: Пт дек 17, 2010 14:41:25

Re: Вопрос про термостат

Сообщение phenomen »

Код: Выделить всё

#define DEADBAND 1
//.........
if(Value+DEADBAND<LowLimit)
    doSomething()
else
    if(Value-DEADBAND>HighLimit)
          doSomethingElse()
//.........
Пример
../-----+++++-----\............
Где "." - нужно срочно чтото делать
"/,\" - действуем :))
"-" - а давай-ка подожду, узнаю как дальше будет себя вести
"+" - собственно все ок, можно и поспать :)
Можно использовать и float.
phenomen
Потрогал лапой паяльник
Сообщения: 310
Зарегистрирован: Пт дек 17, 2010 14:41:25

Re: Вопрос про термостат

Сообщение phenomen »

кстати, автору скопипасченого кода нужно почитать про С, очень уж интересное место:

Код: Выделить всё

sprintf(lcd_buffer,"t=%i.%u\xdfC",temp,temp%1);
а именно temp%1, не говоря уже о другом
rjn
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 28, 2010 02:46:37

Re: Вопрос про термостат

Сообщение rjn »

спасибо за подсказку намотал на ус. При помощи проб и ошибок. а код копировал от друзей сайта my-avr.at.ua так по моему хотя, может и со стандартной библиотеки так написано осталось надо глянуть
rjn
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 28, 2010 02:46:37

Re: Вопрос про термостат

Сообщение rjn »

да точно это из стандартных exemple CV там код так сделан был
rjn
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 28, 2010 02:46:37

Re: Вопрос про термостат

Сообщение rjn »

все отлично получилось, спасибо большое phenomen.
Вложения
ter.GIF
(93.78 КБ) 455 скачиваний
Ответить

Вернуться в «Практика»