Mündəricat:

Proqramlaşdırmaq üçün inanılmaz dərəcədə asan!: 10 addım
Proqramlaşdırmaq üçün inanılmaz dərəcədə asan!: 10 addım

Video: Proqramlaşdırmaq üçün inanılmaz dərəcədə asan!: 10 addım

Video: Proqramlaşdırmaq üçün inanılmaz dərəcədə asan!: 10 addım
Video: Uğurlu insan olmaq üçün iradənizi gücləndirmənin sınanmış ən effektiv üsulları 2024, Noyabr
Anonim
Image
Image
Proqramlaşdırmaq üçün inanılmaz dərəcədə asan!
Proqramlaşdırmaq üçün inanılmaz dərəcədə asan!

Bu gün, Ultra Aşağı Gücün üzü olan L476RG STM32 Core haqqında danışacağam. Şəklin sol tərəfində görə bilərsiniz. Bu cihazın hər tərəfində biri arduino qalxanı üçün bağlayıcılardan başqa bir şey olmayan iki dişi pin çubuğu var. Bu əladır, elə deyilmi?

Fikrimcə, STMicroelectronics bunu İnkişaf etdirmə Kitində etdi, çünki mütəxəssislərin bu çipdən istifadə etdiyini bilir. Bu şirkət daha çox arduinoya doğru gedir. Və bu, bir neçə digər peşəkar STMicroelectronics dəstləri üçün də doğrudur.

Nəhayət, bu gün layihə ilə əlaqədar olaraq, L476RG -yə əlavə olaraq iki DS18b20 sensoru istifadə edəcəyik. Beləliklə, L476RG istifadə edərək sadə bir montaj edəcəyik, kitabxananı MBED mühitinə idxal edəcəyik, MBED mühitində bir proqram yaradacağıq və USB / Serial vasitəsilə L476RG -dən məlumat alacağıq.

Bu videoda L476RG haqqında bir az danışmışam: onlayn olan MBED mühitinin necə konfiqurasiya olunacağını göstərdiyim bir mikrokontrolörün proqramlaşdırılmasının daha asan yolu.

Videolarımı izləyən bəzi insanlar STM32 -nin ESP32 -ni əvəz edib -etmədiyini soruşurlar. Bir şeyi deyirəm: əvəz etmir və edə bilməz, çünki bunlar tamamilə fərqli iki şeydir.

Bu STM32 çipi bir mikro nəzarətçidir, daha doğrusu; ESP32 kimi "şeylər qrupu" deyil. Buna görə ad oxşar görünə bilər, amma tamamilə fərqlidir. STM32, məsələn, PIC, Atmel kimi ümumi məqsədli bir mikro nəzarətçidir.

Addım 1: İstifadə olunan mənbələr

İstifadə olunan mənbələr
İstifadə olunan mənbələr

1 Nüvəli L476RG

2 DS18b20 sensoru (bazarda ümumi su keçirməyən modullardan istifadə edirik)

1 4k7 rezistor

Mini protoboard

Bağlantı üçün tullananlar

Addım 2: Quraşdırma

Məclis
Məclis

Əvvəlcə montajı temperatur sensörlərindən birini istifadə edərək həyata keçirəcəyik.

Gücü 5V olacaq.

Məlumat xəttində (1-Tel) bir çəkmə aparmaq üçün 4k7 rezistoru istifadə ediləcək.

A0 pinindən istifadə edərək məlumatları oxuyacağıq.

Addım 3: MBED -də Yeni Proqram

MBED -də yeni proqram
MBED -də yeni proqram
MBED -də yeni proqram
MBED -də yeni proqram
MBED -də yeni proqram
MBED -də yeni proqram

Hesabınızı MBED -də qurduqdan və ona daxil olduqdan sonra yeni bir proqram yaradacağıq. Bunu etmək üçün "Proqramlarım" ı sağ vurun və "Yeni Proqram …" seçin.

"Platformanın" istifadə etdiyiniz lövhəyə uyğun olduğunu təsdiq edin.

İndi "Şablon" düyməsini basın.

"UART istifadə edərək kompüterdə bir mesaj göstər" nümunəsinə əsaslanaraq bir proqram yaradacağıq.

Proqramın adını "Proqram Adı" na daxil edin.

"Bu proqramı və kitabxanaları son versiyaya yeniləyin" seçimini yoxlayın.

Varsayılan MBED kitabxanası və main.cpp faylı daxil olmaqla proqramınız üçün yeni bir qovluq yaradılacaq.

Hər şeyin yaxşı işlədiyini yoxlamaq üçün istifadə edə bilərsiniz. Bunu etmək üçün sadəcə tərtib edin və platformaya kopyalayın.

İstədiyiniz serial terminaldan istifadə edərək aşağıdakı mesajları ala bilərsiniz.

Addım 4: DS18b20 Kitabxanasını idxal edin

DS18b20 Kitabxanasının idxalı
DS18b20 Kitabxanasının idxalı

Ds18b20 üçün kitabxanaların bir neçə versiyası olduğundan, nümunəniz eyni kitabxanadan istifadə etməsi üçün bir url istifadə edərək idxal edəcəyik.

Addım 5: MBED -də Yeni Proqram

MBED -də yeni proqram
MBED -də yeni proqram
MBED -də yeni proqram
MBED -də yeni proqram

"Mənbə URL" sahəsində: https://os.mbed.com/users/Sissors/code/DS1820/ doldurun və idxal edin.

DS1820 kitabxananız proqram qovluğunda görünməlidir.

Addım 6: Mənbə Kodu

Daxildir

Lazımi kitabxanaları daxil etməklə başladıq.

#"mbed.h" daxil edin // MBED daxil edin#"DS1820.h" daxil edin // DS1820 biblioteca sensoru daxil edin

İstifadə olunan sancaqları təmsil edəcək sabitləri təyin edirik.

DS18b20, 1-WIRE əlaqəsi olan bir sensordur. Bu səbəbdən, cihazlarla bütün ünsiyyət protokolunu idarə edəcək kitabxanadan istifadə edirik. Bura hər bir cihazın oxunan əmrlərə qədər təyin edilməsi daxildir.

#PINO_DE_DADOS A0 təyin edin // MAX_SENSORLARI müəyyən edin // sensorlar üçün müəyyən edin

Məlumat xəttinə bağlı 16 mümkün qurğunun hər birini göstərəcək bir vektor yaradırıq.

DS1820* sensoru [MAX_SENSORES]; // sensorlar üçün hər hansı bir məlumat əldə edə bilərsiniz

Əsas () metodunu işə salırıq, burada DS1820 kitabxanasında olan "unassignedProbe ()" metodundan istifadə edərək rabitə xəttindəki bütün mövcud cihazları axtarırıq.

Sensor vektorunu mövcud sensorların hər birini təmsil edəcək nümunələrlə doldururuq.

Bunu sonuncusu tapılana qədər və ya maksimum 16 sensora çatana qədər edirik.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// in sensia sensors sensorlar [encontrados] = yeni DS1820 (PINO_DE_DADOS); // sensorlar encontrado encontrados üçün ++; əgər (encontrados == MAX_SENSORES) // sensorlar pozulursa; }

Xəttdə tapılan sensorların sayını göndəririk.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados);

Sonsuz bir döngə başlatırıq, bütün mövcud sensorların müvafiq temperaturlarını hesablamalarını və sonra alınan oxunuşları göndərərək sensor vektoru vasitəsilə təkrarlamalarını tələb edirik.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {sensor [0]-> convertTemperature (doğru, DS1820:: all_devices); // (int i = 0; maddə istiliyi ()); //… bir temperatur temperaturu çapı ("\ r / n"); gözləyin (1); }

Addım 7: Məlumat Alındı

Məlumat Alındı
Məlumat Alındı

Tək bir sensordan istifadə edərək aşağıdakı serial çıxışı əldə edirik.

Addım 8: Daha çox sensorlar daxildir

Daha çox sensorlar daxildir
Daha çox sensorlar daxildir
Daha çox sensorlar daxildir
Daha çox sensorlar daxildir

Kodu sınamaq üçün, ilk sensora paralel olaraq bağlayaraq, əlaqə xəttinə başqa bir sensor təqdim edirik.

Yeni sensorlar bağlamadan əvvəl qurğunu söndürməyi unutmayın.

Montajı yenidən başladıqda mənbə kodunda heç bir dəyişiklik etmədən aşağıdakı nəticəni əldə etdik.

Addım 9: Mənbəyə baxın

#"mbed.h" daxil edin /MBED daxil edin #DS1820.h daxil edin // DS1820 biblioteca sensoru daxil edin #PINO_DE_DADOS A0 təyin edin // MAX_SENSORES 16 müəyyən edin DS1820* sensorlar üçün sensorlar [MAX_SENSORES]; // int 16 və ya daha çox sensorlar int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// in sensia sensorlar sensorlar [encontrados] = yeni DS1820 (PINO_DE_DADOS); // sensorlar encontrado encontrados üçün ++; əgər (encontrados == MAX_SENSORES) // sensorlar pozulursa; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {sensor [0]-> convertTemperature (doğru, DS1820:: all_devices); // (int i = 0; maddə istiliyi ()); //… e -poçt və temperatura çapı ("\ r / n"); gözləyin (1); }}

Addım 10: Fayllar

PDF

Digərləri

Tövsiyə: