في هذا البرنامج التعليمي نقدم مفهوم ADC (التحويل التناظري إلى الرقمي) في ARDUINO UNO. تحتوي لوحة Arduino على ست قنوات ADC ، كما هو موضح في الشكل أدناه. من بين هؤلاء يمكن استخدام أي واحد منهم أو جميعهم كمدخلات للجهد التناظري. تتميز Arduino Uno ADC بدقة 10 بت (وبالتالي فإن قيم الأعداد الصحيحة تبدأ من (0- (2 ^ 10) 1023)). هذا يعني أنه سيعين الفولتية المدخلة بين 0 و 5 فولت في قيم عدد صحيح بين 0 و 1023. لذلك لكل (5/1024 = 4.9mV) لكل وحدة.
في كل هذا سنقوم بتوصيل مقياس جهد أو وعاء بقناة "A0" ، وسنعرض نتيجة ADC على شاشة عرض بسيطة. الشاشات البسيطة هي وحدات عرض 16 × 1 و 16 × 2. ستتألف وحدة العرض مقاس 16 × 1 من 16 حرفًا وتكون في سطر واحد. سوف يكون 16X2 32 حرفا في مجموع 16in 1 شارع خط و 16 أخرى في 2 الثانية خط. هنا يجب أن يفهم المرء أنه في كل حرف يوجد 5 × 10 = 50 بكسل ، لذا لعرض حرف واحد ، يجب أن تعمل جميع وحدات البكسل الـ 50 معًا ، لكن لا داعي للقلق بشأن ذلك نظرًا لوجود وحدة تحكم أخرى (HD44780) في وحدة العرض والتي تقوم بعمل مهمة التحكم في البكسل (يمكنك رؤيتها في وحدة LCD ، إنها العين السوداء في الخلف).
المكونات مطلوبة
الأجهزة: ARDUINO UNO ، مصدر طاقة (5 فولت) ، JHD_162ALCD (16x2LCD) ، مكثف 100 فائق التوهج ، وعاء 100 كيلو أوم أو مقياس جهد ، مكثف 100 نانومتر.
البرنامج: اردوينو IDE (اردوينو ليلاً)
مخطط الدائرة وشرحها
في 16x2 LCD ، يوجد 16 دبوسًا في الكل إذا كان هناك ضوء خلفي ، إذا لم يكن هناك ضوء خلفي ، فسيكون هناك 14 دبوسًا. يمكن للمرء أن يغادر أو يترك دبابيس الضوء الخلفي. الآن في دبابيس 14 هناك 8 دبابيس البيانات (7-14 أو D0-D7)، 2 دبابيس امدادات الطاقة (1 و 2 أو VSS و VDD أو GND و + 5V)، 3 الثالثة دبوس للسيطرة على النقيض من ذلك (VEE ضوابط كيف سميكة يجب أن تكون الأحرف معروض) ، و 3 دبابيس تحكم (RS & RW & E).
في الدائرة ، يمكنك ملاحظة أنني أخذت دبابيس تحكم فقط ، ولا يتم استخدام بت التباين والقراءة / الكتابة في كثير من الأحيان حتى يمكن تقصيرها على الأرض. هذا يضع LCD في أعلى وضع التباين والقراءة نحتاج فقط إلى التحكم في دبابيس ENABLE و RS لإرسال الأحرف والبيانات وفقًا لذلك.
فيما يلي التوصيلات التي تمت لشاشات الكريستال السائل:
PIN1 أو VSS على الأرض
PIN2 أو VDD أو VCC إلى + 5 فولت
PIN3 أو VEE على الأرض (يعطي أقصى تباين أفضل للمبتدئين)
PIN4 أو RS (اختيار التسجيل) إلى PIN8 من ARDUINO UNO
PIN5 أو RW (قراءة / كتابة) على الأرض (يؤدي وضع شاشة LCD في وضع القراءة إلى تسهيل الاتصال للمستخدم)
PIN6 أو E (تمكين) إلى PIN9 من ARDUINO UNO
PIN11 أو D4 إلى PIN10 من ARDUINO UNO
PIN12 أو D5 إلى PIN11 من ARDUINO UNO
PIN13 أو D6 إلى PIN12 من ARDUINO UNO
PIN14 أو D7 إلى PIN13 من ARDUINO UNO
يسمح ARDUINO IDE للمستخدم باستخدام LCD في وضع 4 بت. يمكّن هذا النوع من الاتصال المستخدم من تقليل استخدام الدبوس على ARDUINO ، على عكس الآخر ، لا يحتاج ARDUINO إلى البرمجة بشكل منفصل لاستخدامه في وضع 4 it لأنه افتراضيًا تم إعداد ARDUINO للتواصل في وضع 4 بت. في الدائرة يمكنك أن ترى أننا استخدمنا اتصال 4 بت (D4-D7).
لذلك من مجرد الملاحظة من الجدول أعلاه ، نقوم بتوصيل 6 دبابيس من شاشة LCD بوحدة التحكم حيث تكون 4 دبابيس عبارة عن دبابيس بيانات و 2 دبابيس للتحكم.
يوضح الشكل أعلاه مخطط الدائرة c لـ ADC لـ ARDUINO UNO.
العمل
لتوصيل شاشة LCD مع ARDUINO UNO ، نحتاج إلى معرفة بعض الأشياء.
|
بادئ ذي بدء ، تحتوي قنوات UNO ADC على قيمة مرجعية افتراضية تبلغ 5 فولت. هذا يعني أنه يمكننا إعطاء جهد إدخال أقصى قدره 5 فولت لتحويل ADC في أي قناة إدخال. نظرًا لأن بعض المستشعرات توفر جهدًا من 0-2.5 فولت ، مع مرجع 5 فولت ، نحصل على دقة أقل ، لذلك لدينا تعليمات تمكننا من تغيير هذه القيمة المرجعية. لذلك لتغيير القيمة المرجعية لدينا ("analogReference () ؛")
كإعداد افتراضي ، نحصل على أقصى دقة للوحة ADC وهي 10 بت ، يمكن تغيير هذا القرار باستخدام التعليمات ("analogReadResolution (بت) ؛"). يمكن أن يكون تغيير الدقة هذا مفيدًا في بعض الحالات.
الآن إذا تم تعيين الشروط المذكورة أعلاه على الوضع الافتراضي ، فيمكننا قراءة القيمة من ADC للقناة "0" عن طريق استدعاء الوظيفة مباشرة "analogRead (pin) ؛" ، هنا يمثل "pin" دبوس حيث قمنا بتوصيل الإشارة التناظرية ، في هذه الحالة سيكون يكون "A0". يمكن أخذ القيمة من ADC في عدد صحيح كـ “int ADCVALUE = analogRead (A0)؛ "، من خلال هذه التعليمات ، يتم تخزين القيمة بعد ADC في العدد الصحيح" ADCVALUE ".
الآن دعنا نتحدث قليلاً عن شاشة LCD مقاس 16 × 2. نحتاج أولاً إلى تمكين ملف الرأس ('#include
ثانيًا ، نحتاج إلى إخبار اللوحة بنوع شاشة LCD التي نستخدمها هنا. نظرًا لأن لدينا العديد من الأنواع المختلفة لشاشات الكريستال السائل (مثل 20 × 4 و 16 × 2 و 16 × 1 وما إلى ذلك). هنا سنقوم بتوصيل شاشة LCD مقاس 16 × 2 بـ UNO حتى نحصل على lcd.begin (16، 2)؛ مقابل 16x1 نحصل على "lcd.begin (16، 1)؛".
في هذه التعليمات ، سنخبر اللوحة حيث قمنا بتوصيل المسامير ، سيتم تمثيل المسامير المتصلة بالترتيب كـ "RS ، En ، D4 ، D5 ، D6 ، D7". يتم تمثيل هذه المسامير بشكل صحيح. نظرًا لأننا قمنا بتوصيل RS بـ PIN0 وما إلى ذلك كما هو موضح في الرسم التخطيطي للدائرة ، فإننا نمثل رقم الدبوس على اللوحة كـ "LiquidCrystal lcd (0 ، 1 ، 8 ، 9 ، 10 ، 11) ؛".
بعد ما سبق ، لم يتبق سوى إرسال البيانات ، يجب كتابة البيانات التي يجب عرضها على شاشة LCD كـ "cd.print (" hello، world! ")؛". باستخدام هذا الأمر ، تعرض شاشة LCD رسالة "hello، world!".
كما ترون ، لا داعي للقلق بشأن أي شيء آخر ، علينا فقط التهيئة وسيكون UNO جاهزًا لعرض البيانات. لا يتعين علينا كتابة حلقة برنامج لإرسال البيانات BYTE بواسطة BYTE هنا.
يتم شرح استخدام ADC لـ Arduino Uno خطوة بخطوة في برنامج C الموضح أدناه.