Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38
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
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í
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
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
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
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
Pomocí jediného senzoru získáme následující sériový výstup.
Krok 8: 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
Ostatní
Doporučuje:
Z80-MBC2 Programování Atmega32a: 6 kroků
Z80-MBC2 Programování Atmega32a: Než budete moci z80-MBC2 používat, po jeho sestavení musíte Atmeg32 naprogramovat. Tyto pokyny vám ukážou, jak použít levné arduino mini jako programátora k nahrání kódu
Zajímavé pokyny pro programování programování pro návrháře-ovládání barev: 10 kroků
Zajímavé pokyny pro programování programování pro návrháře-ovládání barev: V předchozích kapitolách jsme si řekli více o tom, jak použít kód k tvarování namísto bodů znalostí o barvě. V této kapitole prozkoumáme tento aspekt znalostí hlouběji
DIY MusiLED, hudební synchronizované LED diody s aplikací Windows a Linux na jedno kliknutí (32bitová a 64bitová). Snadné obnovení, snadné použití, snadné přenesení: 3 kroky
DIY MusiLED, synchronizované LED diody hudby s aplikací Windows a Linux jediným kliknutím (32bitová a 64bitová). Snadno se obnovuje, snadno se používá a snadno se přenáší: Tento projekt vám pomůže připojit 18 LED diod (6 červených + 6 modrých + 6 žlutých) k desce Arduino a analyzovat signály zvukové karty vašeho počítače v reálném čase a přenášet je do LED diody je rozsvítí podle efektů rytmu (Snare, High Hat, Kick)
Jak snadno upravit značku „Light/LED“pro snadné programování Arduino: 7 kroků (s obrázky)
Jak snadno upravit značku „Light/LED“pro snadné programování Arduino: V tomto instruktážním videu ukážu, jak může kdokoli proměnit něco se světly na programovatelné arduino blikající světla nebo „pohyblivá světla“;
Snadné počítačové programování: 5 kroků
Snadné počítačové programování: Velmi SNADNÝ a ZDARMA způsob, jakým KAŽDÝ může napsat svůj první počítačový program za DESET MINUT. Poznámka: Tento návod je pro lidi, kteří si myslí, že programování je nějaká magická věc, ke které potřebujete drahé programy nebo špičkové technické dovednosti. Naděje