PIC Minimum Temp Thermostat baziran na predefinisanoj krivi

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
tpetar
Posts: 5
Joined: 10-06-2008, 16:40

PIC Minimum Temp Thermostat baziran na predefinisanoj krivi

Post by tpetar »

Treba mi pomoć za jedan projekat. Treba da napravim uz pomoć mikrokontrolera jedan projekat. Radi se o kontroli el. grejača u velikom bojleru za vodu, na osnovu izmerene temp vode i predefinisane krive sa podacima o temp. vode u određeno vreme u toku dana. Bojler je vezan sa sol. kolektorima. E sad kriva je utvrđena za ceo dan, a podaci o krivi zabeleženi u mem. delu mikkontr. Kako radi u toku dana PIC vrši očitavanje temp. vode na svakih npr 10min i dobijenu vrednost uporedi sa memorisanim podatkom krive iz memorije pic-a, npr izmereno je u 14.30h 28C a to je manje od 30C (mem. podatak u picu za 14.30h je 30C) pošto je to manje onda pic uključuje rele za grejač. u suprotom recimo u 15.00h izmereno 32C, a to je vise od memorisanog podatka u picu koji za 15.00h iznosi 31C, i zbog toga nepali rele odnosno grejač. Znači veće izmerene vrednosti temp. nepale grejač (rele) a manje uključuju. A u picu bi trebalo pohraniti podatke o krivi npr. 08.00 25C, 08.15h 25.5C, 08.30h 26C, 08.45h 26C, 09.00h 26.5C, ...
Znači PIC bi trebalo da ima realtime clock, predefinisane parametre za određeno vreme u toku 24h, npr. na svakih 15min ili 10min, i vrednosti temperature u tom vremenu. Treba da izmeri temp. i uporedi sa podatkom za to vreme iz pic memorije i da na osnovu toga upali rele i ne. Ako je izmerena veća vrednost onda je off, a ako je izmerena vrednost manja onda on, do sledećeg očitavanja i poređenja. :roll: [/b]
abc
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 498
Joined: 08-03-2007, 20:19
Location: Hrvatska

Post by abc »

Koji PIC i koji programski jezik je u pitanju? Koji rtc , da li si napravio shemu kako bi to trebalo izgledati, u kojoj fazi je projekt?
tpetar
Posts: 5
Joined: 10-06-2008, 16:40

Post by tpetar »

U pocetnoj je fazi, za sada nista jos nije definisano.
abc
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 498
Joined: 08-03-2007, 20:19
Location: Hrvatska

Post by abc »

Znaci kad uzmes 24 sata i opet svakih 15 minuta tebi treba 96 vrijednosti jos kada se uzme da idu temperature vece od 25,5 znaci treba ti dva bajta za pohranu vrijednosti dobijas vrijednost od 192 bajta veliki prostor za podatke.

Recimo u c-u sve to slozis u matricu u programskoj memoriji recimo

static int zadane_temperature[24][4]={250,255,265,278,
282,283,292,294,
300,301,305,307, (... i ovako popunis svih 96 temperature)
};


Znaci kad ocitas RTC i recimo dobijes 0h30min ocitavas matricu
temperatura_iz_tabele=zadane_temperature[0][2];

zato sto je nula sati i 30min sto znaci da je druga vrijednost u tabeli znaci [0][2]

i dobices drugu vrijednost koja je 255 koju usporedis sa ocitanom temperaturom iz ADC-a koju prethodno pomnozis sa 10 i onda oduzmes jednu vrijednost od druge i ako je rezultat pozitivan ukljucis rele i provjeravas dok je rezultat veci od 0 kada je nula ili negativan gasis rele i tako odrzavas temperaturu do slijedece vrijednosti.

rezultat=
temperatura_iz_tabele - Ocitana_vrijednost_temperature;

if(rezultat>0)
{Rele=1;
}
else
Rele=0;
Post Reply