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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 30-08-2012, 02:56 PM المشاركة 1   
افتراضي استخدام مستشعر درجة الحرارة TC74 (Microchip) لقياس درجة الحرارة : Twitter FaceBook Google+



استخدام مستشعر درجة الحرارة TC74 (Microchip) لقياس درجة الحرارة :
الرقاقة TC74 هى مستشعر رقمى لدرجة الحرارة من شركة ميكروشيب تقوم باكتساب وتحويل معلومات درجة الحرارة عن طريق المستشعر الموجود داخلها بدقة 1°C و تعمل بنظام الاتصال التسلسلى . تتاح درجة الحرارة ككلمة رقمية ذات 8 بت 8-bit مخزنة فى سجل درجة الحرارة الموجود بداخلها , , والذى يمكن الوصول إليه من خلال ناقل الاتصال التسلسلى ذات السلكين 2IC .هذا التمرين يصف طريقة استخدام المستشعر TC74 مع الميكروكونترولر PIC لقياس درجة الحرارة المحيطة .





مبدأ العمل :
مستشعر درجة الحرارة الرقمى TC74 متوفر فى عبوات (أغلفة) packages بالشكل SOT-23 (السطحى) وبالشكل TO-220 (بالثقوب) . يتحقق الاتصال بهذا الجهاز من خلال الناقل I2C . دقة درجة الحرارة 1°C ومعدل التحويل المقنن 8 عينات لكل ثانية 8 samples/sec . مخطط الأطراف مبين بالشكل للرجوع إليه .




يخزن الجهاز TC47 درجة الحرارة المقاسة فى سجل 8-bit داخلى فى شكل الثنائى المتتم
2′s complement . البت ذات الأهمية القصوى MSB هى بت الإشارة , والتى يتم تحديدها بواحد لدرجات الحرارة السالبة . نتيجة لذلك , فإن أقصى درجة حرارة مقاسة موجبة تكون
+ 127 °C (0111 1111) . الجهاز TC74 به أيضا سجل 8-bit آخر هو سجل التهيئة للكتابة والقراءة
Read/Write Configuration Register (RWCR) والذى يستخدم فى وضع الجهاز فى نظام القدرة المنخفضة IDD = 5 A أى نظام "الاستعداد" Standby . فى هذا النظام يتم إيقاف halted المحول A/D وتتجمد frozen سجلات بيانات درجة الحرارة . يجب تحديد سبع بتات من السجل RWCR لوضع الجهاز TC74 فى نظام الاستعداد .







عمل المنفذ التسلسلى :

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 30-08-2012, 02:59 PM المشاركة 2   
افتراضي


عمل المنفذ التسلسلى :
مدخل الساعة التسلسلى (SCLK) والمدخل / المخرج التسلسلى للبيانات (SDA) يشكلان خطى الاتصال مع الجهاز TC74 . المنفذ هو ناقل I2C وكل عمليات النقل تكون تحت سيطرة المضيف , عادة يكون ميكروكونترولر . يقوم الميكروكونترولر المضيف بتوفير إشارة الساعة لجميع عمليات نقل البيانات ودائما يعمل الجهاز TC74 كتابع . الوضع الافتراضى , للسبع خانات التى تعبر عن عنوان الجهاز TC74 للناقل 2IC , هو 1001 101b . مع ذلك , من المتاح أيضا خيار لسبعة عناوين والتى يمكن تحديدها من رقم نوع الجهاز . على سبيل المثال , TC74A0 . الحروف A0 تناظر عنوان الجهاز 1001 000b . بالمثل الجهاز TC74A3 عنوانه 1001 011b .
قراءة درجة الحرارة من الجهاز TC74 من خلال الناقل I2C تشمل الخطوات التالية :
1- يصدر الميكروكونترولر المضيف حالة "البدء" Start متبوعة ببايت العنوان . يتكون بايت العنوان من سبعة بتات كعنوان للجهاز التابع وبت "القراءة/الكتابة" Read/Write(R/W) . دائما تكون البت (R/W) بصفر (كتابة) فى المرحلة الأولى .
2- إذا تطابقت السبعة بتات المخصصة للعنوان مع العنوان الخاص بالتابع فإن الجهاز TC74 يستجيب بنبضة تمام "التسلم" acknowledge .
3- بعد ذلك يقوم الميكروكونترولر بإرسال بايت الأمر للجهاز TC74 لبيان إى سجل يريد الوصول إليه . لقراءة درجة الحرارة , يجب أن يكون بايت الأمر 00h . يستجيب TC74 بنبضة تمام "التسلم" .
4- يصدر الميكروكونترولر المضيف حالة "بدء" جديدة لأن اتجاه نقل البيانات فى طريقه الآن للتغيير . العنوان الجديد المرسل بالمضيف يكون فيه البايت R/W بواحد (قراءة) , حيث يستجيب له التابع بتمام التسلم .
5- يقوم الجهاز TC74 بإرسال بيانات درجة الحرارة فى شكل 8-bit من سجل درجة الحرارة . حال استقبال البايت , فإن المضيف لن يصدر تمام التسلم , لكنه يولد حالة "إيقاف" Stop .


الدائرة الكهربية :



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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 30-08-2012, 03:01 PM المشاركة 3   
افتراضي


البرنامج :


كود:
/*
  Project: Using TC74 with PIC microcontroller 
           for temperature measurement
  MCU: PIC18F2550 on-board StartUSB for PIC
       Clock 48.0 MHz using HS + PLL
  MCLR Enabled
*/
// Define LCD module connections.
 sbit LCD_RS at RC6_bit;
 sbit LCD_EN at RC7_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 TRISC6_bit;
 sbit LCD_EN_Direction at TRISC7_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 connection definition
unsigned char Temp;
unsigned short num;
const int TC74A0 = 0x90;
void check_device(unsigned short dev_address){
 I2C1_Start();
 if (I2C1_Wr(dev_address)){
  Lcd_Out(1,1,"Device not found");
 }
 else Lcd_Out(1,1,"TC74 device");
  I2C1_Stop();
}
unsigned short Read_Temp(){
 unsigned short result;
 I2C1_Start();          // Issue start signal
 I2C1_Wr(TC74A0);       // Address + Write bit
 I2C1_Wr(0x00);         // Read Temp
 I2C1_Repeated_Start(); // Issue start signal
 I2C1_Wr(TC74A0+1);     // Address + Read bit
 result = I2C1_Rd(0u);
 return result;
}
char temperature[] = " 000  C";
void main() {
  CMCON = 0x07;   // Disable comparators
  ADCON1 = 0x0F;  // Disable Analog functions
  TRISA = 0x00;
  TRISC = 0x00;
  TRISB = 0x00;
  I2C1_Init(100000);   // Initiate I2C
  Lcd_Init();          // Initialize LCD
  Lcd_Cmd(_LCD_CLEAR);             // CLEAR display
  Lcd_Cmd(_LCD_CURSOR_OFF);        // Cursor off
  Lcd_Out(1,1,"Testing TC74");
  Lcd_Out(2,1,"Thermal sensor");
  Delay_ms(1000);
  Lcd_Cmd(_LCD_CLEAR);
  do {
   check_device(TC74A0);
   num = Read_Temp();
   
   // Check for negative temperature
   if (num > 127) {
    temperature[0] = '-';
    num = ~num +1;
   }
   else temperature[0] = '+';
   
   temperature[1] = num/100 + 48;
   temperature[2] = (num/10)%10 + 48;
   temperature[3] = num%10 + 48;
   temperature[5] = 223;
   
   // eliminate 0s at beginning
   if (temperature[1] == '0') {
      temperature[1] = ' ';
      if (temperature[2] == '0') temperature[2] = ' ';
   }
   
   Lcd_Out(2,4,temperature);
   Delay_ms(500);
  } while(1);
}


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 30-08-2012, 03:03 PM المشاركة 4   
افتراضي


النتائج :












الصورة الرمزية funky112233
funky112233
:: عضو ذهبي ::
تاريخ التسجيل: Aug 2009
المشاركات: 666
نشاط [ funky112233 ]
قوة السمعة:92
قديم 30-08-2012, 04:57 PM المشاركة 5   
افتراضي


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

مشاء الله يا بشمهندس

دروسك وشروحاتك متميزة جدا وغير ذلك لك طريقة شرح ممتازة
وتنسيق رائع للدروس وشكل الشرح مشاء الله

جزاك الله كل خير اكمل باقى الدروس ونحن بانتظارك


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:332
قديم 31-08-2012, 06:57 PM المشاركة 6   
افتراضي


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

مشاء الله يا بشمهندس

دروسك وشروحاتك متميزة جدا وغير ذلك لك طريقة شرح ممتازة
وتنسيق رائع للدروس وشكل الشرح مشاء الله

جزاك الله كل خير اكمل باقى الدروس ونحن بانتظارك
أخى الكريم

شكرا جزيلا لك

بارك الله فيك

مع تمنياتى بدوام التوفيق


tabet21
:: مهندس ::
تاريخ التسجيل: Oct 2009
المشاركات: 5
نشاط [ tabet21 ]
قوة السمعة:0
قديم 14-09-2012, 01:21 PM المشاركة 7   
Thumbs up


شكرا و بارك الله فيك


الصورة الرمزية kaoutar11
kaoutar11
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2012
الدولة: Algeria
المشاركات: 145
نشاط [ kaoutar11 ]
قوة السمعة:0
قديم 15-09-2012, 08:07 PM المشاركة 8   
افتراضي


السلام عليكم لدي إستفسار حول مفهوم
ANSEL=0X04;
ANSELH=0;
ماهو مفهومهما ؟لقد بحث عن الإجابة و قد قيل لي أن جعل البورت A2كمدخل تناظري و باقي الأطراف كمخارج رقمية . كيف ذلك و مثلا لو حبذا أن أقوم بجعل البورa5 أ, B3 مثلا كيف سيكون ذلك؟

إضافة رد

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

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

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


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

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