قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,479
نشاط [ lovevb6 ]
قوة السمعة:127
قديم 31-10-2011, 01:04 PM المشاركة 1   
افتراضي عدم استقرار LM35 Twitter FaceBook Google+



السلام عليكم
ياشباب ايش هي مشكله عدم استقرار حساس الحراره LM35 فهو يعطي قراءات عشوائيه من صفر الى 17 وبسرعه ولما قررت اعمله تغذيه مستقله لا يريد ان يعمل وهذا هو الامر الغريب واذا لمست الارضي للمصدر المستقل على الارضي للداره يشتغل بس بيخريط
لماذا لا يعمل الحساس فى حاله توصيله بمصدر جهد مستقل عن الدائره مع اني قست الخرج فوجدته انه يقرا ولكن المايكرو لا يعرض النتائج
والمحاوله الاخري هي اني لما اوصل(LM35) مع الدائره قبل المتكامله 7805 (الفولت الداخل ) يبقي يقرا عشوائي ولما اوصله مع الجهد الخارج المنظم يبقى يقرا بس فى رقمين مره يقرا 17 ويثبت شويه ومره يقرا 16 ولا يتاثر بالحراره ابداا مع اني مركب 100N مكثف مئه نانو بين طرفي الخرج والارضي تاره ومره بين الارضي والموجب تاره ولكن لا فائده
كما ان مصدر الجهد عندي منعم بالمكثفات (50فولت 10 UF)

هل من حل ياشباب .....وبارك الله فيكم

وهذا هو كود الميكرو سي مأخوذ من (موضوع لمشروع الاول التحكم بدرجة الحرارة باستخدام pic16f877A ولغة البرمجة مايكرو سي الإلكترونية)

كود:
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;
}
ولماذا هذا الكود اشتغل بدون مشاكل واعطي نتيجه ممتازه
كود:
int t1,temp;

char *text[6];

void main()

{

adcon1=2;

lcd_init(&portb);
lcd_out(1,1,"Welcome");
lcd_cmd(lcd_cursor_off);

delay_ms(1000);
lcd_out(1,1,"From Qariya.com");
lcd_cmd(lcd_cursor_off);

delay_ms(1000);

lcd_out(1,1,"Temperature is :");

lcd_out(2,8,"'C");

while(1)

{

t1=adc_read(0);

temp=0.245*t1*2;        // For Lm35 Sensor 10mv/’c

inttostr(temp,text);

lcd_cmd(lcd_cursor_off);

lcd_out(2,1,text);

delay_ms(100);

}

}
مع تغيير مدخل الانالوج طبعاا الى RA0


التعديل الأخير تم بواسطة : lovevb6 بتاريخ 31-10-2011 الساعة 04:20 PM
اعلانات

الصورة الرمزية Abdulla873
Abdulla873
:: مهندس متميز ::
تاريخ التسجيل: Sep 2009
الدولة: Baghdad, Iraq
المشاركات: 504
نشاط [ Abdulla873 ]
قوة السمعة:0
قديم 31-10-2011, 05:59 PM المشاركة 2   
افتراضي


اخي هنا سوف تجد المشروع كاملا , يمكن ان تجد الخطا الذي وقعت به من
خلاله:
http://www.pic-tronics.com/Temperatu...-using-PIC.php

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية lovevb6
lovevb6
:: عضو فضي ::
تاريخ التسجيل: May 2010
الدولة: LIBYA-BENGHAZY
المشاركات: 1,479
نشاط [ lovevb6 ]
قوة السمعة:127
قديم 31-10-2011, 07:50 PM المشاركة 3   
افتراضي


اخي هنا سوف تجد المشروع كاملا , يمكن ان تجد الخطا الذي وقعت به من
خلاله:
http://www.pic-tronics.com/Temperatu...-using-PIC.php
بارك الله فيك يااخي

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 10:30 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025