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

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

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 12-05-2016, 08:04 PM المشاركة 1   
x4 قياس درجة الحرارة باستخدام الثرموكابل + AVR Twitter FaceBook Google+



بسم الله الرحمن الرحيم

السلام عليكم و رحمة الله و بركاته
و الصلاة و السلام على رسول الله و على آله و صحبه .

اخوتى الاعزاء بفضل الله اقدم اليك مشروع كنت صممته
على البروتيوس نجح و لله الحمد و لكنى لم اجربه عمليا .

استخدم فيه :
--
avr atmega 8 /16
-- ic : max6675 وهى المسئولة عن قراءة الفولت الخارج من الثرمو ثم و حساب درجة الحرارة ثم اخراج قيمة القياس على شكل serial pulses
هذا ما اذكره يمكنكم القراءة عنه فى النت .
-- المترجم : ميكروسي

الدائرة :



البرنامج :

كود:

/*
 * license : free for all
 * date    : 2016
 * version : 1.0
 * team    : Qaria.Brothers
*/

#include <built_in.h>
#define chipSelect PORTB4_BIT 
// LCD module connections
sbit LCD_RS at PORTD2_bit;
sbit LCD_EN at PORTD3_bit;
sbit LCD_D4 at PORTD4_bit;
sbit LCD_D5 at PORTD5_bit;
sbit LCD_D6 at PORTD6_bit;
sbit LCD_D7 at PORTD7_bit;

sbit LCD_RS_Direction at DDD2_bit;
sbit LCD_EN_Direction at DDD3_bit;
sbit LCD_D4_Direction at DDD4_bit;
sbit LCD_D5_Direction at DDD5_bit;
sbit LCD_D6_Direction at DDD6_bit;
sbit LCD_D7_Direction at DDD7_bit;
// End LCD module connections

 char temp ;
 unsigned int thermo ; float th1;
 
void main() {
DDRB=0XFF;
ADC_INIT();
Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);

 while(1){
    SPI1_Init();
    chipSelect=0;    // ENABLE (inverted)
    delay_ms(250);

    thermo=SPI1_Read(temp);     // read first hi byte
    thermo<<=8;       // SHIFT FIRST BYTE TO HI OF INTEGER
    thermo|=SPI1_Read(temp);               // raed second lo byte
    thermo&=0x7ff8 ;   // make neglicted bit=0
    thermo>>=2;    // must be thermo>>=3 ;       // shooting out neglicted bits
    th1= thermo*0.25 ;   // value of result in float form :-
    thermo=thermo*0.25;    // value in integer form divide result /4 datasheet==> resolution = 12bit => 4096 but it reads max 1024 so must divide by 4
    chipSelect=1;    // DISABLE

    Lcd_Out(1,1,"thrmcpl.temp=");
    Lcd_chr(2,9,(thermo/1000)+48);
    Lcd_chr(2,10,((thermo%1000)/100)+48);
    Lcd_chr(2,11,(((thermo%1000)%100)/10)+48);
    Lcd_chr(2,12,(((thermo%1000)%100)%10)+48);

    thermo=th1*100-thermo*100 ;
    Lcd_chr(2,13,',');
    Lcd_chr(2,14,(thermo/10)+48);
    Lcd_chr(2,15,(thermo%10)+48);
 }
}





الحمد الذى بنعمته تتم الصالحات

الله مولانا ولا مولى لهم
انى عذت بربى و ربكم ان ترجمون
الله ينصرك سوريا و . و . - كلنا حلب و غزة

احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً عريبى محمود ( شكر العضو على هذه المشاركة )
اعلانات

concord438
:: مهندس ::
تاريخ التسجيل: Sep 2007
المشاركات: 13
نشاط [ concord438 ]
قوة السمعة:0
قديم 13-05-2016, 03:33 PM المشاركة 2   
افتراضي


جزاك الله خيرا يا اخي

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

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

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

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


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

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