Obsah:

Neuveriteľne jednoduché naprogramovanie!: 10 krokov
Neuveriteľne jednoduché naprogramovanie!: 10 krokov

Video: Neuveriteľne jednoduché naprogramovanie!: 10 krokov

Video: Neuveriteľne jednoduché naprogramovanie!: 10 krokov
Video: Cooking a Chinese New Year Reunion Dinner: From Prep to Plating (10 dishes included) 2024, November
Anonim
Image
Image
Programovanie je neuveriteľne jednoduché!
Programovanie je neuveriteľne jednoduché!

Dnes budem hovoriť o jadre STM32 Core, L476RG, ktoré je tvárou ultra nízkej spotreby. Môžete to vidieť na ľavej strane obrázku. Toto zariadenie má dve zásuvkové tyče, jednu na každej strane, ktoré nie sú ničím iným ako konektormi pre arduino štít. Toto je super, nie?

Podľa môjho názoru to spoločnosť STMicroelectronics vo svojej vývojovej súprave urobila, pretože vie, že tento čip používajú profesionáli. Táto spoločnosť stále viac smeruje k arduinu. A to platí aj pre niekoľko ďalších profesionálnych súprav STMicroelectronics.

Nakoniec, pokiaľ ide o dnešný projekt, použijeme okrem L476RG aj dva senzory DS18b20. Takže urobíme jednoduchú montáž pomocou L476RG, importujeme knižnicu do prostredia MBED, vytvoríme program v prostredí MBED a získame údaje z L476RG cez USB / Serial.

V tomto videu som už trochu hovoril o L476RG: JEDNODUCHŠÍ SPÔSOB PROGRAMOVANIA MIKROKONTROLÁRA, kde ukazujem, ako nakonfigurovať prostredie MBED, ktoré je online.

Niektorí ľudia, ktorí sledujú moje videá, sa ma pýtajú, či STM32 nahrádza ESP32. Hovorím jednu vec: nenahrádza a ani nemôže, pretože sú to dve úplne odlišné veci.

Tento čip STM32 je mikrokontrolér alebo skôr; nie je to „zhluk vecí“ako ESP32. Názov teda môže vyzerať podobne, ale sú úplne odlišné. STM32 je mikrokontrolér na všeobecné použitie, napríklad PIC alebo Atmel.

Krok 1: Použité zdroje

Použité zdroje
Použité zdroje

1 jadro L476RG

2 senzory DS18b20 (používame bežné vodotesné moduly na trhu)

1 odpor 4k7

Mini protoboard

Spojky pre pripojenie

Krok 2: Zostavenie

zhromaždenie
zhromaždenie

Montáž najskôr vykonáme pomocou jedného z teplotných senzorov.

Jeho výkon bude 5V.

Na vytiahnutie dátového vedenia (1-Wire) bude použitý odpor 4k7.

Údaje prečítame pomocou 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

Akonáhle budete mať svoj účet nastavený v MBED a budete k nemu mať prístup, vytvoríme nový program. Ak to chcete urobiť, kliknite pravým tlačidlom myši na "Moje programy" a zvoľte "Nový program …"

Potvrďte, že „platforma“zodpovedá doske, ktorú používate.

Teraz klikneme na „Šablóna“.

Vytvoríme program podľa príkladu „Zobrazenie správy na počítači pomocou UART“.

Do poľa „Názov programu“zadajte názov programu.

Začiarknite možnosť „Aktualizovať tento program a knižnice na najnovšiu revíziu“.

Vytvorí sa nový priečinok pre váš program vrátane predvolenej knižnice MBED a súboru main.cpp.

Môžete ho použiť na testovanie, či všetko funguje dobre. Ak to chcete urobiť, jednoducho ho skompilovajte a skopírujte na platformu.

Použitím zvoleného sériového terminálu môžete prijímať nasledujúce správy.

Krok 4: Import knižnice DS18b20

Import knižnice DS18b20
Import knižnice DS18b20

Pretože pre Ds18b20 existuje niekoľko verzií knižníc, budeme importovať pomocou adresy URL, aby váš príklad používal rovnakú knižnicu.

Krok 5: Nový program v MBED

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

Do poľa „Adresa URL zdroja“zadajte: https://os.mbed.com/users/Sissors/code/DS1820/ a kliknite na import.

Knižnica DS1820 by sa mala objaviť v priečinku programu.

Krok 6: Zdrojový kód

Zahŕňa

Začali sme zahrnutím potrebných knižníc.

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

Definujeme konštanty, ktoré budú predstavovať použité piny.

Všimnite si toho, že DS18b20 je senzor s komunikáciou 1-WIRE. Z tohto dôvodu používame knižnicu, ktorá bude spracovávať celý protokol komunikácie so zariadeniami. To zahŕňa identifikáciu každého zariadenia až po príkazy na čítanie.

#define PINO_DE_DADOS A0 // definovať o pino para leitura dos dados#define MAX_SENSORES 16 // define o número maximum a para o vetor de sensores

Vytvoríme vektor, ktorý bude ukazovať na každé zo 16 možných zariadení pripojených k dátovému riadku.

Senzor DS1820* [MAX_SENSORES]; // cria um vetor com 16 pozícií pre para os senzory

Spustíme metódu main (), kde pomocou metódy „unassignedProbe ()“obsiahnutej v knižnici DS1820 vyhľadáme všetky dostupné zariadenia v komunikačnej linke.

Vektor senzora vyplníme inštanciami, ktoré budú predstavovať každý z dostupných senzorov.

Robíme to, kým sa nenájde posledný alebo kým nedosiahneme maximum 16 senzorov.

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 senzor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // verifica with atingiu o maximal de de sensores break; }

Posielame počet senzorov nájdených na linke.

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

Začíname s nekonečnou slučkou a požadujeme, aby všetky dostupné senzory vypočítali svoje príslušné teploty, a potom iterujeme vektorom senzora odoslaním získaných hodnôt.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {senzor [0]-> convertTemperature (true, DS1820:: all_devices); // časová a teplotná odchýlka pre jednotlivé položky pre (int i = 0; itemperature ()); //… retorna a temperatura printf ("\ r / n"); počkajte (1); }

Krok 7: Údaje boli prijaté

Prijaté údaje
Prijaté údaje

Použitím jedného senzora získame nasledujúci sériový výstup.

Krok 8: Zahrnutie viacerých senzorov

Vrátane viacerých senzorov
Vrátane viacerých senzorov
Vrátane viacerých senzorov
Vrátane viacerých senzorov

Na testovanie kódu zavádzame ďalší senzor do komunikačnej linky jednoduchým zapojením paralelne s prvým senzorom.

Pred pripojením nových snímačov nezabudnite zostavu vypnúť.

Pri reštarte zostavy sme získali nasledujúci výstup bez akýchkoľvek zmien v zdrojovom kóde.

Krok 9: Zobrazte 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álne množstvo senzorov DS1820* [MAX_SENSORES]; // cria um vetor com 16 pozícií para os senzorov 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 senzor 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); // časová a teplotná odchýlka pre jednotlivé položky pre (int i = 0; itemperature ()); //… retorna a temperatura printf ("\ r / n"); počkajte (1); }}

Krok 10: Súbory

PDF

Iní

Odporúča: