Простой термостат для дома

Привет, вот при написании статьи о термометре я подумал, что термометр это дело нужное а вот хорошо было бы для дома спаять термостат, который бы следил за температурой в квартире, и сигнализировал слишком низкую, или чересчур большую температуру, а лучше бы еще включал обогреватель или вентилятор, когда это надо.

Итак, приступим, сначала создадим новый проект с помощью мастера (Wizard).
Выбираем микроконтроллер ATmega 8 потом в закладке 1-Wire выбираем порт В dsts bit = 0.
File -> generate,save and exit.
стираем код что нам сгенерировал визард и вставляем вот этот код:
#include <mega8.h>
#include <delay.h>
#asm
.equ __w1_port=0x18 ;PORTB
.equ __w1_bit=0
#endasm
#include <1wire.h>
#include <ds18b20.h>
void main(void)
{
unsigned char devices;
int temp;
devices = w1_init();
PORTD = 0x00; //Выставляем все выходы порта D на 0, то есть, выключаем весь порт D
DDRD = 0xFF;
while (1)
{
temp=ds18b20_temperature(0);  //читаем температуру
if (temp>1000)                      //если датчик выдаёт больше 1000
{
temp=4096-temp;            //отнимаем от данных 4096
temp=-temp;                //и ставим знак "минус"
}
if (temp<18)                          // устанавливаем нижней порог
PORTD.0 = 1;
else PORTD.0=0;
if (temp>28)                         // установим верхний порог
PORTD.1=1;
else PORTD.1=0;
}
}


Алгоритм следующий: если температура упадет ниже +18 градусов, на ножке порта D.0 появиться логическая единица, и если температура поднимется выше +28, тогда на порту D.1 будет +5 вольт (лог.1), светодиоды не будут гореть, если температура от 18 до 28 градусов.

Схема:



Статья дополнена и переделана, теперь работает с минусовой температурой.

Источник:
http://my-avr.at.ua

0 комментариев

Ваше имя: *
Ваш e-mail: *
Войти через
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Введите два слова, показанных на изображении:
© 2016 Все права соблюдены.