» إلكترونيات » اردوينو »اردوينو للمبتدئين

اردوينو للمبتدئين


اردوينو هي لوحة متحكم يمكنك برمجتها للتحكم في الأجهزة الخارجية. يتفاعل مع العالم الخارجي من خلال أجهزة الاستشعار والمحركات ومصابيح LED ومكبرات الصوت ... وحتى الإنترنت ، مما يجعله منصة مرنة لمختلف المشاريع. هناك عدد غير قليل من المتحكمات الدقيقة ، لكن Arduino تحظى بشعبية كبيرة نظرًا لأن العديد من المشاريع يتم تخطيطها ومناقشتها بنشاط على الإنترنت. إذا كنت تبحث على google أو youtube ، ستجد ملايين الأفكار والمعلومات لبدء استكشاف Arduino بنفسك.
حتى إذا لم تكن لديك خبرة في برمجة الميكروكونترولر - مع Arduino ، ستتعلم بسرعة وتتعلم شيئًا عنه الإلكترونيات باستخدام التجارب.

ماذا تحتاج لتبدأ؟
اردوينو أونو- 1 قطعة
كابل يو اس بي -1 قطعة
صداري 1 قطعة
1 قطع مجلس التنمية
الصمام الأحمر 4 قطع
220 أوم المقاوم 4 قطع
المقاوم 10 غرفة 1 قطعة
زر بدون تحديد
مقياس الجهد
RGB LED مع الكاثود المشترك

كل هذا يمكن شراؤه من متجر إذاعي محلي أو طلبه عبر الإنترنت.

تم استخدام جهاز محاكاة عبر الإنترنت لعرض ومحاكاة الدوائر الكهربائية.

يعمل هذا المحاكي بشكل أفضل في متصفح Chrome.
دعونا نلقي نظرة فاحصة على Arduino.

Arduino ليس جهاز كمبيوتر كبير يمكن للدوائر الخارجية الاتصال به. يستخدم Arduino Uno Atmega 328P
هذه أكبر شريحة على السبورة. تقوم هذه الشريحة بتنفيذ البرامج المخزنة في ذاكرتها. يمكنك تنزيل البرنامج عبر USB باستخدام Arduino IDE. يوفر منفذ USB أيضًا الطاقة لاردوينو.

يوجد موصل طاقة منفصل. هناك مخرجان على اللوحة ، 5v و 3.3v ، وهما مطلوبان لتشغيل الأجهزة المختلفة. ستجد أيضًا دبابيس مميزة على أنها GND ، هذه هي خيوط أرضية (الأرض 0V). تحتوي منصة Arduino أيضًا على 14 مخرجًا رقميًا (دبابيس) ، مميزة بأرقام من 0 إلى 13 ، مرتبطة بالعقد الخارجية ولها حالتان ، عالية أو منخفضة (تشغيل أو إيقاف). يمكن أن تعمل جهات الاتصال هذه كمخرجات أو كمدخلات ، أي يمكنهم إما إرسال بعض البيانات والتحكم في الأجهزة الخارجية ، أو تلقي البيانات من الأجهزة. الاستنتاجات التالية على اللوحة المعينة A0-A5. هذه مدخلات تناظرية يمكنها استقبال البيانات من أجهزة استشعار مختلفة. يعد هذا مناسبًا بشكل خاص عندما تحتاج إلى قياس نطاق ، مثل درجة الحرارة. تحتوي المدخلات التناظرية على وظائف إضافية يمكن تنشيطها بشكل منفصل.


كيفية استخدام اللوح.

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

تحتوي اللوح على صفوف من الثقوب يمكنك إدخال أجزاء وأسلاك. ترتبط بعض هذه الثقوب كهربائيًا ببعضها البعض.

يتم توصيل الصفين العلوي والسفلي في سلسلة على طول اللوحة بأكملها. تستخدم هذه الصفوف لتشغيل الدائرة. يمكن أن يكون 5v أو 3.3v ، ولكن على أي حال ، فإن أول شيء عليك القيام به هو توصيل 5v و GND باللوح ، كما هو موضح في الشكل. في بعض الأحيان يمكن مقاطعة اتصالات الصف هذه في منتصف اللوحة ، ثم إذا لزم الأمر ، يمكنك توصيلها ، كما هو موضح في الشكل.




يتم تجميع الثقوب المتبقية الموجودة في منتصف اللوحة في خمس فتحات. يتم استخدامها لتوصيل أجزاء الدائرة.

أول شيء نربطه بوحدة التحكم الدقيقة لدينا هو LED. يظهر مخطط التوصيل الكهربائي في الصورة.


لماذا أحتاج إلى المقاوم في الدائرة؟ في هذه الحالة ، فإنه يحد من التيار الذي يمر عبر LED. تم تصميم كل LED لتيار معين ، وإذا كان هذا التيار أكبر ، فسوف يفشل LED. اكتشف القيمة التي ينبغي أن يستخدمها المقاوم لقانون أوم. بالنسبة لأولئك الذين لا يعرفون أو نسيوا ، يقول قانون أوم أن هناك اعتماد خطي على التيار. أي أنه كلما زاد تطبيق الجهد على المقاوم ، كلما تدفق تيار أكثر من خلاله.
V = I * R
أين خامساالجهد عبر المقاوم
أنا- التيار من خلال المقاوم
ص- المقاومة موجودة.
أولاً ، نحتاج إلى معرفة الجهد عبر المقاوم. تحتوي معظم مصابيح LED مقاس 3 مم أو 5 مم التي ستستخدمها على جهد تشغيل 3 فولت. لذا ، على المقاوم نحتاج إلى سداد 5-3 = 2v.

ثم نحسب التيار المار عبر المقاوم.
تتوهج معظم مصابيح LED مقاس 3 و 5 مم بسطوع كامل عند تيار 20 مللي أمبير. يمكن لتيار أكثر من ذلك تعطيلها ، وسيقلل تيار أقل قوة سطوعها ، دون التسبب في أي ضرر.

لذلك ، نريد تشغيل LED في الدائرة 5v بحيث يكون لها تيار 20mA. نظرًا لأن جميع الأجزاء مدرجة في دائرة واحدة ، فسيكون للمقاومة أيضًا تيار 20 مللي أمبير.
نحصل
2 فولت = 20 مللي أمبير * R
2V = 0.02A * R
R = 100 أوم

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

أدخل الصمام في الفتحات الموجودة في منتصف اللوحة بحيث يتم توصيل طرفه الطويل بإحدى أطراف المقاوم. قم بتوصيل الطرف الثاني للمقاوم بـ 5V ، وقم بتوصيل الإخراج الثاني لمصباح LED بـ GND. يجب أن يضيء مصباح LED.

يرجى ملاحظة أن هناك اختلافًا في كيفية توصيل LED. يتدفق التيار من محطة أطول إلى محطة أقصر. في الرسم البياني يمكن تخيل أن التيار يتدفق في الاتجاه حيث يتم توجيه المثلث. حاول تقليب LED وسوف ترى أنه لن يضيء.

ولكن كيف تقوم بتوصيل المقاوم ، لا يوجد فرق على الإطلاق. يمكنك قلبه أو محاولة توصيله بمخرجات LED الأخرى ، لن يؤثر ذلك على تشغيل الدائرة. سيظل يحد من التيار من خلال LED.

تشريح رسم اردوينو.

تسمى برامج Arduino Sketch. تتكون من وظيفتين رئيسيتين. الوظيفة الإعداد والوظيفة حلقة
داخل هذه الوظيفة ستقوم بتعيين جميع الإعدادات الأساسية. ما هي الاستنتاجات التي ستعمل على المدخلات أو المخرجات ، أي المكتبات التي يجب توصيلها ، تهيئة المتغيرات. الوظيفة الإعداد () يبدأ مرة واحدة فقط أثناء الرسم ، عندما يبدأ البرنامج.
هذه هي الوظيفة الرئيسية التي يتم تنفيذها بعد الإعداد (). في الواقع ، هذا هو البرنامج نفسه. ستعمل هذه الوظيفة إلى أجل غير مسمى حتى تقوم بإيقاف تشغيل الطاقة.

اردوينو وامض LED




في هذا المثال ، سنقوم بتوصيل الدائرة مع LED بأحد دبابيس Arduino الرقمية وسنقوم بتشغيلها وإيقاف تشغيلها باستخدام البرنامج ، وسوف تتعلم أيضًا العديد من الوظائف المفيدة.



- يتم استخدام هذه الوظيفة في الإعداد () أجزاء من البرنامج ويعمل على تهيئة الاستنتاجات التي ستستخدمها كمدخلات (الإدخال) أو الخروج (خرج). لا يمكنك قراءة أو كتابة البيانات من الدبوس حتى تقوم بضبطها وفقًا لذلك pinMode. تحتوي هذه الوظيفة على حجتين: الرقم- هذا هو الرقم السري الذي ستستخدمه.

الوضع- يحدد كيفية عمل الدبوس. عند المدخل (الإدخال) أو الخروج (خرج). لإضاءة LED يجب أن نعطي إشارة من اردوينو للقيام بذلك ، نقوم بتكوين الدبوس للخروج.
- تعمل هذه الوظيفة على ضبط الحالة (الدولة) بينا (رقم التعريف الشخصي). هناك دولتان رئيسيتان (بشكل عام هناك 3) ، واحدة عالي، سيكون الدبوس 5 فولت ، والآخر هو منخفض وسيكون دبوس 0v. لذا ، لإضاءة LED ، نحتاج إلى تعيين مستوى عالٍ على الدبوس المتصل بـ LED عالي.

- تأخير. يعمل على تأخير البرنامج لمدة محددة في مللي ثانية.
يوجد أدناه الرمز الذي يتسبب في وميض LED.
// LED Blink

int ledPin = 7 ؛ // دبوس Arduino الذي يتصل به LED

إعداد باطل () {
  pinMode (ledPin ، OUTPUT) ؛ // تعيين الدبوس على أنه EXIT
}}

حلقة فارغة () {
  digitalWrite (ledPin، HIGH) ؛ // light the LED
  تأخير (1000) ؛ // تأخير 1000 مللي ثانية (1 ثانية)
  digitalWrite (ledPin، LOW)؛ // أوقف تشغيل الـ LED
  تأخير (1000) ؛ // انتظر 1 ثانية
}}


شرح صغير عن الكود.
الخطوط التي تبدأ بـ "//" هي تعليقات من Arduino تتجاهلها.
تنتهي جميع الأوامر بفاصلة منقوطة ؛ إذا نسيتها ، ستتلقى رسالة خطأ.

ledpinمتغير. تستخدم المتغيرات في البرامج لتخزين القيم. في هذا المثال ، المتغير ledpin تم تعيين قيمة 7 ، هذا هو الرقم السري لـ Arduino. عندما يواجه Arduino في البرنامج سلسلة ذات متغير ledpin ، سيستخدم القيمة التي حددناها سابقًا.
لذا سجل pinMode (ledPin ، OUTPUT) على غرار التسجيل pinMode (7 ، OUTPUT).
ولكن في الحالة الأولى ، يكفي تغيير المتغير وسيتغير في كل سطر يتم استخدامه ، وفي الحالة الثانية ، من أجل تغيير المتغير ، يجب عليك إجراء تغييرات في الأقلام في كل أمر.

في السطر الأول يشير إلى نوع المتغير. عند برمجة Arduino ، من المهم أن تعلن دائمًا عن نوع المتغيرات. في الوقت الحالي ، ما عليك سوى معرفة ذلك INT تعلن عن أرقام سلبية وإيجابية.
ويرد أدناه النمذجة رسم. اضغط على ابدأ لعرض تشغيل الدائرة.



كما هو متوقع ، ينطفئ مصباح LED ويضيء بعد ثانية واحدة. حاول تغيير التأخير لمعرفة كيف يعمل.

إدارة العديد من المصابيح.

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



لتشغيل وإيقاف تشغيل مصابيح LED ، تحتاج إلى كتابة برنامج مثل هذا:
// وميض LED متعدد

int led1Pin = 4 ؛
int led2Pin = 5 ؛
int led3Pin = 6 ؛
int led4Pin = 7 ؛

إعداد باطل () {
  // تعيين الدبابيس على أنها EXIT
  pinMode (led1Pin و OUTPUT) ؛
  pinMode (led2Pin و OUTPUT) ؛
  pinMode (led3Pin ، OUTPUT) ؛
  pinMode (led4Pin ، OUTPUT) ؛
}}

حلقة فارغة () {
  digitalWrite (led1Pin، HIGH) ؛ // light the LED
  تأخير (1000) ؛ // تأخير 1 ثانية
  digitalWrite (led1Pin، LOW) ؛ // اخماد LED
  تأخير (1000) ؛ // تأخير 1 ثانية

  // افعل الشيء نفسه بالنسبة لمصابيح LED الثلاثة الأخرى
  digitalWrite (led2Pin، HIGH) ؛ // light of LED
  تأخير (1000) ؛ // تأخير 1 ثانية
  digitalWrite (led2Pin، LOW) ؛ // اخماد LED
  تأخير (1000) ؛ // تأخير 1 ثانية

  digitalWrite (led3Pin، HIGH) ؛ // light the LED
  تأخير (1000) ؛ // تأخير 1 ثانية
  digitalWrite (led3Pin، LOW) ؛ // اخماد LED
  تأخير (1000) ؛ // تأخير 1 ثانية

  digitalWrite (led4Pin، HIGH) ؛ // light the LED
  تأخير (1000) ؛ // تأخير 1 ثانية
  digitalWrite (led4Pin، LOW) ؛ // اخماد LED
  تأخير (1000) ؛ // تأخير 1 ثانية
}}


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

الكتابة الرقمية (led4Pin و HIGH) ؛
تأخير (1000) ؛
الكتابة الرقمية (led4Pin، LOW) ؛
تأخير (1000) ؛ 

رمز رسم كامل في المرفق for.zip [720 ب] (التنزيلات: 1410)

تعديل سطوع الصمام

في بعض الأحيان ، ستحتاج إلى تغيير سطوع مصابيح LED في البرنامج. يمكن القيام بذلك باستخدام الأمر analogWrite (). يعمل هذا الأمر على تشغيل وإيقاف تشغيل LED بسرعة كبيرة بحيث لا ترى العين هذا الوميض. إذا كان LED يضيء نصف الوقت والنصف الآخر ، فسيبدو مرئيًا أنه يتوهج بنصف سطوعه. وهذا ما يسمى تعديل عرض النبضة (PWM أو PWM باللغة الإنجليزية). يتم استخدام PWM في كثير من الأحيان ، حيث يمكن استخدامه للتحكم في المكون "التناظري" باستخدام رمز رقمي. ليست كل دبابيس Arduino مناسبة لهذه الأغراض. فقط تلك الاستنتاجات التي يتم رسم مثل هذا التصنيف "~"سترى بجانب الدبابيس 3،5،6،9،10،11.
قم بتوصيل أحد مصابيح LED الخاصة بك بأحد مخرجات PWM (للمؤلف ، هذا هو دبوس 9). الآن قم بتشغيل رسم LED الوامض ، ولكن قم أولاً بتغيير الأمر الكتابة الرقمية () على analogWrite (). analogWrite () لديها وسيطتان: الأولى هي رقم الدبوس ، والثانية هي قيمة PWM (0-255) ، كما يتم تطبيقها على مصابيح LED ، سيكون هذا سطوعها ، وبالنسبة للمحركات الكهربائية ، سرعة الدوران. يوجد أدناه رمز مثال لسطوع LED مختلف.
// تغيير سطوع LED

int ledPin = 9؛ // LED متصل بهذا الدبوس
إعداد باطل () {
  pinMode (ledPin ، OUTPUT) ؛ // تهيئة الدبوس للإخراج
}}

حلقة فارغة () {
  analogWrite (ledPin ، 255) ؛ // سطوع كامل (255/255 = 1)
  تأخير (1000) ؛ // وقفة 1 ثانية
  digitalWrite (ledPin، LOW) ؛ // قم بإيقاف تشغيل LED
  تأخير (1000) ؛ // وقفة 1 ثانية

  analogWrite (ledPin ، 191) ؛ // السطوع عند 3/4 (191/255 ~ = 0.75)
  تأخير (1000) ؛ // وقفة 1 ثانية
  digitalWrite (ledPin، LOW) ؛ // قم بإيقاف تشغيل LED
  تأخير (1000) ؛ // وقفة 1 ثانية

  analogWrite (ledPin ، 127) ؛ // نصف السطوع (127/255 ~ = 0.5)
  تأخير (1000) ؛ // وقفة 1 ثانية
  digitalWrite (ledPin، LOW) ؛ // قم بإيقاف تشغيل LED
  تأخير (1000) ؛ // وقفة 1 ثانية

  analogWrite (ledPin، 63)؛ // ربع السطوع (63/255 ~ = 0.25)
  تأخير (1000) ؛ // وقفة 1 ثانية
  digitalWrite (ledPin، LOW) ؛ // قم بإيقاف تشغيل LED
  تأخير (1000) ؛ // وقفة 1 ثانية
}}


حاول تغيير قيمة PWM في الأمر analogWrite ()لترى كيف تؤثر على السطوع.
بعد ذلك ، ستتعلم كيفية ضبط السطوع بسلاسة من الصفر إلى الصفر. يمكنك بالطبع نسخ قطعة من الكود 255 مرة
analogWrite (ledPin ، السطوع) ؛
تأخير (5) ؛ // تأخير قصير
السطوع = السطوع + 1 ؛

لكن ، أنت تفهم - لن يكون ذلك عمليًا. للقيام بذلك ، من الأفضل استخدام حلقة FOR التي تم استخدامها سابقًا.
يستخدم المثال التالي دورتين ، واحدة لتقليل السطوع من 255 إلى 0
(السطوع = 0 ؛ السطوع = 0 ؛ السطوع -) {

analogWrite (ledPin ، السطوع) ؛
تأخير (5) ؛

}}

تأخير (5) يستخدم لإبطاء معدل صعود وهبوط السطوع 5 * 256 = 1280 مللي ثانية = 1.28 ثانية.)
يستخدم السطر الأول "سطوع-"بحيث تنخفض قيمة السطوع بمقدار 1 ، في كل مرة تتكرر فيها الدورة. يُرجى ملاحظة أن الدورة ستعمل طالما السطوع> = 0استبدال اللافتة > على اللافتة >= قمنا بتضمين 0 في نطاق السطوع. تم رسم هذا الرسم التخطيطي أدناه.
// تغيير السطوع بسلاسة

int ledPin = 9 ؛ // LED متصل بهذا الدبوس

إعداد باطل () {
  pinMode (ledPin ، OUTPUT) ؛ // تهيئة الدبوس للخروج
}}

حلقة فارغة () {
  // زيادة السطوع تدريجيًا (من 0 إلى 255)
  (السطوع = 0 ؛ السطوع = 0 ؛ السطوع -) {
    analogWrite (ledPin ، السطوع) ؛
    تأخير (5) ؛
  }}

  تأخير (1000) ؛ // انتظر 1 ثانية
 // تقليل السطوع بسلاسة (255 إلى 0)
  for (السطوع int = 255 ؛ السطوع> = 0 ؛ السطوع -) {
    analogWrite (ledPin ، السطوع) ؛
    تأخير (5) ؛
  }}

  تأخير (1000) ؛ // انتظر 1 ثانية
}}
}}

هذا ليس واضحًا جدًا ، لكن الفكرة واضحة.



RGB LED و Arduino

إن RGB LED هو في الواقع ثلاثة مصابيح LED بألوان مختلفة في مبيت واحد.



بما في ذلك مصابيح LED مختلفة مع سطوع مختلف ، يمكنك الجمع والحصول على ألوان مختلفة. بالنسبة إلى Arduino ، حيث يبلغ عدد تدرجات السطوع 256 ، تحصل على 256 ^ 3 = 16581375 لونًا ممكنًا. في الواقع ، بالطبع ، سيكون هناك عدد أقل منهم.
الصمام الذي سنستخدمه هو الكاثود الشائع. على سبيل المثال جميع المصابيح الثلاثة متصلة بنيوياً بواسطة الكاثودات إلى طرف واحد. سنقوم بتوصيل هذا الدبوس بدبوس GND. يجب توصيل المحطات المتبقية ، من خلال المقاومات المحددة ، بأطراف PWM. استخدم المؤلف الاستنتاجات 9-11 ، وبالتالي ، سيكون من الممكن التحكم في كل LED بشكل منفصل. يوضح الرسم الأول كيفية تشغيل كل LED بشكل منفصل.



// RGB LED - اختبار

// اتصالات دبوس
int red = 9 ؛
int أخضر = 10 ؛
int أزرق = 11 ؛

إعداد باطل () {
  pinMode (أحمر ، مخرج) ؛
  pinMode (أزرق ، OUTPUT) ؛
  pinMode (أخضر ، OUTPUT) ؛
}}

حلقة فارغة () {
  // تشغيل / إيقاف تشغيل مؤشر LED الأحمر
  الكتابة الرقمية (أحمر ، عالي) ؛
  تأخير (500) ؛
  الكتابة الرقمية (أحمر ، منخفض) ؛
  تأخير (500) ؛
  
  // تشغيل / إيقاف تشغيل مؤشر LED الأخضر
  الكتابة الرقمية (خضراء ، عالية) ؛
  تأخير (500) ؛
  الكتابة الرقمية (أخضر ، منخفض) ؛
  تأخير (500) ؛

  // تشغيل / إيقاف تشغيل مؤشر LED الأزرق
  الكتابة الرقمية (أزرق ، عالي) ؛
  تأخير (500) ؛
  الكتابة الرقمية (أزرق ، منخفض) ؛
  تأخير (500) ؛
}}


يستخدم المثال التالي الأوامر analogWrite () وللحصول على قيم سطوع عشوائية مختلفة لمصابيح LED. سترى ألوان مختلفة تتغير بشكل عشوائي.
// RGB LED - ألوان عشوائية

// اتصالات دبوس
int red = 9 ؛
int أخضر = 10 ؛
int أزرق = 11 ؛
إعداد باطل () {
  pinMode (أحمر ، مخرج) ؛
  pinMode (أزرق ، OUTPUT) ؛
  pinMode (أخضر ، OUTPUT) ؛
}}
حلقة فارغة () {
  // اختر لونًا عشوائيًا
  analogWrite (أحمر ، عشوائي (256)) ؛
  analogWrite (أزرق ، عشوائي (256)) ؛
  analogWrite (أخضر ، عشوائي (256)) ؛
  تأخير (1000) ؛ // انتظر ثانية واحدة
}}


عشوائي (256)-إرجاع رقم عشوائي في النطاق من 0 إلى 255.
يوجد في الملف المرفق رسم يوضح التحولات السلسة للألوان من الأحمر إلى الأخضر ، ثم إلى الأزرق والأحمر والأخضر ، إلخ. انتقالات. zip [373 ب] (التنزيلات: 386)
يعمل مثال رسم تخطيطي ، ولكن هناك الكثير من التعليمات البرمجية المكررة. يمكنك تبسيط الشفرة بكتابة وظيفة المساعد الخاصة بك ، والتي ستغير لونًا إلى آخر بسلاسة.
إليك ما ستبدو عليه: function.zip [263 ب] (التنزيلات: 420)
دعونا نلقي نظرة على تعريف دالة في أجزاء. تم استدعاء الوظيفة ترويسة وله حجتان. يتم فصل كل وسيطة بفاصلة ولها نوع معلن في السطر الأول من تعريف الدالة: خافت الفراغ (int color1 ، int color2). ترى أن كلا الحجج معلنة عدد، وقد أعطيت أسماء اللون 1 و اللون 2 كمتغيرات شرطية لتحديد دالة. باطل يعني أن الدالة لا ترجع أي قيم ، فهي ببساطة تنفذ الأوامر. إذا كان من الضروري كتابة دالة ترجع نتيجة الضرب ، فستبدو كما يلي:
مضاعف int (int number1، int number2) {

المنتج int = number1 * number2 ؛
عودة المنتج ؛

}} 

لاحظ كيف أعلنا عن النوع عدد كنوع إرجاع بدلاً من ذلك
باطل.
داخل الوظيفة توجد أوامر استخدمتها بالفعل في الرسم السابق ، تم استبدال أرقام الدبوس فقط اللون 1 و اللون 2. تم استدعاء الوظيفة ترويسة، يتم حساب حججه على النحو color1 = أحمر و color2 = أخضر. أرشيف كامل للرسم باستخدام الوظائف وظائف. zip [392 ب] (التنزيلات: 320)

زر

في الرسم التالي ، سيتم استخدام زر به جهات اتصال مفتوحة بشكل طبيعي ، دون إصلاح.

اردوينو للمبتدئين

هذا يعني أنه أثناء عدم الضغط على الزر ، لا يتدفق التيار من خلاله ، وبعد تحريره ، يعود الزر إلى موضعه الأصلي.
في الدائرة ، بالإضافة إلى الزر ، يتم استخدام المقاوم. في هذه الحالة ، لا يحد من التيار ، ولكن "يسحب" الزر إلى 0v (GND). على سبيل المثال حتى يتم الضغط على الزر الموجود على دبوس Arduino الذي يتصل به ، سيكون المستوى منخفضًا. المقاوم المستخدم في دائرة 10 كيلو أوم.

// تحديد النقر على الزر
int buttonPin = 7 ؛
إعداد باطل () {
  pinMode (buttonPin ، INPUT) ؛ // تهيئة دبوس الإدخال
  Serial.begin (9600) ؛ // تهيئة المنفذ التسلسلي
}}
حلقة فارغة () {
  if (digitalRead (buttonPin) == HIGH) {// إذا تم الضغط على الزر
    Serial.println ("مضغوط") ؛ // طباعة "مضغوط"
  } آخر {
    Serial.println ("unpressed")؛ // وإلا "unpressed"
  }}
}}

هناك العديد من الفرق الجديدة في هذا الرسم.
-هذا الأمر يأخذ قيمة عالية (مستوى عالي) ومنخفض (مستوى منخفض) من الناتج الذي نتحقق منه. سابقًا ، في الإعداد () ، يجب تكوين هذا الإخراج للإدخال.
؛ // where buttonPin هو رقم الدبوس الذي يتصل به الزر.
يسمح لك المنفذ التسلسلي بإرسال رسائل Arduino إلى الكمبيوتر ، بينما تقوم وحدة التحكم نفسها بتشغيل البرنامج. يفيد ذلك في تصحيح أخطاء برنامج ، وإرسال رسائل إلى أجهزة أو تطبيقات أخرى. لتمكين نقل البيانات عبر المنفذ التسلسلي (المعروف أيضًا باسم UART أو USART) ، يجب عليك تهيئته في الإعداد ()

المسلسل يبدأ () لديها حجة واحدة فقط هي معدل نقل البيانات بين Arduino والكمبيوتر.
رسم تخطيطي ، يتم استخدام أمر لعرض رسالة على الشاشة في Arduino IDE (Tools >> Serial Monitor).
- يتيح لك التصميم التحكم في تقدم البرنامج من خلال الجمع بين عدة فحوصات في مكان واحد.
إذا أعاد (إذا كان) digitalRead مرتفعًا ، فسيتم عرض كلمة "ضغط" على الشاشة. آخر (وإلا) يتم عرض كلمة "ضغط" على الشاشة. الآن يمكنك محاولة تشغيل وإيقاف تشغيل LED بلمسة زر واحدة.
// كشف الضغط على زر مع إخراج LED
int buttonPin = 7 ؛
int ledPin = 8 ؛
إعداد باطل () {
  pinMode (buttonPin ، INPUT) ؛ // هذه المرة سنقوم بتعيين دبوس الزر على أنه INPUT
  pinMode (ledPin ، OUTPUT) ؛
  Serial.begin (9600) ؛
}}
حلقة فارغة () {
  if (digitalRead (buttonPin) == HIGH) {
    الكتابة الرقمية (ledPin ، عالية) ؛
    Serial.println ("مضغوط") ؛
  } آخر {
    الكتابة الرقمية (ledPin ، LOW) ؛
    Serial.println ("غير مضغوط") ؛
  }}
}}


المدخلات التناظرية.

تمثيليقراءة يسمح لك بقراءة البيانات من أحد دبابيس Arduino التناظرية ويعرض قيمة في النطاق من 0 (0V) إلى 1023 (5V). إذا كان الجهد عند الإدخال التناظري 2.5 فولت ، فسيتم طباعة 2.5 / 5 * 1023 = 512
تمثيليقراءة له وسيطة واحدة فقط - هذا هو رقم الإدخال التناظري (A0-A5). يوفر الرسم التالي رمزًا لقراءة الجهد من مقياس الجهد. للقيام بذلك ، قم بتوصيل المقاوم المتغير ، والدبابيس المتطرفة بالدبابيس 5V و GND ، والدبوس الأوسط للإدخال A0.


قم بتشغيل الكود التالي وابحث في جهاز العرض التسلسلي عن كيفية تغير القيم اعتمادًا على دوران مقبض المقاوم.
// الإدخال التناظري

int potPin = A0؛ // يتم توصيل الإخراج المركزي لمقياس الجهد بهذا الدبوس

إعداد باطل () {
  // يتم تمكين الدبوس التناظري عن طريق الإدخال بشكل افتراضي ، لذلك لا يلزم التهيئة
  Serial.begin (9600) ؛
}}

حلقة فارغة () {
  int potVal = analogRead (potPin) ؛ // potVal هو رقم بين 0 و 1023
  Serial.println (potVal) ؛
}}

يجمع الرسم التالي بين رسم النقر بالزر ورسم التحكم في سطوع LED. سيتم تشغيل LED من الزر ، وسيتحكم مقياس الجهد في سطوع التوهج.
// كشف الضغط على زر مع إخراج LED وكثافة متغيرة
int buttonPin = 7 ؛
int ledPin = 9 ؛
int potPin = A0 ؛
إعداد باطل () {
  pinMode (buttonPin ، INPUT) ؛
  pinMode (ledPin ، OUTPUT) ؛
  Serial.begin (9600) ؛
}}
حلقة فارغة () {
  if (digitalRead (buttonPin) == HIGH) {// if الضغط على الزر
    int analogVal = analogRead (potPin) ؛
    int scaledVal = map (analogVal، 0، 1023، 0، 255) ؛
    analogWrite (ledPin ، scaledVal) ؛ // قم بتشغيل الصمام مع شدة محددة من قبل وعاء
    Serial.println ("مضغوط") ؛
  } آخر {
    digitalWrite (ledPin، LOW)؛ // أوقف التشغيل إذا لم يتم الضغط على الزر
    Serial.println ("غير مضغوط") ؛
  }}
}}
8.7
9
9

أضف تعليقًا

    • ابتسميبتسمxaxaحسنًالا أعرفياهونيا
      رئيسهالصفرأحمقنعمنعم نعمعدوانيسر
      آسفارقصرقص 2رقص 3العفومساعدةالمشروبات
      توقفالأصدقاءجيدجيدصفارة الحكمإغماءلسان
      دخانالتصفيقصرخةيعلنمشتقعدم الإشارةتنزيل
      الحرارةغاضبتضحك 1mdaاجتماعالمسكسلبي
      not_iالفشارمعاقبةاقرأتخويفيخيفبحث
      ساخرشكرا لكهذاtoclclumnikحادتوافق
      سيءالنحلblack_eyeblum3استحىتباهىالملل
      للرقابةإرضاءسر 2تهددانتصاريونظارة شمس
      صدمةتنفسههههساداهلا وسهلاكروتويya_za
      ya_dobryiالمساعدne_huliganne_othodiحمىحظرقريب
4 تعليق
هذه هي الطريقة التي تعمل بها - // زيادة السطوع تدريجيًا (0 إلى 255)
لـ (السطوع int = 0 ؛ السطوع <= 255 ؛ السطوع ++) {
analogWrite (ledPin ، السطوع) ؛
تأخير (5) ؛
في تجميع يعطي خطأ اردوينو: 1.6.5 (Windows 7) ، لوحة "Arduino Nano ، ATmega328"

sketch_sep20a: 25: خطأ: الإعلان المتوقع قبل الرمز المميز '}'
الإعلان المتوقع قبل الرمز المميز "}"
قمت بنسخ رسم الإشعال السلس.
يضيء مصباح LED الخاص بي بشكل حاد ، ولكنه يخرج بسلاسة.

اشرح من فضلك.
قمت بنسخ رسم الإشعال السلس.
يضيء مصباح LED الخاص بي بشكل حاد ، ولكنه يخرج بسلاسة.

اشرح من فضلك.

ننصحك بقراءة:

تسليمها للهاتف الذكي ...