Mundarija:

Dasturlash nihoyatda oson!: 10 qadam
Dasturlash nihoyatda oson!: 10 qadam

Video: Dasturlash nihoyatda oson!: 10 qadam

Video: Dasturlash nihoyatda oson!: 10 qadam
Video: Robocontest 479 | 10 ming qadam masalasi. C Dasturlash. 2024, Iyul
Anonim
Image
Image
Dasturlash nihoyatda oson!
Dasturlash nihoyatda oson!

Bugun men STM32 Core, L476RG, Ultra Low Power yuzi haqida gapiraman. Siz uni tasvirning chap tomonida ko'rishingiz mumkin. Ushbu qurilmada har bir tomonida ikkita urg'ochi pin bor, ular arduino qalqoni uchun ulagichlardan boshqa narsa emas. Bu ajoyib, to'g'rimi?

Menimcha, STMicroelectronics buni ishlab chiqish to'plamida qildi, chunki u bu chipni professionallar ishlatishini biladi. Bu kompaniya tobora ko'proq arduino tomon ketmoqda. Va bu boshqa STMicroelectronics professional to'plamlari uchun ham amal qiladi.

Va nihoyat, bugungi kunda loyihaga kelsak, biz L476RG -dan tashqari ikkita DS18b20 datchikdan foydalanamiz. Shunday qilib, biz L476RG yordamida oddiy yig'ilishni qilamiz, kutubxonani MBED muhitiga import qilamiz, MBED muhitida dastur tuzamiz va USB / Serial orqali L476RG dan ma'lumotlarni olamiz.

Men bu videoda L476RG haqida bir oz gaplashganman: MICROCONTROLLERNI PROGRAMLASHNING Osonroq YOli, bu erda men onlaynda joylashgan MBED muhitini qanday sozlashni ko'rsataman.

Videolarimni kuzatib borayotgan ba'zi odamlar mendan STM32 ESP32 o'rnini bosadimi, deb so'rashadi. Men bir narsani aytaman: u o'rnini bosa olmaydi va o'zgartira olmaydi, chunki ular ikki xil narsadir.

Bu STM32 chipi mikrokontroller, aniqrog'i; bu ESP32 kabi "narsalar to'plami" emas. Shunday qilib, ism o'xshash bo'lishi mumkin, lekin ular butunlay boshqacha. STM32 - bu umumiy maqsadli mikrokontroller, masalan, PIC, Atmel.

1 -qadam: Ishlatilgan manbalar

Ishlatilgan manbalar
Ishlatilgan manbalar

1 yadroli L476RG

2 ta DS18b20 sensori (biz bozorda keng tarqalgan suv o'tkazmaydigan modullardan foydalanamiz)

1 4k7 qarshilik

Mini protobloard

Ulanish uchun o'tish moslamalari

2 -qadam: yig'ish

O'rnatish
O'rnatish

Biz dastlab montajni harorat sensori yordamida amalga oshiramiz.

Uning kuchi 5 V bo'ladi.

Ma'lumot uzatish liniyasini (1-simli) tortish uchun 4k7 rezistor ishlatiladi.

Biz ma'lumotlarni A0 pin yordamida o'qiymiz.

3 -qadam: MBEDda yangi dastur

MBEDda yangi dastur
MBEDda yangi dastur
MBEDda yangi dastur
MBEDda yangi dastur
MBEDda yangi dastur
MBEDda yangi dastur

MBED -da hisob qaydnomangizni o'rnatganingizdan va unga kirganingizdan so'ng, biz yangi dastur yaratamiz. Buning uchun "Mening dasturlarim" ni o'ng tugmasini bosing va "Yangi dastur …" -ni tanlang.

"Platforma" siz foydalanayotgan taxtaga mos kelishini tasdiqlang.

Endi biz "Andoza" ni bosamiz.

Biz "UART yordamida kompyuterda xabarni ko'rsatish" misolida dastur yaratamiz.

"Dastur nomi" ga dastur nomini kiriting.

"Ushbu dastur va kutubxonalarni oxirgi versiyaga yangilash" variantini belgilang.

Sizning dasturingiz uchun yangi MBED kutubxonasi va main.cpp faylini o'z ichiga olgan yangi papka yaratiladi.

Siz hamma narsani yaxshi ishlayotganini tekshirish uchun ishlatishingiz mumkin. Buning uchun uni kompilyatsiya qilib, platformaga nusxalash kifoya.

Siz tanlagan ketma -ket terminaldan foydalanib, siz quyidagi xabarlarni qabul qilishingiz mumkin.

4 -qadam: DS18b20 kutubxonasini import qilish

DS18b20 kutubxonasini import qilish
DS18b20 kutubxonasini import qilish

Ds18b20 uchun kutubxonalarning bir nechta versiyalari mavjud bo'lgani uchun, biz url yordamida import qilamiz, shunda sizning namunangiz bir xil kutubxonadan foydalanadi.

5 -qadam: MBEDda yangi dastur

MBEDda yangi dastur
MBEDda yangi dastur
MBEDda yangi dastur
MBEDda yangi dastur

"Manba URL" maydoniga https://os.mbed.com/users/Sissors/code/DS1820/ to'ldiring va import tugmasini bosing.

Sizning DS1820 kutubxonangiz dastur papkasida ko'rinishi kerak.

6 -qadam: Manba kodi

O'z ichiga oladi

Biz kerakli kutubxonalarni qo'shishdan boshladik.

#"mbed.h" ni qo'shing // MBEDni ham o'z ichiga oladi#"DS1820.h" ni o'z ichiga oladi // DS1820 biblioteka sensorini ham o'z ichiga oladi.

Biz ishlatiladigan pinlarni ifodalovchi doimiylarni aniqlaymiz.

E'tibor bering, DS18b20-1-WIRE aloqasi bo'lgan sensor. Shu sababli, biz qurilmalar bilan aloqa qilishning butun protokolini bajaradigan kutubxonadan foydalanamiz. Bu o'qish buyruqlariga qadar har bir qurilmani aniqlashni o'z ichiga oladi.

#PINO_DE_DADOS A0 ni belgilang // MAX_SENSORLARNI aniqlang // sensorlar uchun numero máximo ni aniqlang.

Biz ma'lumotlar chizig'iga ulangan 16 ta mumkin bo'lgan qurilmalarning har birini ko'rsatadigan vektor yaratamiz.

DS1820* sensori [MAX_SENSORES]; // sensorlar uchun javobgarlik

Biz asosiy () usulini boshlaymiz, bu erda DS1820 kutubxonasida joylashgan "unassignedProbe ()" usuli yordamida aloqa liniyasidagi barcha mavjud qurilmalarni qidiramiz.

Sensor vektorini mavjud bo'lgan har bir sensorni ko'rsatadigan misollar bilan to'ldiramiz.

Biz buni oxirgi topilmaguncha yoki maksimal 16 ta sensorga yetguncha qilamiz.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// sezgich sensori [encontrados] = yangi DS1820 (PINO_DE_DADOS); // datchiklar uchun eng yaxshi kod++; agar (encontrados == MAX_SENSORES) // sensorlar buzilgan bo'lsa; }

Biz chiziqda topilgan sensorlar sonini yuboramiz.

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

Biz cheksiz tsiklni boshlaymiz va barcha mavjud sensorlar o'z haroratlarini hisoblab chiqishni, so'ngra olingan ko'rsatkichlarni yuborish orqali sensor vektori orqali takrorlashni so'raymiz.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {sensor [0]-> convertTemperature (rost, DS1820:: all_devices); // intit = int; //… bosma bosim ("\ r / n"); kuting (1); }

7 -qadam: Ma'lumotlar qabul qilindi

Qabul qilingan ma'lumotlar
Qabul qilingan ma'lumotlar

Yagona sensor yordamida biz quyidagi ketma -ket chiqishni olamiz.

8 -qadam: Qo'shimcha sensorlar

Ko'proq sensorlar, shu jumladan
Ko'proq sensorlar, shu jumladan
Ko'proq sensorlar, shu jumladan
Ko'proq sensorlar, shu jumladan

Kodni sinab ko'rish uchun biz aloqa liniyasiga boshqa sensorni kiritamiz, shunchaki uni birinchi sensori bilan parallel ulab.

Yangi sensorlarni ulashdan oldin yig'ishni o'chirishni unutmang.

O'rnatishni qayta ishga tushirganda, biz manba kodini o'zgartirmasdan, quyidagi natijani oldik.

9 -qadam: Manbani ko'rish

#"mbed.h" ni qo'shish // MBED #biblioteca padrão to MBED #include "DS1820.h" // inclusão da biblioteca do sensor DS1820 #PINO_DE_DADOS A0 ni belgilang // ta'riflang MAX_SENSORES 16 // ta'rifi DS1820* sensori [MAX_SENSORES] uchun sensorlar; // int main main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {{inicia a sensor sensorlar sensori [encontrados] = yangi DS1820 (PINO_DE_DADOS); // datchiklar uchun kodli kodlar ++; agar (encontrados == MAX_SENSORES) // sensorlar buzilgan bo'lsa; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {sensor [0]-> convertTemperature (rost, DS1820:: all_devices); // intit = int; //… bosma bosim ("\ r / n"); kuting (1); }}

10 -qadam: fayllar

PDF

Boshqalar

Tavsiya: