مراقبة حالة المحول (المسلسل الرقمي للقراءة) - أساسيات Arduino

جرب أداة القضاء على المشاكل





تناقش أساسيات Arduino طريقة تنفيذ رمز يمكن من خلاله قراءة حالة ON أو OFF لزر ضغط خارجي أو مراقبتها داخل Arduino.

المسلسل قراءة رقمية

هنا نتعلم من خلال مثال كيفية مراقبة حالة المحول عن طريق إجراء اتصال تسلسلي عبر Arduino وجهاز الكمبيوتر الخاص بك عبر USB.



بالإضافة إلى لوحة Arduino الخاصة بك ، قد تحتاج إلى العناصر الأساسية التالية:

المعدات

مفتاح مؤقت أو زر أو مفتاح ضغط للتشغيل



10 كيلو ، 1/4 واط أوم المقاوم

اللوح
وصلات أسلاك التوصيل أو التوصيل.

تشغيل الدائرة

يمكن إجراء العملية من خلال الخطوات التالية:

خذ 3 قطع من أسلاك العبور وقم بتوصيلها بلوحة Arduino الخاصة بك. ينتقل سلكان ، أحمر وأسود ، إلى الصفين الرأسيين الطويلين على جانب لوح التجارب اللذين يصبحان أسلاك الإمداد باللوحة من أجل حمل مطلوب 5V DC إلى اللوحة.

يتم استخدام السلك الثالث لتوصيل الدبوس الرقمي 2 بأحد خيوط مفتاح الضغط على التشغيل.

يرتبط هذا السلك الخاص بالزر أيضًا بمقاوم منسدل 10 كيلو إلى سكة الإمداد السالب أو الأرض. يرتبط السلك الحر الآخر للمفتاح بإمداد 5 فولت موجب.

مع إجراء التوصيلات المذكورة أعلاه ، يقوم المفتاح بالتبديل أو القيام بعمل مزدوج في الدائرة عند الضغط عليه.

عادةً عندما يكون المفتاح في وضع غير متصل ، يظل الخيوطان معزولين ، بحيث يجعل الدبوس المرتبط بالأرض عبر المقاوم المنسدل مستوى منخفضًا أو منطقيًا 0.

في حالة الضغط ، ينفذ المفتاح مؤقتًا تجسيرًا بين خيوطه ، بحيث تخضع خيوطه لـ + 5 فولت ، مما يؤدي إلى مستوى مرتفع أو منطق 1 عبرهما.

قد يؤدي عزل مداخل الإدخال / الإخراج الرقمية عن بقية الأشياء إلى إجبار مؤشر LED على الانهيار ويسبب وميضًا غير منتظم. هذا يرجع إلى حقيقة أن الإدخال لا يتم تقديمه إلى أي شيء ، أو الاحتفاظ به في وضع 'معلق' - مما يعني أنه غير مخصص لأي منطق محدد ، لا مرتفع ولا منخفض (+ 5V أو 0V) ، وهذا هو السبب في أننا نستخدم المقاوم المنسدل مع التبديل.

تخطيطي

فهم المدونة

في البرنامج التالي أدناه ، نبدأ بالاتصال التسلسلي ضمن وظيفة الإعداد بمعدل 9600 بت من البيانات في الثانية ، ويبدأ هذا بين لوحة Arduino والكمبيوتر المرفق: Serial.begin (9600)

في الخطوة التالية ، نشغل الدبوس الرقمي 2 ، الدبوس الذي سيكون مسؤولاً عن الإخراج باستخدام مفتاح الدفع كمدخل: pinMode (2 ، INPUT) هذا يكمل `` الإعداد '' ، والآن نبحر في الحلقة الرئيسية من الكود .

هنا عند الضغط على زر الضغط ، يُسمح لـ 5 فولت بالمرور عبر دائرتنا ، بينما يتم ربط دبوس الإدخال بالأرض من خلال المقاوم 10 كيلو أوم عندما يكون في حالة غير مضغوطة.

ما ورد أعلاه هو ما نسميه المدخلات الرقمية ، والتي تشير إلى حالة حيث يمكن أن يكون المحول في حالة معينة فقط إما حالة تشغيل (مقبولة من قبل Arduino كـ '1' ، أو LOGIC HIGH) أو حالة إيقاف (مرئي بواسطة Arduino كـ '0' أو LOGIC LOW) ، مع عدم وجود مواقع أخرى غير محددة بينهما على الإطلاق.

الإجراء الأساسي الذي نحتاج إلى تنفيذه في الحلقة الرئيسية للبرنامج هو تطبيق متغير للحفاظ على المعلومات في مكانها التي تم إرسالها عبر زر الضغط.

كما نوقش أعلاه مع وجود الإشارات في شكل إما '1' أو '0' ، فإننا نستخدم هنا نوع بيانات int. يمكننا تسمية هذا المتغير باسم sensorValue ، وإصلاحه ليتوافق مع كل ما يتم قراءته على الرقم الرقمي 2. كل هذه الأشياء تصبح قابلة للتحقيق عبر سطر واحد من التعليمات البرمجية:

int sensorValue = digitalRead (2) بمجرد قراءة Arduino للإدخال ، قم بطباعته مرة أخرى على الكمبيوتر في شكل قيمة عشرية.

يمكن تنفيذ ذلك بمساعدة الأمر Serial.println () في السطر الختامي من الكود: Serial.println (sensorValue)

بعد ذلك ، عندما يتم بدء تشغيل Serial Monitor في مجال Arduino ، سنشهد سلسلة من '0 أثناء فتح زر الضغط ، والسلاسل' 1 في الحالات التي يكون فيها الزر مغلقًا.

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




زوج من: وحدة تحكم تدفق المياه المخصصة مع دائرة الموقت التالي: تحويل التناظرية إلى الرقمية (التناظرية قراءة المسلسل) - أساسيات Arduino