فهرست مطالب:

برنامه ریزی فوق العاده آسان!: 10 مرحله
برنامه ریزی فوق العاده آسان!: 10 مرحله

تصویری: برنامه ریزی فوق العاده آسان!: 10 مرحله

تصویری: برنامه ریزی فوق العاده آسان!: 10 مرحله
تصویری: یادگیری سریع و موثر با 10 تکنیک فوق العاده 2024, نوامبر
Anonim
Image
Image
برنامه نویسی فوق العاده آسان!
برنامه نویسی فوق العاده آسان!

امروز ، من در مورد STM32 Core ، L476RG ، که چهره Ultra Low Power است صحبت خواهم کرد. می توانید آن را در سمت چپ تصویر مشاهده کنید. این دستگاه دارای دو نوار پین زن ، یکی در هر طرف است که چیزی بیشتر از اتصالات سپر آردوینو نیست. این عالی است ، نه؟

به نظر من ، STMicroelectronics این کار را در کیت توسعه خود انجام داد زیرا می داند که متخصصان از این تراشه استفاده می کنند. این شرکت هر روز بیشتر به سمت arduino می رود. و این در مورد چندین کیت حرفه ای دیگر STMicroelectronics نیز صادق است.

سرانجام ، در مورد پروژه امروز ، ما از دو سنسور DS18b20 علاوه بر L476RG استفاده خواهیم کرد. بنابراین ما یک مونتاژ ساده با استفاده از L476RG ایجاد می کنیم ، یک کتابخانه را به محیط MBED وارد می کنیم ، یک برنامه در محیط MBED ایجاد می کنیم و داده ها را از L476RG از طریق USB / Serial دریافت می کنیم.

من قبلاً در این ویدئو کمی در مورد L476RG صحبت کرده ام: روش آسان تر برای برنامه نویسی میکروکنترلر ، که در آن نحوه پیکربندی محیط MBED را که به صورت آنلاین است نشان می دهم.

برخی از افرادی که ویدیوهای من را دنبال می کنند از من می پرسند آیا STM32 جایگزین ESP32 می شود؟ من یک چیز می گویم: جایگزین نمی شود و نمی تواند ، زیرا آنها دو چیز کاملاً متفاوت هستند.

این تراشه STM32 یک میکروکنترلر است یا بهتر بگوییم. این یک "مجموعه ای از چیزها" مانند ESP32 نیست. بنابراین ممکن است نام مشابه به نظر برسد ، اما آنها کاملاً متفاوت هستند. STM32 یک میکروکنترلر عمومی است ، برای مثال PIC ، Atmel.

مرحله 1: منابع مورد استفاده

منابع مورد استفاده
منابع مورد استفاده

1 هسته L476RG

2 سنسور DS18b20 (ما از ماژول های رایج ضد آب موجود در بازار استفاده می کنیم)

1 مقاومت 4k7

مینی پیش صفحه

جامپر برای اتصال

مرحله 2: مونتاژ

مونتاژ
مونتاژ

ما در ابتدا مونتاژ را با استفاده از یکی از سنسورهای دما انجام می دهیم.

قدرت آن 5 ولت خواهد بود.

از یک مقاومت 4k7 برای انجام کشش در خط داده (1-Wire) استفاده می شود.

ما داده ها را با استفاده از پین A0 می خوانیم.

مرحله 3: برنامه جدید در MBED

برنامه جدید در MBED
برنامه جدید در MBED
برنامه جدید در MBED
برنامه جدید در MBED
برنامه جدید در MBED
برنامه جدید در MBED

هنگامی که حساب خود را در MBED راه اندازی کردید و به آن دسترسی پیدا کردید ، ما یک برنامه جدید ایجاد می کنیم. برای انجام این کار ، روی "برنامه های من" راست کلیک کرده و "برنامه جدید …" را انتخاب کنید.

تأیید کنید که "Platform" با تابلوی مورد استفاده شما مطابقت دارد.

اکنون روی "الگو" کلیک می کنیم.

ما بر اساس مثال "نمایش پیام روی رایانه با استفاده از UART" برنامه ای ایجاد می کنیم.

نام برنامه را در "نام برنامه" وارد کنید.

گزینه "Update this program and libraries to latest revision" را علامت بزنید.

یک پوشه جدید برای برنامه شما ایجاد می شود که شامل کتابخانه پیش فرض MBED و فایل main.cpp می شود.

می توانید از آن برای آزمایش اینکه آیا همه چیز خوب کار می کند یا نه استفاده کنید. برای انجام این کار ، کافی است آن را کامپایل کرده و در پلت فرم کپی کنید.

با استفاده از ترمینال سریال دلخواه می توانید پیام های زیر را دریافت کنید.

مرحله 4: وارد کردن کتابخانه DS18b20

وارد کردن کتابخانه DS18b20
وارد کردن کتابخانه DS18b20

از آنجا که چندین نسخه از کتابخانه ها برای Ds18b20 وجود دارد ، ما با استفاده از url وارد می کنیم تا مثال شما از همان کتابخانه استفاده کند.

مرحله 5: برنامه جدید در MBED

برنامه جدید در MBED
برنامه جدید در MBED
برنامه جدید در MBED
برنامه جدید در MBED

در قسمت "نشانی وب منبع": https://os.mbed.com/users/Sissors/code/DS1820/ را وارد کرده و روی وارد کردن کلیک کنید.

کتابخانه DS1820 شما باید در پوشه برنامه شما ظاهر شود.

مرحله 6: کد منبع

شامل می شود

ما کار خود را با درج کتابخانه های لازم آغاز کردیم.

#شامل "mbed.h" // شامل biblioteca padrão do MBED#شامل "DS1820.h" // inclusão da biblioteca do sensor DS1820

ما ثابت هایی را تعریف می کنیم که نشان دهنده پین های مورد استفاده است.

توجه داشته باشید که DS18b20 یک سنسور با ارتباط 1-WIRE است. به همین دلیل ، ما از کتابخانه ای استفاده می کنیم که کل پروتکل ارتباط با دستگاه ها را اداره می کند. این شامل شناسایی هر دستگاه تا دستورات خواندن است.

#تعریف PINO_DE_DADOS A0 // تعریف o pino para leitura dos dados#define MAX_SENSORES 16 // تعریف تعداد نامحدود برای o veor 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 sensores sensor [encontrados] = جدید DS1820 (PINO_DE_DADOS) ؛ // cria uma instancia para o sensor encontrado encontrados ++؛ if (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)؛ while (1) {sensor [0]-> convertTemperature (true ، DS1820:: all_devices) ؛ // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0؛ itemperature ())؛ // به به e retorna a temperatura printf ("\ r / n")؛ صبر کنید (1) ؛ }

مرحله 7: داده های دریافت شده

اطلاعات دریافت شد
اطلاعات دریافت شد

با استفاده از یک سنسور ، خروجی سریال زیر را بدست می آوریم.

مرحله 8: شامل سنسورهای بیشتر

از جمله سنسورهای بیشتر
از جمله سنسورهای بیشتر
از جمله سنسورهای بیشتر
از جمله سنسورهای بیشتر

برای آزمایش کد ، سنسور دیگری را در خط ارتباط معرفی می کنیم ، به سادگی با اتصال آن به موازات سنسور اول.

به یاد داشته باشید که قبل از اتصال سنسورهای جدید ، مجموعه را خاموش کنید.

هنگام راه اندازی مجدد مونتاژ ، خروجی زیر را بدون هیچ تغییری در کد منبع بدست آوردیم.

مرحله 9: مشاهده منبع

#شامل "mbed.h" // شامل biblioteca padrão do MBED #شامل "DS1820.h" // شامل کتابخانه برای انجام حسگر DS1820 #تعریف PINO_DE_DADOS A0 // تعریف pino para leitura dos dados #define MAX_SENSORES 16 // تعریف o número máximo para or veter de sensores DS1820* sensor [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 sensores sensor [encontrados] = جدید DS1820 (PINO_DE_DADOS) ؛ // cria uma instancia para o sensor encontrado encontrados ++؛ if (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break؛ } printf ("Dispositivos encontrado (s):٪ d / r / n / n"، encontrados)؛ while (1) {sensor [0]-> convertTemperature (true ، DS1820:: all_devices) ؛ // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0؛ itemperature ())؛ // به به e retorna a temperatura printf ("\ r / n")؛ صبر کنید (1) ؛ }}

مرحله 10: فایل ها

PDF

دیگران

توصیه شده: