Obsah:

Neuvěřitelně snadné programování!: 10 kroků
Neuvěřitelně snadné programování!: 10 kroků

Video: Neuvěřitelně snadné programování!: 10 kroků

Video: Neuvěřitelně snadné programování!: 10 kroků
Video: Jak bych se naučil programovat, kdybych musel začít ZNOVU? 2024, Červenec
Anonim
Image
Image
Neuvěřitelně snadné programování!
Neuvěřitelně snadné programování!

Dnes budu mluvit o jádru STM32 Core, L476RG, které je tváří Ultra Low Power. Můžete to vidět na levé straně obrázku. Toto zařízení má dvě ženské kolíkové lišty, po jedné na každé straně, které nejsou ničím jiným než konektory pro arduino štít. To je skvělé, ne?

Podle mého názoru to společnost STMicroelectronics ve své vývojové sadě udělala, protože ví, že tento čip používají profesionálové. Tato společnost stále více směřuje k arduinu. A to platí také pro několik dalších profesionálních sad STMicroelectronics.

Nakonec, co se týká dnešního projektu, použijeme kromě L476RG ještě dva senzory DS18b20. Provedeme tedy jednoduchou montáž pomocí L476RG, importujeme knihovnu do prostředí MBED, vytvoříme program v prostředí MBED a získáme data z L476RG přes USB / Serial.

O L476RG jsem již v tomto videu trochu mluvil: SNADNĚJŠÍ ZPŮSOB PROGRAMOVÁNÍ MIKROKONTROLÁTORU, kde ukazuji, jak konfigurovat prostředí MBED, které je online.

Někteří lidé, kteří sledují moje videa, se mě ptají, jestli STM32 nahrazuje ESP32. Říkám jednu věc: nenahrazuje a nemohlo, protože jsou to dvě úplně odlišné věci.

Tento čip STM32 je mikrokontrolér, nebo spíše; není to „shluk věcí“jako ESP32. Název tedy může vypadat podobně, ale jsou zcela odlišné. STM32 je univerzální mikrokontrolér, například PIC nebo Atmel.

Krok 1: Použité zdroje

Použité zdroje
Použité zdroje

1 jádro L476RG

2 senzory DS18b20 (používáme běžné vodotěsné moduly na trhu)

1 odpor 4k7

Mini protoboard

Propojky pro připojení

Krok 2: Sestavení

Shromáždění
Shromáždění

Montáž zpočátku provedeme pomocí jednoho z teplotních čidel.

Jeho výkon bude 5V.

K vytažení datové linky (1-Wire) bude použit odpor 4k7.

Data načteme pomocí pinu A0.

Krok 3: Nový program v MBED

Nový program v MBED
Nový program v MBED
Nový program v MBED
Nový program v MBED
Nový program v MBED
Nový program v MBED

Jakmile budete mít svůj účet nastavený v MBED a budete k němu mít přístup, vytvoříme nový program. Chcete -li to provést, klikněte pravým tlačítkem na „Moje programy“a vyberte „Nový program…“

Potvrďte, že „platforma“odpovídá desce, kterou používáte.

Nyní klikneme na „Šablona“.

Vytvoříme program podle příkladu „Zobrazit zprávu na PC pomocí UART“.

Do pole „Název programu“zadejte název programu.

Zaškrtněte možnost „Aktualizovat tento program a knihovny na nejnovější revizi“.

Bude vytvořena nová složka pro váš program, včetně výchozí knihovny MBED a souboru main.cpp.

Můžete jej použít k testování, zda vše funguje dobře. Chcete -li to provést, jednoduše jej zkompilujte a zkopírujte na platformu.

Pomocí vybraného sériového terminálu můžete přijímat následující zprávy.

Krok 4: Import knihovny DS18b20

Import knihovny DS18b20
Import knihovny DS18b20

Protože pro Ds18b20 existuje několik verzí knihoven, importujeme pomocí adresy URL, aby váš příklad používal stejnou knihovnu.

Krok 5: Nový program v MBED

Nový program v MBED
Nový program v MBED
Nový program v MBED
Nový program v MBED

Do pole „Adresa URL zdroje“vyplňte: https://os.mbed.com/users/Sissors/code/DS1820/ a klikněte na import.

Vaše knihovna DS1820 by se měla objevit ve složce vašeho programu.

Krok 6: Zdrojový kód

Zahrnuje

Začali jsme zahrnutím potřebných knihoven.

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

Definujeme konstanty, které budou reprezentovat použité piny.

Všimněte si, že DS18b20 je senzor s komunikací 1-WIRE. Z tohoto důvodu používáme knihovnu, která bude zpracovávat celý protokol komunikace se zařízeními. To zahrnuje identifikaci každého zařízení až po příkazy ke čtení.

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

Vytvoříme vektor, který bude ukazovat na každé ze 16 možných zařízení připojených k datové lince.

DS1820* senzor [MAX_SENSORES]; // cria um vetor com 16 pozic pro para os senzory

Spustíme metodu main (), kde pomocí metody „unassignedProbe ()“obsažené v knihovně DS1820 hledáme všechna dostupná zařízení v komunikační lince.

Vektor senzoru vyplníme instancemi, které budou reprezentovat každý z dostupných senzorů.

Děláme to, dokud není nalezen poslední nebo dokud nedosáhneme maximálně 16 senzorů.

int main () {int encontrados = 0; while (DS1820:: univededProbe (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // verifica with atingiu o máximo de sensores break; }

Odesíláme počet senzorů nalezených na lince.

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

Začneme nekonečnou smyčkou a požadujeme, aby všechny dostupné senzory vypočítaly příslušné teploty, a poté iterujeme vektorem senzoru odesláním získaných údajů.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {senzor [0]-> convertTemperature (true, DS1820:: all_devices); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… retorna a temperatura printf ("\ r / n"); počkejte (1); }

Krok 7: Data přijata

Data obdržena
Data obdržena

Pomocí jediného senzoru získáme následující sériový výstup.

Krok 8: Včetně více senzorů

Včetně více senzorů
Včetně více senzorů
Včetně více senzorů
Včetně více senzorů

Abychom kód otestovali, zavedeme do komunikační linky další senzor, a to jednoduchým zapojením paralelně s prvním senzorem.

Před připojením nových senzorů nezapomeňte sestavu vypnout.

Při restartování sestavy jsme získali následující výstup bez jakýchkoli změn ve zdrojovém kódu.

Krok 9: Zobrazit zdroj

#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 maximální počet senzorů DS1820* senzor [MAX_SENSORES]; // cria um vetor com 16 pozic para os sensores int main () {int encontrados = 0; while (DS1820:: univededProbe (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // verifica with atingiu o máximo de sensores break; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {senzor [0]-> convertTemperature (true, DS1820:: all_devices); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… retorna a temperatura printf ("\ r / n"); počkejte (1); }}

Krok 10: Soubory

PDF

Ostatní

Doporučuje: