السلام عليكم
ياشباب ايش هي مشكله عدم استقرار حساس الحراره LM35 فهو يعطي قراءات عشوائيه من صفر الى 17 وبسرعه ولما قررت اعمله تغذيه مستقله لا يريد ان يعمل وهذا هو الامر الغريب واذا لمست الارضي للمصدر المستقل على الارضي للداره يشتغل بس بيخريط
لماذا لا يعمل الحساس فى حاله توصيله بمصدر جهد مستقل عن الدائره مع اني قست الخرج فوجدته انه يقرا ولكن المايكرو لا يعرض النتائج
والمحاوله الاخري هي اني لما اوصل(LM35) مع الدائره قبل المتكامله 7805 (الفولت الداخل ) يبقي يقرا عشوائي ولما اوصله مع الجهد الخارج المنظم يبقى يقرا بس فى رقمين مره يقرا 17 ويثبت شويه ومره يقرا 16 ولا يتاثر بالحراره ابداا مع اني مركب 100N مكثف مئه نانو بين طرفي الخرج والارضي تاره ومره بين الارضي والموجب تاره ولكن لا فائده
كما ان مصدر الجهد عندي منعم بالمكثفات (50فولت 10 UF)
هل من حل ياشباب .....وبارك الله فيكم
وهذا هو كود الميكرو سي >>والمشكله الاخري هي عند حرق الملف على البك يجب تكرار الحرق عدة مرات حتى يكتمل الحرق بون اخطاء حتي اذا كان الكود رساله ترحيب تعرض على الشاشه فيجب ان اكرر عمليه الحرق اكثر من مره
ولكن هناك ملاحضه وهي عند لمس البيك يتغير رقم الحراره المرغوبه (10) ويبداء فى العد التنازلي ...وللعلم انا قمت بتوصيل فقط البيك مع الحساس مع الشاشه والكرستاله طبعا ومكثفاتها بمعني لم اوصل الريلايهات ولا الدمروحه ولا السخانه ولا البوشبوتون للزياده والنقصان ولا دايودات الاضائه ولسبب كنت اريد ان اطمئن على الحساس واستقراره (فاعتقد انه لا علاقه لهذه التوصيلات بالمشكله )
كود:
int temp_res;
char temp[12];
unsigned int rtemp=10;
char ntemp[10];
void adc()
{
temp_res = ADC_Read(2); // Get 10-bit results of AD conversion
temp_res = (temp_res *5)/10;
IntToStr(temp_res,temp);
}
void print()
{
LCD_INIT(&PORTB);
lcd_out(1,1,"temp Act") ;
lcd_out(2,1,"temp Ref") ;
lcd_cmd(LCD_CURSOR_OFF);
}
void test()
{if(temp_res>rtemp)
{PORTC=0b00000101; //cool
}
if(temp_res<rtemp)
{
PORTC=0b00001010;//hot
}
if(temp_res==rtemp)
{
PORTC=0x00;
}
}
void main()
{
TRISA =0b10;
TRISD =0x11;
TRISC =0x00;
TRISB=0X00;
lcd_init(&portb);
lcd_out(1,1,"Basem Majed") ;
lcd_out(2,3,"temp. Control ") ;
lcd_cmd(LCD_CURSOR_OFF);
delay_ms(2000);
print();
do
{
IntToStr(rtemp,ntemp);
lcd_out(2,10,ntemp);
delay_ms(200);
lcd_out(1,10,temp) ;
delay_ms(200);
test();
if(portd.f1==0 && rtemp>0)
{
rtemp--;
delay_ms(200);
}
if(portd.f0==0&&rtemp<=100)
{
rtemp++;
delay_ms(200);
}
adc();
}
while(1);
return;
}
ياشباب هل من رحيم لوالديه ان يتبع معي المشكله لانني اريد ان اطور هذا المشروع لكي يعرض على الكومبيوتر بواسطه الاب فيو مره والفجوال بيسك مره ووعد مني اني سوف اشرح هذه التكمله فى موضوع مستقل وهذا واجب عليا فى هذا المنتدي