بسم الله الرحمن الرحيم
السلام عليكم
كيف حالكم يا شباب
اتمنى ان تكون في افضل الاحوال
ارد ان اقوم بعمل مشروع لقياس درجة الحرارة ب 16f877 + lm335z
حيث ادا كانت درحة الحرارة اقل من 40 تشعل led صفراء و ادا كانت فوق 40
تنطفا الصفراء و تشعل led حمراء و يشعل ايضا محرك لتبريد
وتوصلة الى النتائج التالية
كود:
// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
unsigned char text0[4] ;
char temp0;
void main ()
{
trisb.f1=0;
trisb.f0=0;
trisc.f2=1;
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
PWM1_Init(500);
ADC_Init();
aa:
temp0 = Adc_Read(0);
temp0 =temp0/1.82;
if (temp0>40)
{PWM1_Start();portb.f1=1;portb.f0=0;
PWM1_Set_Duty(180);
}
else {pwm1_stop();portb.f1=0;portb.f0=1;}
ByteToStr(temp0, text0);
Lcd_Out(1,1,text0);
delay_ms (10);
goto aa;
}
بالنسبة للمحاكات
من اراد ان يحمل المشروع كامل
http://www.mediafire.com/?b0k4kqfey3s9q2d
ملاحطة في ما يخص LCD فانا كنت قد وضعتها فقط لقراءة قيمة درجة الحرارة اما في المشروع فلن استعملها (لاني لا املكها
http://www.qariya.com/vb/images/smilies/hah.gif )
المشكلة
الاول هو اني لا اعرف كيف استعمل lm335 كيف احول من حرارة الى جهد
لقد راية من يضع temp0 =temp0/2.05 لكن هدا بالنسبة ل lm35
و المشكل الثاني هو اني عندما طبقة المشروع في الواقع حدث معي عكس ما كنت اريده اي عندما تكون درجة الحرارة اقل من 40 يشتغل المحرك و led الحمراء
و عندما تكون الحرارة اكتر من 40 يتطفأ المحرك و تشتعل led الصفراء
ارجو المساعدة في حل هذا المشكل
و جزاكم الله خيراا