جدول المحتويات:
- الخطوة 1: الموارد المستخدمة
- الخطوة 2: التجميع
- الخطوة الثالثة: برنامج جديد في MBED
- الخطوة 4: استيراد مكتبة DS18b20
- الخطوة الخامسة: برنامج جديد في MBED
- الخطوة 6: كود المصدر
- الخطوة 7: البيانات المتلقاة
- الخطوة 8: تضمين المزيد من أجهزة الاستشعار
- الخطوة 9: عرض المصدر
- الخطوة 10: الملفات
فيديو: برنامج سهل للغاية: 10 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
اليوم ، سأتحدث عن STM32 Core ، L476RG ، الذي يمثل واجهة Ultra Low Power. يمكنك رؤيته على يسار الصورة. يحتوي هذا الجهاز على قضيبين أنثيين ، أحدهما على كل جانب ، وهما ليسوا أكثر من موصلات لدرع اردوينو. هذا شيء عظيم ، أليس كذلك؟
في رأيي ، قامت STMicroelectronics بهذا في مجموعة أدوات التطوير الخاصة بها لأنها تعلم أن المحترفين يستخدمون هذه الشريحة. هذه الشركة تتجه أكثر فأكثر نحو اردوينو. وينطبق هذا أيضًا على العديد من مجموعات STMicroelectronics الاحترافية.
أخيرًا ، فيما يتعلق بمشروع اليوم ، سنستخدم جهازي استشعار DS18b20 بالإضافة إلى L476RG. لذلك سنقوم بتجميع بسيط باستخدام L476RG ، واستيراد مكتبة إلى بيئة MBED ، وإنشاء برنامج في بيئة MBED ، والحصول على البيانات من L476RG عبر USB / المسلسل.
لقد تحدثت بالفعل قليلاً عن L476RG في هذا الفيديو: الطريقة الأسهل لبرمجة وحدة تحكم دقيقة ، حيث أعرض كيفية تكوين بيئة MBED ، الموجودة على الإنترنت.
يسألني بعض الأشخاص الذين يتابعون مقاطع الفيديو الخاصة بي عما إذا كان STM32 يحل محل ESP32. أقول شيئًا واحدًا: إنه لا يحل محل ولا يمكن ، لأنهما شيئان مختلفان تمامًا.
شريحة STM32 هذه عبارة عن متحكم دقيق ، أو بالأحرى ؛ إنه ليس "مجموعة من الأشياء" كما هو الحال مع ESP32. لذلك قد يبدو الاسم متشابهًا ، لكنهما مختلفان تمامًا. STM32 هو متحكم دقيق للأغراض العامة ، مثل PIC ، و Atmel ، على سبيل المثال.
الخطوة 1: الموارد المستخدمة
1 كور L476RG
مستشعران DS18b20 (نستخدم وحدات مقاومة للماء الشائعة في السوق)
1 4k7 المقاوم
بروتوبورد صغير
صداري للاتصال
الخطوة 2: التجميع
سنقوم في البداية بالتجميع باستخدام أحد مستشعرات درجة الحرارة.
ستكون قوتها 5 فولت.
سيتم استخدام المقاوم 4k7 لإجراء سحب على خط البيانات (سلك واحد).
سنقرأ البيانات باستخدام دبوس A0.
الخطوة الثالثة: برنامج جديد في MBED
بمجرد إعداد حسابك في MBED والوصول إليه ، سننشئ برنامجًا جديدًا. للقيام بذلك ، انقر بزر الماوس الأيمن فوق "برامجي" وحدد "برنامج جديد …"
تأكد من أن "النظام الأساسي" يتوافق مع اللوحة التي تستخدمها.
نضغط الآن على "قالب".
سننشئ برنامجًا بناءً على المثال ، "عرض رسالة على الكمبيوتر باستخدام UART".
أدخل اسم البرنامج في "اسم البرنامج".
حدد خيار "تحديث هذا البرنامج والمكتبات لأحدث مراجعة".
سيتم إنشاء مجلد جديد لبرنامجك ، بما في ذلك مكتبة MBED الافتراضية وملف main.cpp.
يمكنك استخدامه لاختبار ما إذا كان كل شيء يعمل بشكل جيد. للقيام بذلك ، قم ببساطة بتجميعه ونسخه إلى النظام الأساسي.
باستخدام محطة تسلسلية من اختيارك ، يمكنك تلقي الرسائل التالية.
الخطوة 4: استيراد مكتبة DS18b20
نظرًا لوجود العديد من إصدارات المكتبات لـ Ds18b20 ، سنقوم بالاستيراد باستخدام عنوان url بحيث يستخدم المثال الخاص بك نفس المكتبة.
الخطوة الخامسة: برنامج جديد في MBED
في حقل "عنوان URL المصدر" ، قم بملء: https://os.mbed.com/users/Sissors/code/DS1820/ وانقر فوق استيراد.
يجب أن تظهر مكتبة DS1820 الخاصة بك في مجلد البرنامج الخاص بك.
الخطوة 6: كود المصدر
يشمل
بدأنا بتضمين المكتبات الضرورية.
# تضمين "mbed.h" // inclusão da biblioteca padrão do MBED # include "DS1820.h" // inclusão da biblioteca do sensor DS1820
نحدد الثوابت التي ستمثل الدبابيس المستخدمة.
لاحظ أن DS18b20 عبارة عن مستشعر به اتصال بسلك واحد. لهذا السبب ، نستخدم المكتبة التي ستتعامل مع بروتوكول الاتصال الكامل مع الأجهزة. يتضمن ذلك تحديد كل جهاز حتى أوامر القراءة.
#define PINO_DE_DADOS A0 // حدد o pino para leitura dos dados # حدد MAX_SENSORES 16 // حدد o número máximo para o vetor de sensores
نقوم بإنشاء متجه يشير إلى كل من الأجهزة الـ 16 المحتملة المتصلة بخط البيانات.
مستشعر DS1820 * [MAX_SENSORES] ؛ // cria um vetor com 16 posições para os sensores
نبدأ الطريقة الرئيسية () ، حيث باستخدام طريقة "unassignedProbe ()" الموجودة في مكتبة DS1820 ، نبحث عن جميع الأجهزة المتاحة في خط الاتصال.
نملأ متجه المستشعر بالمثيلات التي ستمثل كل من أجهزة الاستشعار المتاحة.
نقوم بذلك حتى يتم العثور على آخر واحد أو حتى نصل إلى الحد الأقصى وهو 16 مستشعرًا.
int main () {int encontrados = 0 ؛ while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensors sensor [encontrados] = DS1820 جديد (PINO_DE_DADOS) ؛ // cria uma instancia para o sensor encontrado encontrados ++ ؛ إذا (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break ؛ }
نرسل عدد المستشعرات الموجودة على الخط.
printf ("Dispositivos encontrado (s):٪ d / r / n / n"، encontrados) ؛
نبدأ حلقة لا نهائية ، ونطلب من جميع المستشعرات المتاحة أن تحسب درجات الحرارة الخاصة بكل منها ، ثم نكررها من خلال ناقل المستشعر عن طريق إرسال القراءات التي تم الحصول عليها.
printf ("Dispositivos encontrado (s):٪ d / r / n / n"، encontrados) ؛ بينما (1) {sensor [0] -> convertTemperature (true ، DS1820:: all_devices) ؛ // solicita a leitura de temodatura para todos os dispitivos encontrados for (int i = 0؛ itemperature ())؛ //… e retorna a Temperatura printf ("\ r / n")؛ انتظر (1) ؛ }
الخطوة 7: البيانات المتلقاة
باستخدام مستشعر واحد ، نحصل على الإخراج التسلسلي التالي.
الخطوة 8: تضمين المزيد من أجهزة الاستشعار
لاختبار الكود ، نقدم مستشعرًا آخر في خط الاتصال ، ببساطة عن طريق توصيله بالتوازي مع المستشعر الأول.
تذكر إيقاف تشغيل التجميع قبل توصيل أجهزة استشعار جديدة.
عند إعادة تشغيل التجميع ، حصلنا على المخرجات التالية ، دون أي تغييرات في الكود المصدري.
الخطوة 9: عرض المصدر
#include "mbed.h" // inclusão da biblioteca padrão do MBED # include "DS1820.h" // inclusão da biblioteca do sensor DS1820 #define PINO_DE_DADOS A0 // حدد o pino para leitura dos dados # تعريف MAX_SENSORES 16 // حدد o número máximo para o vetor de sensores DS1820 * مستشعر [MAX_SENSORES] ؛ // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0؛ while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensors sensor [encontrados] = DS1820 جديد (PINO_DE_DADOS) ؛ // cria uma instancia para o sensor encontrado encontrados ++ ؛ إذا (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break ؛ } printf ("Dispositivos encontrado (s):٪ d / r / n / n"، encontrados)؛ بينما (1) {sensor [0] -> convertTemperature (true ، DS1820:: all_devices) ؛ // solicita a leitura de temodatura para todos os dispitivos encontrados for (int i = 0؛ itemperature ())؛ //… e retorna a Temperatura printf ("\ r / n")؛ انتظر (1) ؛ }}
الخطوة 10: الملفات
بي دي إف
آحرون
موصى به:
ضوء مزاج كريستالي سهل للغاية: 6 خطوات
ضوء المزاج الكريستالي الفائق السهولة: مرحبًا صناع! هذا مشروع اردوينو سهل الخداع وسيعمل كأداة تعليمية بالإضافة إلى ضوء مزاج رائع. إنها بضع قطع فقط ، لذا يمكنك خفقها معًا في الوقت الذي تستغرقه لطباعة القاعدة. يقدم درسًا رائعًا
أساسيات المحرك - المفهوم سهل الفهم للغاية من خلال التجربة: 7 خطوات (بالصور)
أساسيات المحرك | المفهوم سهل الفهم للغاية من خلال التجربة: في هذا الدليل ، سأعلمك عن المبدأ الأساسي الأساسي للمحركات. تعمل جميع المحركات من حولنا على هذا المبدأ. حتى المولدات تعمل على بيان متبادل لهذه القاعدة أنا أتحدث عن اليد اليسرى لفليمينغ
سهل للغاية منخفض الطاقة BLE في الجزء 3 من Arduino - استبدال Nano V2 - Rev 3: 7 خطوات (مع صور)
سهل للغاية منخفض الطاقة BLE في Arduino الجزء 3 - استبدال Nano V2 - Rev 3: التحديث: 7 أبريل 2019 - Rev 3 من lp_BLE_TempHumidity ، ويضيف مؤامرات التاريخ / الوقت ، باستخدام pfodApp V3.0.362 + ، والاختناق التلقائي عند إرسال البيانات التحديث: 24 مارس 2019 - Rev 2 من lp_BLE_TempHumidity ، ويضيف المزيد من خيارات المؤامرة و i2c_ClearBus ، ويضيف GT832E
مقياس زلازل منزلي الصنع رخيص للغاية حساس للغاية: 8 خطوات (بالصور)
مقياس الزلازل الرخيص للغاية حساس للغاية محلي الصنع: سهل البناء ورخيص مقياس الزلازل Arduino الحساس
DIY MusiLED ، مصابيح LED متزامنة مع الموسيقى مع تطبيق Windows و Linux بنقرة واحدة (32 بت و 64 بت). سهل التجديد ، سهل الاستخدام ، سهل النقل: 3 خطوات
DIY MusiLED ، مصابيح LED متزامنة مع الموسيقى مع تطبيق Windows و Linux بنقرة واحدة (32 بت و 64 بت). سهل إعادة الإنشاء ، سهل الاستخدام ، سهل النقل: سيساعدك هذا المشروع على توصيل 18 مصباح LED (6 أحمر + 6 أزرق + 6 أصفر) بلوحة Arduino الخاصة بك وتحليل الإشارات في الوقت الفعلي لبطاقة الصوت بجهاز الكمبيوتر الخاص بك وترحيلها إلى مصابيح LED تضيئها وفقًا لتأثيرات الإيقاع (كمين ، قبعة عالية ، ركلة)