في هذا المشروع ، سنصنع مقياسًا منخفض المدى باستخدام متحكم ATMEGA8. في ATMEGA8 ، سنستخدم ميزة ADC (التحويل التناظري إلى الرقمي) 10 بت للقيام بذلك. على الرغم من أن لدينا بعض الطرق الأخرى للحصول على المعلمة الحالية من الدائرة ، فإننا سنستخدم طريقة الإسقاط المقاوم ، لأنها أسهل وأبسط طريقة للحصول على المعلمة الحالية.
في هذه الطريقة ، سنقوم بتمرير التيار الذي يجب قياسه بمقاومة صغيرة ، وبهذا نحصل على انخفاض عبر تلك المقاومة المرتبطة بالتيار المتدفق خلالها. يتم تغذية هذا الجهد عبر المقاومة إلى ATMEGA8 لتحويل ADC. مع ذلك ، سيكون لدينا التيار بالقيمة الرقمية التي سيتم عرضها على شاشة LCD مقاس 16 × 2.
لذلك سنستخدم دائرة مقسم الجهد. سنقوم بتغذية التيار من خلال فرع المقاومة الكامل. يتم أخذ نقطة منتصف الفرع للقياس. عندما تتغير التغيرات الحالية سيكون هناك انخفاض في المقاومة الخطية لها. لذلك لدينا جهد يتغير مع الخطية.
الآن الشيء المهم الذي يجب ملاحظته هنا هو أن الإدخال الذي تم التقاطه بواسطة وحدة التحكم لتحويل ADC منخفض يصل إلى 50 أوم. يعد تأثير التحميل لمقسم الجهد القائم على المقاومة مهمًا لأن التيار المسحوب من مقسم الجهد يزيد من نسبة الخطأ الزائدة ، في الوقت الحالي لا داعي للقلق بشأن تأثير التحميل.
المكونات مطلوبة
الأجهزة: ATMEGA8 ، مزود الطاقة (5 فولت) ، AVR-ISP PROGRAMMER ، JHD_162ALCD (16 * 2LCD) ، مكثف 100 فائق التوهج ، مكثف 100 نانومتر (4 قطع) ، مقاوم 100 أوم (7 قطع) أو 2.5 أوم (قطعتان) ، 100 كيلو أوم المقاوم.
البرنامج: Atmel studio 6.1، progisp or flash magic.
مخطط الدائرة وشرح العمل
الجهد عبر R2 و R4 ليس خطيًا تمامًا ؛ ستكون صاخبة. لتصفية الضوضاء ، يتم وضع المكثفات عبر كل مقاوم في دائرة الفاصل كما هو موضح في الشكل.
في ATMEGA8 ، يمكننا إعطاء مدخلات تناظرية لأي من قنوات PORTC الأربع ، لا يهم القناة التي نختارها لأن جميعها متشابهة. سنختار القناة 0 أو PIN0 من PORTC. في ATMEGA8 ، تكون دقة ADC 10 بت ، لذلك يمكن لوحدة التحكم اكتشاف الحد الأدنى من التغيير Vref / 2 ^ 10 ، لذلك إذا كان الجهد المرجعي 5 فولت ، نحصل على زيادة خرج رقمية لكل 5/2 ^ 10 = 5mV. لذلك لكل زيادة 5mV في الإدخال ، سيكون لدينا زيادة واحدة في الإخراج الرقمي.
نحتاج الآن إلى ضبط سجل ADC بناءً على الشروط التالية:
1. أولاً وقبل كل شيء نحتاج إلى تمكين ميزة ADC في ADC.
2. هنا سنحصل على أقصى جهد دخل لتحويل ADC هو + 5V. حتى نتمكن من إعداد الحد الأقصى لقيمة أو مرجع ADC إلى 5V.
3. تحتوي وحدة التحكم على ميزة تحويل المشغل التي تعني أن تحويل ADC لا يحدث إلا بعد مشغل خارجي ، لأننا لا نريد أن نحتاج إلى ضبط السجلات لتشغيل ADC في وضع التشغيل الحر المستمر.
4. بالنسبة لأي ADC ، فإن تردد التحويل (القيمة التناظرية إلى القيمة الرقمية) ودقة الإخراج الرقمي يتناسبان عكسياً. لذلك من أجل دقة أفضل للإخراج الرقمي ، يتعين علينا اختيار تردد أقل. بالنسبة لساعة ADC العادية ، نقوم بضبط البيع المسبق لـ ADC على القيمة القصوى (2). نظرًا لأننا نستخدم الساعة الداخلية 1 ميجا هرتز ، فستكون ساعة ADC (1000000/2).
هذه هي الأشياء الأربعة الوحيدة التي نحتاج إلى معرفتها للبدء في ADC.
يتم تعيين جميع الميزات الأربعة المذكورة أعلاه بواسطة سجلين ،
أحمر (عدن): يجب تعيين هذا البت لتمكين ميزة ADC في ATMEGA.
الأزرق (REFS1 ، REFS0): يتم استخدام هاتين البتتين لضبط الجهد المرجعي (أو أقصى جهد دخل سنقدمه). نظرًا لأننا نريد الحصول على جهد مرجعي 5 فولت ، يجب ضبط REFS0 ، بواسطة الجدول.
أصفر (ADFR): يجب تعيين هذا البت لكي يعمل ADC بشكل مستمر (وضع التشغيل الحر).
PINK (MUX0-MUX3): هذه البتات الأربع لإخبار قناة الإدخال. نظرًا لأننا سنستخدم ADC0 أو PIN0 ، فلن نحتاج إلى تعيين أي بتات كما هو موضح في الجدول.
BROWN (ADPS0-ADPS2): هذه البتات الثلاث مخصصة لضبط مقياس القيمة المسبقة لـ ADC. نظرًا لأننا نستخدم قيمة prescalar من 2 ، يتعين علينا تعيين بت واحد.
DARK GREEN (ADSC): مجموعة البت هذه لـ ADC لبدء التحويل. يمكن تعطيل هذا الشيء في البرنامج عندما نحتاج إلى إيقاف التحويل.