منتدى الإلكترونيات قسم الالكترونكس لمناقشة الافكار والمعلومات المتعلقة بالهندسة الالكترونية للمبتدئين والهواة والفنيين - Electronics

   

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 02-05-2016, 08:34 PM المشاركة 57   
افتراضي وحدة (موديول) المحول من تناظرى لرقمى A/D converter module



وحدة (موديول) المحول من تناظرى لرقمى A/D converter module
الخصائص :
• يولد المحول نتيجة ثنائية ذات عشر خانات 10-bit باستخدام طريقة التقريب المتتابع ,ويخزن نتائج التحويل فى السجلات : ADRESL "نتيجة التحويل المنخفضة" و ADRESH "نتيجة التحويل المرتفعة" .
• يوجد 14 مدخل تناظرى مستقلة بالميكروكونترولر PIC16F887 .
• يقوم المحول بتحويل إشارة الدخل التناظرية إلى عدد ثنائى مكون من 10 خانات .
• أقصى دقة resolution أو كفاءة تحويل يمكن ضبطها عن طريق اختيار الجهد المرجعى السالب Vref- والجهد المرجعى الموجب Vref+ .






المحول من تناظرى لرقمى A/D CONVERTER
على الرغم من أن استخدام المحول A/D يبدو معقدا جدا ، لكنه فى الأساس فى غاية البساطة ، فهو أبسط من المؤقتات ومن وحدة (موديول) الاتصالات .

الرابط


http://www.mediafire.com/download/95...ER_3-9_ADC.zip

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 03-05-2016, 02:04 AM المشاركة 58   
افتراضي أساسيات أشباه الموصلات Semiconductor Basics


أساسيات أشباه الموصلات Semiconductor Basics
إذا كانت المقاومات هى العنصر "السلبى – الغير نشط " passive الأساسى فى الدوائر الكهربائية والالكترونية , فيجب علينا اعتبار "ثنائى الإشارة" Signal Diode هو العنصر "الإيجابى – النشط " Active الأساسى . على خلاف المقاومة , لا يتصرف الثنائى خطيا بالنسبة للجهد المطبق , حيث أن له منحنى خواص بين التيار والجهد I – V "أسى" exponential وبالتالى لا يمكن وصفه ببساطة عن طريق استخدام قانون أوم كما نفعل مع المقاومات .
الثنائيات هى أشباه موصلات أحادية الاتجاه والتى من شأنها أن تسمح بمرور التيار من خلالها فى اتجاه واحد فقط , وهى تتصرف كأنها "صمام" valve كهربائى باتجاه واحد ( حالة الانحياز الأمامى) . لكن قبل أن نلقى نظرة على كيفية عمل ثنائيات "الإشارة" signal و "القدرة" power نحتاج أولا لفهم بناؤها الأساسى ومفاهيمها .
تصنع الثنائيات من قطعة واحدة من مادة شبه موصلة والتى لها منطقة موجبة "P – region" فى أحد نهايتيها ومنطقة سالبة "N – region" عند النهاية الأخرى , هذه القطعة لها قيمة مقاومة بين الموصل والعازل . لكن ما هى مادة "أشباه الموصلات" ؟ , فى البداية نلقى نظرة على ما يجعل شيئا إما موصل أو عازل .

المقاومة النوعية (المقاومية) Resistivity :
عموما , تعرف المقاومة الكهربية electrical Resistance للعنصر أو الجهاز الكهربائى أوالالكترونى باعتبارها النسبة ratio بين فرق الجهد عبره والتيار المار خلاله , بناء على قانون أوم . المشكلة مع استخدام المقاومة كمقياس هى أنها تعتمد إلى حد كبير على الحجم الطبيعى للمادة المقاسة بالإضافة إلى المادة المصنع منها , فعلى سبيل المثال , إذا تمت زيادة طول المادة ( جعلناها أطول) فإن هذا من شأنه زيادة مقاومتها أيضا . بالمثل , إذا تمت زيادة قطرها وبالتالى مساحة مقطعها ( جعلناها أسمك) فإن هذا من شأنه نقصان المقاومة . لذلك نحن نريد أن نكون قادرين على تعريف المادة بطريقة تبين قدرتها على إما توصيل أو معارضة مرور التيار الكهربائى خلالها بغض النظر عن حجمها أو شكلها . الكمية التى تستخدم لبيان ذلك هى "المقاومة النوعية" أو "المقاومية" Resistivity ويرمز لها بالحرف اليونانى "رو" ρ (Rho) . تقاس المقاومة النوعية بالأوم – متر Ohm-metres, ( -m ) وهى معكوس "التوصيلية" conductivity .

الرابط :

http://www.mediafire.com/download/5p...ors_Basics.zip

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 03-05-2016, 03:07 AM المشاركة 59   
افتراضي الدائرة المتكاملة للمؤقت 555 داخليا وخارحيا


الدائرة المتكاملة للمؤقت 555 داخليا وخارحيا
• يمكن للمؤقت 555 العمل كمؤقت أو كمذبذب .
• فى نظام العمل كمؤقت ( والمعروف بالنظام احادى الاستقرار monostable ) يعمل المؤقت 555 ببساطة كمؤقت يقوم بتوليد نبضىة أو ما يعرف بإسم " طلقة واحدة ". one-shot .
• عند توصيل نبضة بدء (قدح – إشعال) trigger الى طرف البدء فان خرج المؤقت يتحول من مستوى الجهد المنخفض الى مستوى الجهد المرتفع ولفترة زمنية يتم تحديدها بدائرة RC خارجية .
• قى نظام العمل كمذبذب ( والمعروف باسم النظام عديم الاستقرار astable أو الحر ) يعمل المؤقت 555 كمولد نبضات مستطيلة حيث يمكن التحكم فى الشكل الموجى الناتج ( فترة زمنية منخفضة او فترة زمنية مرتفعة او التردد ..) عن طريق دوائر شحن وتفريغ RC خارجية .
• المؤقت 555 سهل الاستخدام ( يحتاج الى قليل من المكونات والحسابات ) ورخيص ويمكن استخدامه فى الكثير من التطبيقات المذهلة . على سبيل المثال : توليد نبضات الساعة الرقمية digital clock و دوائر الفلاشر flasher ودوائر السراين sirens
( الانذار) ودوائر التوقيت one-shot timer ودوائر تشغيل المفاتيح الخالية من الارتدادات (القفزات) bounce-free وتوليد الاشكال الموجية المختلفة مثل الشكل الموجى المثلث triangular وفى مقسمات التردد ...الخ .

نظرية عمل المؤقت 555 :
• الشكل يبين مخطط صندوقى مبسط لما بداخل المؤقت 555 .
• الدائرة الكاملة ( بالمكونات الخارجية ) تمثل المؤقت 555 يعمل بنظام المذبذب عديم الاستقرار astable

الرابط :


http://www.mediafire.com/download/97...d_external.zip


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 03-05-2016, 11:31 AM المشاركة 60   
افتراضي شرح بيئة التطوير المتكاملة للمترجم MikroC PRO IDE والبرنامج الأول لك


شرح بيئة التطوير المتكاملة للمترجم MikroC PRO IDE والبرنامج الأول لك

1- بعد فتح البرنامج سوف نرى هذا الشكل :



2- هذا هو مكان العمل workspace . لنتكلم حوله باختصار . يوجد فى الأعلى شريط القوائم menu bar.والذى يتكون من القوائم الآتية :




للمزيد .......
الرابط :

http://www.mediafire.com/download/9g...st_program.zip


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 04-05-2016, 12:04 PM المشاركة 61   
افتراضي المدخل المباشر للتعامل مع وحدات السفن سيجمنت بطريقة Multiplexing من خلال تدريبات متعد


المدخل المباشر للتعامل مع وحدات السفن سيجمنت بطريقة Multiplexing من خلال تدريبات متعددة ومتدرجة
التدريب الأول : تمهيد
استخدام وحدتى عرض سفن سيجمنت لعرض العدد الثابت "12" وليشير إلى رقم الوحدة المتفق عليها .
الدائرة الكهربية :



البرنامج :


كود:
/*
 * Project name: Multiplexing_7-Segment -2 units
     MCU:             PIC16F877A
     Oscillator:      HS, 8.0000 MHz
     SW:              mikroC PRO
*/
//////////////////////////////
#define Digit1 PORTA.RA0 // TENS
#define Digit2 PORTA.RA1 // ONES
///////////////////////////////////////
unsigned char Display (unsigned char digit)//convert(decoder) digit to 7 segment bit pattern 
  {
    unsigned char pattern;
    unsigned char  SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    pattern =  SEGMENT_MAP[digit] ;  //The pattern to return ,segment data for common cathode
    return (pattern);
  }
////////////////////////////////////////
void main() {
  unsigned char MSD, LSD, count=12; // display constant 2 digit number 
  ADCON1= 6;           // Configure all pins as digital inputs .
  TRISA = 0;            // Configure PORTA as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT
//////////////////////////
 Digit1 = 0;            //Disable digit 1
 Digit2 = 0;            //Disable digit 2
////////////////
  while(1){
		///////////MSB is Digit1///// Steps :////////
       MSD = count / 10;       	//1-Extract MSD from "count" >>TENS
       PORTB = Display(MSD);    //2-Display the MSD , send to data port
       Digit1 = 1;             	//3- Enable digit 1 
       Delay_Ms(10);            //4- uase a short delay 10ms , as example
       Digit1 = 0;             	//5- Disable digit 2
		/////////////LSB is Digit2////////Repeat steps :///
       LSD = count % 10;        // LSD digit >>>ONES
       PORTB = Display(LSD);    //Display the LSD
       Digit2 = 1;             	//Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             	//Disable digit 2
	   ///////////////////////////////////
    }
}

ملف البرنامج والدائرة الكهربية على الرابط :


http://www.mediafire.com/download/cm...T-2UNITS-1.zip


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 04-05-2016, 12:15 PM المشاركة 62   
افتراضي


التدريب الثانى :
تطوير للتدريب الأول ، وذلك باستخدام أربعة وحدات لعرض العدد "1234"

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



البرنامج :


كود:
/*
 * Project name: Multiplexing_7-Segment 4 UNITS
     MCU:             PIC16F877A
     Oscillator:      HS, 8.0000 MHz
     SW:              mikroC PRO
*/
#define Digit1 PORTA.RA0 // THOUTHAND
#define Digit2 PORTA.RA1 // HUNDRED
#define Digit3 PORTA.RA2 // TENS
#define Digit4 PORTA.RA3 // ONES

unsigned char Display (unsigned char digit)
  {
    unsigned char pattern;
    unsigned char  SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    pattern =  SEGMENT_MAP[digit] ;  //The pattern to return
    return (pattern);
  }

void main() {
  unsigned char DD1,DD2, DD3,DD4 ;
  unsigned int count=1234; //more than char
  ADCON1= 6;           // ALL AS DIGITAL
  TRISA = 0;            // Configure PORTA as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT

Digit1 = 0;            //Disable digit 1
Digit2 = 0;            //Disable digit 2
Digit3 = 0;            //Disable digit 3
Digit4 = 0;            //Disable digit 4 


  while(1){
		///////////
       DD1 = count / 1000;       //Extract DD1 from count >>THOUTHAND
       PORTB = Display(DD1);    //Display the DD1
       Digit1 = 1;             //Enable digit 1
       Delay_Ms(10);            //a short 10ms delay
       Digit1 = 0;             //Disable digit 1
		/////////
       DD2 = (count/100) % 10;        // DD2 digit >>>HUNDRED
       PORTB = Display(DD2);    //Display the DD3
       Digit2 = 1;             //Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             //Disable digit 2
	   ////////////
	   DD3 = (count/10) % 10;       //Extract DD3 from count >>TENS
       PORTB = Display(DD3);    //Display the DD3
       Digit3 = 1;             //Enable digit 3
       Delay_Ms(10);            //a short 10ms delay
       Digit3 = 0;             //Disable digit 3
	   /////////
	   DD4 = count % 10;       //Extract DD4 from count >>ONES
       PORTB = Display(DD4);    //Display the DD4
       Digit4 = 1;             //Enable digit 4
       Delay_Ms(10);            //a short 10ms delay
       Digit4 = 0;             //Disable digit 4
    }
}


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 04-05-2016, 12:24 PM المشاركة 63   
افتراضي


التدريب الثالث : تطبيق على التدريب السابق
قراءة جهد تناظرى من 0v إلى 5v من مقاومة متغيرة وعرض نتيجة التحويل من تناظرى لرقمى من 0 إلى 1023

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







البرنامج :


كود:
/*
 * Project name: Multiplexing_7-Segment 4 UNITS
     MCU:             PIC16F877A , ADC , 0-1023
     Oscillator:      HS, 8.0000 MHz
     SW:              mikroC PRO
*/
#define Digit1 PORTD.B0 // THOUTHAND
#define Digit2 PORTD.B1 // HUNDRED
#define Digit3 PORTD.B2 // TENS
#define Digit4 PORTD.B3 // ONES

unsigned char Display (unsigned char digit)
  {
    unsigned char pattern;
    unsigned char  SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    pattern =  SEGMENT_MAP[digit] ;  //The pattern to return
    return (pattern);
  }

void main() {
  unsigned char DD1,DD2, DD3,DD4 ;
  unsigned int ADC_result; //
  ADCON1= 0;           //
  TRISA.B0=1; // AN0 INPUT
  TRISD = 0;            // Configure PORTD as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT

Digit1 = 0;            //Disable digit 1
Digit2 = 0;            //Disable digit 2
Digit3 = 0;            //Disable digit 3
Digit4 = 0;            //Disable digit 4


  while(1){
  ADC_result=ADC_Read(0);  // Read analog value from channel 0
		///////////
       DD1 = ADC_result / 1000;       //Extract DD1 from ADC_result >>THOUTHAND
       PORTB = Display(DD1);    //Display the DD1
       Digit1 = 1;             //Enable digit 1
       Delay_Ms(10);            //a short 10ms delay
       Digit1 = 0;             //Disable digit 1
		/////////
       DD2 = (ADC_result/100) % 10;        // DD2 digit >>>HUNDRED
       PORTB = Display(DD2);    //Display the DD3
       Digit2 = 1;             //Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             //Disable digit 2
	   ////////////
	   DD3 = (ADC_result/10) % 10;       //Extract DD3 from ADC_result >>TENS
       PORTB = Display(DD3);    //Display the DD3
       Digit3 = 1;             //Enable digit 3
       Delay_Ms(10);            //a short 10ms delay
       Digit3 = 0;             //Disable digit 3
	   /////////
	   DD4 = ADC_result % 10;       //Extract DD4 from ADC_result >>ONES
       PORTB = Display(DD4);    //Display the DD4
       Digit4 = 1;             //Enable digit 4
       Delay_Ms(10);            //a short 10ms delay
       Digit4 = 0;             //Disable digit 4
    }
}


الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,832
نشاط [ F.Abdelaziz ]
قوة السمعة:
قديم 04-05-2016, 12:43 PM المشاركة 64   
افتراضي


التدريب الرابع :
قياس درجة حرارة باستخدام الحساس LM35 وعرضها على 4 وحدات سفن سيجمنت

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










البرنامج :


كود:
/*
 * Project name: Multiplexing_7-Segment 4 UNITS
     MCU:             PIC16F877A , ADC , LM35
     Oscillator:      HS, 8.0000 MHz
     SW:              mikroC PRO
*/
#define Digit1 PORTD.B0 // THOUTHAND
#define Digit2 PORTD.B1 // HUNDRED
#define Digit3 PORTD.B2 // TENS
#define Digit4 PORTD.B3 // ONES

unsigned char Display (unsigned char digit)
  {
    unsigned char pattern;
    unsigned char  SEGMENT_MAP[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
    pattern =  SEGMENT_MAP[digit] ;  //The pattern to return
    return (pattern);
  }

void main() {
  unsigned char DD1,DD2, DD3,DD4 ;
  unsigned int result; //
  float scale ;
  char num ;
  ADCON1= 0;           //
  TRISA.B0=1; // AN0 INPUT
  TRISD = 0;            // Configure PORTD as outputs , COMMON CATHODES
  TRISB = 0;            // Configure PORTB as outputs ,7 SEGMENT DATA PORT

Digit1 = 0;            //Disable digit 1
Digit2 = 0;            //Disable digit 2
Digit3 = 0;            //Disable digit 3
Digit4 = 0;            //Disable digit 4


  while(1){
  result=ADC_Read(0);  // Read analog value from channel 0
  scale = result * (5000.0/1023.0); // input analog voltage
  scale = scale /10.0 ; // input temp inc for LM35
  num = scale ;
		///////////
       DD1 = num / 1000;       //Extract DD1 from result >>THOUTHAND
       PORTB = Display(DD1);    //Display the DD1
       Digit1 = 1;             //Enable digit 1
       Delay_Ms(10);            //a short 10ms delay
       Digit1 = 0;             //Disable digit 1
		/////////
       DD2 = (num/100) % 10;        // DD2 digit >>>HUNDRED
       PORTB = Display(DD2);    //Display the DD3
       Digit2 = 1;             //Enable digit 2
       Delay_Ms(10);            //a short 10ms delay
       Digit2 = 0;             //Disable digit 2
	   ////////////
	   DD3 = (num/10) % 10;       //Extract DD3 from result >>TENS
       PORTB = Display(DD3);    //Display the DD3
       Digit3 = 1;             //Enable digit 3
       Delay_Ms(10);            //a short 10ms delay
       Digit3 = 0;             //Disable digit 3
	   /////////
	   DD4 = num % 10;       //Extract DD4 from result >>ONES
       PORTB = Display(DD4);    //Display the DD4
       Digit4 = 1;             //Enable digit 4
       Delay_Ms(10);            //a short 10ms delay
       Digit4 = 0;             //Disable digit 4
    }
}



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