ВНИМАНИЕ! На форуме завершено голосование в конкурсе - астрофотография месяца - АВГУСТ!
0 Пользователей и 1 Гость просматривают эту тему.
Воспользуйся поиском, где то пробегала тема "Охлаждаемый бокс...", там в конце темы приводилась схема несложного контроллера для стабилизации температуры.
Во тут https://astronomy.ru/forum/index.php/topic,44880.120.html
Я бы под MOSFET переделал, достаточно вместо VT1 поставил подходящий по напряжению и току мосфет, реле с защитным диодом выкинул бы нафиг, а вместо него поставил пельтье.
Хотя, лучше конечно на микроконтроллере сделать, с цифровой установкой/индикацией температуры и тп, но это надо уметь.P/S У автора темы такой девайс работал, с настройкой схемы наверное есть небольшой гемор, но это один раз делается.
Если немного подумать, то можно и с поддержанием температуры.
ЦитатаХотя, лучше конечно на микроконтроллере сделать, с цифровой установкой/индикацией температуры и тп, но это надо уметь.А как? Есть схемка?
Хотя, лучше конечно на микроконтроллере сделать, с цифровой установкой/индикацией температуры и тп, но это надо уметь.
//---------------------------------------------------int drehung,DA1;//####################################################function initPCFLCD(){//LCD 4x20 PCF8574P Adr.78 pcflcd.setpcf(7); pcflcd.init(); pcflcd.clear();}//----------------------OK//####################################################function plmInit(){//plm(1) als DA1 OUT plm.settimebase (1,0); plm.setmode(1,0); plm.setperiod(1,500);}//----------------------OK//####################################################function Print_LCD(int x,string s){ pcflcd.line(x); pcflcd.print(s);}//----------------OK//####################################################function STOP(){station_io.RELoff(1);// Peltier-element ausplm.out(1,0);}//----------------OK//####################################################function LOGO(){ Print_LCD(1,"TIME m "); Print_LCD(2,"TEMPERATURE: C'"); Print_LCD(3,"SOLL : C'"); Print_LCD(4,"PELTIERSTROM: A ");}//----------------OK//####################################################function Fehler(){STOP();loop{ plm.beep ( 1);sleep 100;plm.beep ( 20);sleep 100;plm.beep (-1); Print_LCD(1,"VENTILATOR AUSSER "); Print_LCD(2,"BETRIEB ! "); Print_LCD(3,"PELTIERSPANNUNG "); Print_LCD(4,"WIRD ABGESCHALTET ! "); if ports.getfreq(1) > 100 { LOGO(); station_io.RELon(1);// Peltier-element ein break;} }}//----------------OK//####################################################function Fehler2(){STOP();loop{ plm.beep ( 1);sleep 50;plm.beep ( 20);sleep 50;plm.beep (-1); Print_LCD(1,"PELTIERELEMENT "); Print_LCD(2,"KURZSCHLUSS !!! "); Print_LCD(3,"SOFORT ABSCHALTEN ! "); Print_LCD(4,"!!!!!!!!!!!!!!!!!!!!");}}//----------------OK//####################################################function Print_lcd_wert(int stroka,int pos,int wert){pcflcd.goto(stroka,pos);pcflcd.zahl4n1(wert);}//----------------OK//####################################################function Print_Lcd_wert(int stroka,int pos,int wert){pcflcd.goto(stroka,pos);pcflcd.zahl4p(wert);sleep 100;}//----------------OK//####################################################function Timer(){ pcflcd.goto(1,5);pcflcd.time(3);}//----------------OK//###################################################function Strom_()returns float{ float strom; Timer(); strom=ports.adc(2)*0.04; Print_Lcd_wert(1,13,ports.getfreq(1)*9);//DREHUNG Print_lcd_wert(4,12,strom);//STROM return strom;}//----------------OK//####################################################function Ist_temp()returns float{float temp; temp=30-(ports.adc(0)-825); Print_lcd_wert(2,12,temp);//TEMPERATURE IST. return temp;}//----------------OK//####################################################function Soll_temp()returns float{float wert; wert=(5-0.5*ports.adc(1))/1.7; Print_lcd_wert(3,12,wert);//TEMPERATURE SOLL. return wert;}//----------------OK//####################################################function PeltierAus(){station_io.RELoff(1);// Peltier-element ausloop{ Strom_();sleep 500;if Soll_temp()<0 {station_io.RELon(1);// Peltier-element ein break;} if ports.getfreq(1)< 100 {STOP();Fehler();} }}//----------------OK//####################################################function tempCCD(){float n;station_io.RELon(1);// Peltier-element einloop{ Strom_();sleep 500; DA1=(1-1.15*Soll_temp())+130.0; plm.out(1,DA1);//регулировка тока элемента-Пельтье if ports.getfreq(1)< 100 Fehler(); if Strom_()>35.0 Fehler2(); if Ist_temp() <= -10.0 break; if Strom_()< 20 {STOP();break;} }loop{ Strom_();sleep 100; if Soll_temp() <= Ist_temp() n=1.8; else n=2.0; DA1=(1.0-1.15*Soll_temp())+ 200.0+n*Ist_temp();//пониженное значение тока.//Print_lcd_wert(1,12,DA1);//Steuersignal plm.out(1,DA1);//регулировка тока элемента-Пельтье if ports.getfreq(1)< 100 Fehler(); if Strom_()>35.0 Fehler2(); if Strom_()< 20 {STOP();break;} }return;}//----------------OK//####################################################function start(){ station_io.RELon(2);//Ventilator einloop { Strom_(); Ist_temp(); sleep 1000; if ports.getfreq(1) > 100 and Soll_temp() < 0 tempCCD(); }}//----------------OK//####################################################//..CCD TEMPERATURMESSUNG..thread main{ initPCFLCD(); plmInit(); station_lcd.init ();sleep 200; station_io.Clear();sleep 200; LOGO();sleep 100; start();}//........................