Sisukord:

Uskumatult lihtne programmeerida!: 10 sammu
Uskumatult lihtne programmeerida!: 10 sammu

Video: Uskumatult lihtne programmeerida!: 10 sammu

Video: Uskumatult lihtne programmeerida!: 10 sammu
Video: ЯЙЦА ВАРЕНЫЕ 8 ЧАСОВ. ХАМИН В КАЗАНЕ 10, 12, 24 ЧАСОВ ПРИГОТОВЛЕНИЯ. РЕЦЕПТ 2024, November
Anonim
Image
Image
Uskumatult lihtne programmeerida!
Uskumatult lihtne programmeerida!

Täna räägin ma STM32 tuumast, L476RG -st, mis on üliväikese võimsuse nägu. Seda näete pildi vasakul küljel. Sellel seadmel on kaks naissoost tihvtvarda, üks mõlemal küljel, mis pole midagi muud kui arduino kilbi pistikud. See on suurepärane, kas pole?

Minu arvates tegi STMicroelectronics seda oma arenduskomplektis, kuna teab, et spetsialistid kasutavad seda kiipi. See ettevõte läheb üha enam arduino poole. Ja see kehtib ka mitmete teiste professionaalsete STMicroelectronics komplektide kohta.

Lõpuks, seoses projektiga täna, kasutame lisaks L476RG -le kahte DS18b20 andurit. Seega teeme L476RG abil lihtsa koostamise, impordime raamatukogu MBED -keskkonda, loome programmi MBED -keskkonnas ja saame andmeid L476RG -st USB / jadaliidese kaudu.

Olen selles videos juba natuke rääkinud L476RG -st: LIHTSAM VÕIMALUS MIKROKONTROLLERI PROGRAMMEERIMISEKS, kus näitan, kuidas konfigureerida võrgus olevat MBED -keskkonda.

Mõned inimesed, kes minu videoid jälgivad, küsivad minult, kas STM32 asendab ESP32. Ütlen ühte asja: see ei asenda ega saanudki, sest need on kaks täiesti erinevat asja.

See STM32 kiip on mikrokontroller või õigemini; see ei ole "asjade klaster" nagu ESP32. Nii et nimi võib tunduda sarnane, kuid need on täiesti erinevad. STM32 on üldotstarbeline mikrokontroller, näiteks PIC, Atmel.

Samm: kasutatud ressursid

Kasutatud ressursid
Kasutatud ressursid

1 tuum L476RG

2 DS18b20 andurit (kasutame turul levinud veekindlaid mooduleid)

1 4k7 takisti

Miniprotokoll

Ühendamiseks džemprid

2. samm: kokkupanek

Kokkupanek
Kokkupanek

Algselt viime monteerimise läbi ühe temperatuurianduri abil.

Selle võimsus on 5 V.

Andmeliini (1-juhtmeline) tõmbamiseks kasutatakse 4k7 takistit.

Me loeme andmeid A0 tihvti abil.

Samm: uus programm MBED -is

Uus programm MBED -is
Uus programm MBED -is
Uus programm MBED -is
Uus programm MBED -is
Uus programm MBED -is
Uus programm MBED -is

Kui olete oma konto MBED -is seadistanud ja sellele juurde pääsenud, loome uue programmi. Selleks paremklõpsake "Minu programmid" ja valige "Uus programm …"

Veenduge, et platvorm vastab teie kasutatavale plaadile.

Nüüd klõpsame nuppu "Mall".

Loome programmi, mis põhineb näitel „Kuva sõnum arvutis UART abil”.

Sisestage programmi nimi väljale "Programmi nimi".

Märkige valik "Värskenda seda programmi ja teeke uusimale versioonile".

Teie programmile luuakse uus kaust, sealhulgas MBED -i vaikeraamatukogu ja fail main.cpp.

Selle abil saate testida, kas kõik töötab hästi. Selleks lihtsalt kompileerige see ja kopeerige see platvormile.

Kasutades oma valitud jadaterminali, saate vastu võtta järgmised teated.

Samm 4: DS18b20 kogu importimine

Teeki DS18b20 importimine
Teeki DS18b20 importimine

Kuna Ds18b20 jaoks on raamatukogudest mitu versiooni, impordime URL -i abil, nii et teie näide kasutab sama teeki.

Samm: uus programm MBED -is

Uus programm MBED -is
Uus programm MBED -is
Uus programm MBED -is
Uus programm MBED -is

Sisestage väljale „Allika URL”: https://os.mbed.com/users/Sissors/code/DS1820/ ja klõpsake nuppu Impordi.

Teie DS1820 kogu peaks ilmuma teie programmikausta.

6. samm: lähtekood

Sisaldab

Alustasime vajalike raamatukogude kaasamisega.

#include "mbed.h" // inclusão da biblioteca padrão do MBED#include "DS1820.h" // inclusão da biblioteca do sensor DS1820

Me määratleme konstandid, mis esindavad kasutatud tihvte.

Pange tähele, et DS18b20 on andur, millel on 1-WIRE side. Sel põhjusel kasutame teeki, mis haldab kogu seadmetega suhtlemise protokolli. See hõlmab iga seadme tuvastamist kuni lugemiskäsudeni.

#define PINO_DE_DADOS A0 // define o pino para leitura dos dados#define MAX_SENSORES 16 // define o número máximo para o vetor de sensores

Loome vektori, mis osutab igale 16 võimalikule andmeliiniga ühendatud seadmele.

DS1820* andur [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores

Alustame peamist () meetodit, kus DS1820 raamatukogus sisalduvat meetodit "unassignedProbe ()" kasutades otsime kõiki saadaolevaid seadmeid kommunikatsiooniliinist.

Täidame andurite vektori eksemplaridega, mis esindavad kõiki saadaolevaid andureid.

Me teeme seda kuni viimase leidmiseni või kuni jõuame maksimaalselt 16 andurini.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// algatatakse a senise sensori hankimine [encontrados] = uus DS1820 (PINO_DE_DADOS); // cria uma instancia para või sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; }

Saadame realt leitud andurite arvu.

printf ("Salastusandmed (d): %d / r / n / n", salastatud);

Alustame lõpmatut tsüklit, nõudes, et kõik saadaolevad andurid arvutaksid oma vastavad temperatuurid ja seejärel iteratsiooni läbi andurvektori, saates saadud näidud.

printf ("Salastusandmed (d): %d / r / n / n", salastatud); while (1) {sensor [0]-> convertTemperature (tõsi, DS1820:: kõik_seadmed); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); oota (1); }

Samm 7: saadud andmed

Andmed saadud
Andmed saadud

Ühe anduri abil saame järgmise jadaväljundi.

8. samm: lisage rohkem andureid

Sealhulgas rohkem andureid
Sealhulgas rohkem andureid
Sealhulgas rohkem andureid
Sealhulgas rohkem andureid

Koodi testimiseks tutvustame kommunikatsiooniliinis teist andurit, lihtsalt ühendades selle paralleelselt esimese anduriga.

Ärge unustage enne uute andurite ühendamist seade välja lülitada.

Kokkupaneku taaskäivitamisel saime järgmise väljundi, ilma lähtekoodi muutmata.

9. samm: vaadake allikat

#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 // define o pino para leitura dos dados #define MAX_SENSORES 16 // define o número máximo para või vetor 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)) {// algatatakse a senise sensori hankimine [encontrados] = uus DS1820 (PINO_DE_DADOS); // cria uma instancia para või sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; } printf ("Eraldusvõtted (-d): %d / r / n / n", salastatud); while (1) {sensor [0]-> convertTemperature (tõsi, DS1820:: kõik_seadmed); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); oota (1); }}

10. samm: failid

PDF

Teised

Soovitan: