جدول المحتويات:

وضع المؤازرة مع لوحة المفاتيح: 3 خطوات
وضع المؤازرة مع لوحة المفاتيح: 3 خطوات

فيديو: وضع المؤازرة مع لوحة المفاتيح: 3 خطوات

فيديو: وضع المؤازرة مع لوحة المفاتيح: 3 خطوات
فيديو: 32 اختصارًا سرّيًّا على لوحة المفاتيح 2024, يوليو
Anonim
وضع المؤازرة مع لوحة المفاتيح
وضع المؤازرة مع لوحة المفاتيح

في هذا الدليل ، سننشئ مشروعًا يتحكم في Micro-Servo باستخدام لوحة مفاتيح تقوم بتشغيله باستخدام Arduino Uno.

المواد المستخدمة:

اردوينو اونو

اللوح

لوحة مفاتيح 4x4

مايكرو سيرفو

الخطوة 1: قم بربط لوحة المفاتيح

قم بتوصيل لوحة المفاتيح
قم بتوصيل لوحة المفاتيح
قم بتوصيل لوحة المفاتيح
قم بتوصيل لوحة المفاتيح

أول ما تعتقد أنه يتعين عليك القيام به هو توصيل سكة الطاقة وسكة التأريض على لوح التجارب من Arduino

  1. قم بتوصيل دبوس 5V بسكة الطاقة (أحمر)
  2. قم بتوصيل دبوس أرضي (GND) بسكة التأريض (أزرق)

الآن بعد أن أصبح اللوح مزودًا بالطاقة ومؤرضًا ، يمكننا البدء في توصيل مكوناتنا بالأسلاك.

يعد توصيل الأسلاك في لوحة المفاتيح أمرًا سهلاً ولكنك تحتاج إلى ملاحظة المسامير الموجودة على لوحة المفاتيح واردوينو. سيكون مفيدًا عندما نوجه انتباهنا إلى الكود الخاص بنا.

تذكر أن تبدأ من اليسار عند استخدام الأسلاك الخاصة بك!

  • أول دبوس يذهب إلى 13
  • الدبوس الثاني يذهب إلى 12
  • يذهب الدبوس الثالث إلى 11
  • الدبوس الرابع يذهب إلى 10
  • الخامس إلى 9
  • السادس دبوس إلى 8
  • السابع دبوس إلى 7
  • الثامن Pin to 6

عند توصيل لوحة المفاتيح ، تذكر إبقاء دبوس pwm الرقمي مفتوحًا. سنحتاجه من أجل المؤازرة الدقيقة

قبل أن نصل إلى الرمز ، تأكد من تثبيت مكتبة لوحة المفاتيح. يمكن العثور عليها في رسمك التخطيطي ، ثم علامة تبويب التخطيط ، وتضمين المكتبة. لن تتمكن من استخدام لوحة المفاتيح بدونها.

الآن دعنا ننتقل إلى الكود ونتأكد من أن لوحة المفاتيح تعمل وتعطي القيم الخاضعة للإشراف

ملاحظات سريعة: تأكد من أن لديك عبارة if للتحقق من لوحة المفاتيح ، وإلا فلن تعمل. كن حذرًا أيضًا من التأخيرات ، فسوف يعبثون بالأزرار التي يتم تسجيلها من لوحة المفاتيح

#يشمل

صفوف بايت const = 4 ؛ // أربعة صفوف منذ امتلاء لوحة المفاتيح

أعمدة بايت ثابت = 4 ؛ // أربعة أعمدة ، كما ورد أعلاه

أزرار الحرف [الصفوف] [الأعمدة] = {

{'1'، '2'، '3'، 'A'}، {'4'، '5'، '6'، 'B'}، {'7'، '8'، '9'، ' C '}، {' * '،' 0 '،' # '،' D '}} ؛

بايت rowP [rows] = {13، 12، 11، 10} ؛ // صف دبابيس لوحة المفاتيح

أعمدة البايت P [أعمدة] = {9 ، 8 ، 7 ، 6} ؛ // دبابيس عمود لوحة المفاتيح

لوحة المفاتيح = لوحة المفاتيح (جعل خريطة المفاتيح (أزرار) ، rowP ، أعمدة P ، صفوف ، أعمدة) ؛ // إنشاء لوحة المفاتيح

الإعداد باطل(){

Serial.begin (9600) ؛ }

حلقة فارغة(){

char buttonPressed = pad.getKey () ؛ // احصل على الحرف من لوحة المفاتيح إذا (buttonPressed) // أظهر الزر الذي تم الضغط عليه على لوحة المفاتيح {Serial.println (buttonPressed) ؛ }}

الخطوة 2: أضف Micro Servo

أضف المايكرو سيرفو
أضف المايكرو سيرفو
أضف المايكرو سيرفو
أضف المايكرو سيرفو

الآن دعونا نضيف محرك سيرفو. من السهل حقًا إضافة هذا إلى مشروعنا الحالي نظرًا لأن الخادم الصغير يحتوي على ثلاثة أسلاك فقط.

  • يذهب السلك البني إلى قضيب التأريض على اللوح
  • يذهب الأحمر إلى سكة الطاقة
  • يذهب Orange إلى Pin 3 على Arduino. تذكر أن الخادم الصغير يجب أن يحتوي على دبوس PWM على Arduino. هذا يرجع إلى المؤازرة باستخدام TIMER2

الآن دعنا نتأكد فقط من أننا قمنا بتوصيل المؤازرة الدقيقة بشكل صحيح وأنه يتحرك

# تضمين # تضمين "Servo.h"

صفوف بايت const = 4 ؛ // أربعة صفوف منذ امتلاء لوحة المفاتيح

أعمدة بايت ثابت = 4 ؛ // أربعة أعمدة ، كما ورد أعلاه

أزرار الحرف [الصفوف] [الأعمدة] = {

{'1'، '2'، '3'، 'A'}، {'4'، '5'، '6'، 'B'}، {'7'، '8'، '9'، ' C '}، {' * '،' 0 '،' # '،' D '}} ؛

بايت rowP [rows] = {13، 12، 11، 10} ؛ // صف دبابيس لوحة المفاتيح

أعمدة البايت P [أعمدة] = {9 ، 8 ، 7 ، 6} ؛ // دبابيس عمود لوحة المفاتيح

لوحة المفاتيح = لوحة المفاتيح (جعل خريطة المفاتيح (أزرار) ، rowP ، أعمدة P ، صفوف ، أعمدة) ؛ // إنشاء لوحة المفاتيح

سيرفو الحالي // إنشاء كائن مؤازر للتحكم في المؤازرة

// يمكن إنشاء اثني عشر عنصرًا مؤازرًا في معظم اللوحات

عدد نقاط البيع = 0 ؛ // متغير لتخزين موضع المؤازرة

الإعداد باطل(){

Serial.begin (9600) ؛ currentServo.attach (3) ، // يعلق المؤازرة على الدبوس 9 بجسم المؤازرة

}

حلقة فارغة(){

char buttonPressed = pad.getKey () ؛ // احصل على الحرف من لوحة المفاتيح إذا (buttonPressed) // أظهر الزر الذي تم الضغط عليه على لوحة المفاتيح {Serial.println (buttonPressed) ؛ }

CurrentServo.write (95) ؛

}

الخطوة 3: قم بتعديل الرمز لاستخدام لوحة المفاتيح على الماكينة

اعلم أننا سنقوم بتعديل الكود الخاص بنا بحيث عندما نضغط على زر معين على لوحة المفاتيح ، تتحرك المؤازرة إلى موضع معين. شيء مهم أولا. كان موضع المؤازرة لـ 0 غريبًا. منذ أن كان لدي مؤازر تناوب مستمر ، كلما اقتربت من 0 ، بدأت المؤازرة في الدوران. كان الرقم الذي أدخلته في الكود منخفضًا بقدر ما يمكنني الذهاب إليه دون حدوث ذلك. على أي حال ، ها هي الكود النهائي الخاص بي:

# تضمين # تضمين

صفوف بايت const = 4 ؛ // أربعة صفوف منذ امتلاء لوحة المفاتيح

أعمدة بايت ثابت = 4 ؛ // أربعة أعمدة ، كما ورد أعلاه

أزرار الحرف [الصفوف] [الأعمدة] = {

{'1'، '2'، '3'، 'A'}، {'4'، '5'، '6'، 'B'}، {'7'، '8'، '9'، ' C '}، {' * '،' 0 '،' # '،' D '}} ؛

بايت rowP [rows] = {13، 12، 11، 10} ؛ // صف دبابيس لوحة المفاتيح

أعمدة البايت P [أعمدة] = {9 ، 8 ، 7 ، 6} ؛ // دبابيس عمود لوحة المفاتيح

لوحة المفاتيح = لوحة المفاتيح (جعل خريطة المفاتيح (أزرار) ، rowP ، أعمدة P ، صفوف ، أعمدة) ؛ // إنشاء لوحة المفاتيح

أجهزة myServo ؛ //

الإعداد باطل(){

Serial.begin (9600) ؛ myServo.attach (5) ، // يعلق المؤازرة على الطرف 9 بكائن المؤازرة}

حلقة فارغة(){

مفتاح char = pad.getKey () ؛ // احصل على الحرف من لوحة المفاتيح إذا (المفتاح == '0') {myServo.write (11) ؛ Serial.println ("0") ؛ تأخير (15) ؛ } إذا (key == '1') {myServo.write (12) ؛ Serial.println ("1") ؛ تأخير (15) ؛ } إذا (key == '2') {myServo.write (24) ؛ Serial.println ("2") ؛ تأخير (15) ؛ } إذا (key == '3') {myServo.write (36) ؛ Serial.println ("3") ؛ تأخير (15) ؛ }

إذا (مفتاح == '4')

{myServo.write (48) ؛ Serial.println ("4") ؛ تأخير (15) ؛ }

إذا (مفتاح == '5')

{myServo.write (60) ؛ Serial.println ("5") ؛ تأخير (15) ؛ }

إذا (مفتاح == '6')

{myServo.write (72) ؛ Serial.println ("6") ؛ تأخير (15) ؛ }

إذا (مفتاح == '7')

{myServo.write (84) ؛ Serial.println ("7") ؛ تأخير (15) ؛ }

إذا (مفتاح == '8')

{myServo.write (96) ؛ Serial.println ("8") ؛ تأخير (15) ؛ }

إذا (مفتاح == '9')

{myServo.write (108) ؛ Serial.println ("9") ؛ تأخير (15) ؛ }

إذا (مفتاح == '*')

{myServo.write (120) ؛ Serial.println ("*") ؛ تأخير (15) ؛ }

إذا (مفتاح == '#')

{myServo.write (132) ؛ Serial.println ("#") ؛ تأخير (15) ؛ }

إذا (مفتاح == 'A')

{myServo.write (146) ؛ Serial.println ("A") ؛ تأخير (15) ؛ }

إذا (مفتاح == 'ب')

{myServo.write (158) ؛ Serial.println ("B") ؛ تأخير (15) ؛ }

إذا (مفتاح == 'C')

{myServo.write (170) ؛ Serial.println ("C") ؛ تأخير (15) ؛ }

إذا (مفتاح == 'D')

{myServo.write (180) ؛ Serial.println ("D") ؛ تأخير (15) ؛ }}

موصى به: