Cuprins:

Incredibil de ușor de programat: 10 pași
Incredibil de ușor de programat: 10 pași

Video: Incredibil de ușor de programat: 10 pași

Video: Incredibil de ușor de programat: 10 pași
Video: 🧠🧡 10 pași pentru a crea infinite posibilităti în viata ta 2024, Iulie
Anonim
Image
Image
Incredibil de ușor de programat!
Incredibil de ușor de programat!

Astăzi, voi vorbi despre STM32 Core, L476RG, care este fața Ultra Low Power. Îl puteți vedea în stânga imaginii. Acest dispozitiv are două bare de pin feminine, una pe fiecare parte, care nu sunt altceva decât conectorii pentru scutul arduino. Este grozav, nu?

În opinia mea, STMicroelectronics a făcut acest lucru în kitul său de dezvoltare, deoarece știe că profesioniștii folosesc acest cip. Această companie se îndreaptă din ce în ce mai mult către arduino. Și acest lucru este valabil și pentru alte câteva kituri profesionale STMicroelectronics.

În cele din urmă, în ceea ce privește proiectul de astăzi, vom folosi doi senzori DS18b20 pe lângă L476RG. Deci, vom face un ansamblu simplu folosind L476RG, vom importa o bibliotecă în mediul MBED, vom crea un program în mediul MBED și vom obține date de la L476RG prin USB / Serial.

Am vorbit deja puțin despre L476RG în acest videoclip: MODUL UȘOR DE PROGRAMARE A MICROCONTROLLERULUI, unde vă arăt cum să configurați mediul MBED, care este online.

Unii oameni care urmăresc videoclipurile mele mă întreabă dacă STM32 înlocuiește ESP32. Spun un lucru: nu înlocuiește și nu ar putea, pentru că sunt două lucruri complet diferite.

Acest cip STM32 este un microcontroler, sau mai bine zis; nu este un „grup de lucruri” la fel ca ESP32. Deci, numele poate arăta similar, dar sunt complet diferite. STM32 este un microcontroler de uz general, cum ar fi un PIC, un Atmel, de exemplu.

Pasul 1: Resurse utilizate

Resurse utilizate
Resurse utilizate

1 nucleu L476RG

2 senzori DS18b20 (folosim modulele comune impermeabile de pe piață)

1 rezistor 4k7

Mini protoboard

Jersee pentru conexiune

Pasul 2: Asamblare

Asamblare
Asamblare

Vom efectua inițial asamblarea folosind unul dintre senzorii de temperatură.

Puterea sa va fi de 5V.

Un rezistor 4k7 va fi folosit pentru a face un pull-up pe linia de date (1-Wire).

Vom citi datele folosind pinul A0.

Pasul 3: Program nou în MBED

Program nou în MBED
Program nou în MBED
Program nou în MBED
Program nou în MBED
Program nou în MBED
Program nou în MBED

După ce ați configurat contul în MBED și îl veți accesa, vom crea un nou program. Pentru a face acest lucru, faceți clic dreapta pe „Programele mele” și selectați „Program nou …”

Confirmați că „Platforma” este conformă cu placa pe care o utilizați.

Acum facem clic pe „Șablon”.

Vom crea un program bazat pe exemplul „Afișați un mesaj pe computer utilizând UART”.

Introduceți numele programului în „Nume program”.

Bifați opțiunea „Actualizați acest program și biblioteci la cea mai recentă versiune”.

Va fi creat un nou folder pentru programul dvs., inclusiv biblioteca implicită MBED și fișierul main.cpp.

Îl puteți folosi pentru a testa dacă totul funcționează bine. Pentru a face acest lucru, pur și simplu compilați-l și copiați-l pe platformă.

Folosind un terminal serial la alegere, puteți primi următoarele mesaje.

Pasul 4: Importul bibliotecii DS18b20

Importul bibliotecii DS18b20
Importul bibliotecii DS18b20

Deoarece există mai multe versiuni de biblioteci pentru Ds18b20, vom importa folosind o adresă URL, astfel încât exemplul dvs. să utilizeze aceeași bibliotecă.

Pasul 5: nou program în MBED

Program nou în MBED
Program nou în MBED
Program nou în MBED
Program nou în MBED

În câmpul „URL sursă” completați: https://os.mbed.com/users/Sissors/code/DS1820/ și faceți clic pe import.

Biblioteca dvs. DS1820 ar trebui să apară în folderul de programe.

Pasul 6: Cod sursă

Include

Am început prin includerea bibliotecilor necesare.

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

Definim constante care vor reprezenta pinii utilizați.

Rețineți că DS18b20 este un senzor cu comunicație 1-WIRE. Din acest motiv, folosim biblioteca care va gestiona întregul protocol de comunicare cu dispozitivele. Aceasta include identificarea fiecărui dispozitiv până la comenzile de citire.

#define PINO_DE_DADOS A0 // define o pino pentru leitura dos dados # define MAX_SENSORES 16 // define o număr maxim pentru o vetor de senzori

Creăm un vector care va indica fiecare dintre cele 16 dispozitive posibile conectate la linia de date.

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

Începem metoda main (), unde, folosind metoda „unassignedProbe ()” conținută în biblioteca DS1820, căutăm toate dispozitivele disponibile în linia de comunicație.

Umplem vectorul senzorului cu instanțele care vor reprezenta fiecare dintre senzorii disponibili.

Facem acest lucru până când se găsește ultimul sau până când ajungem la maximum 16 senzori.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por senzores sensor [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor found found ++; if (encontrados == MAX_SENSORES) // verifica se atinge o maxim de senzori break; }

Trimitem numărul de senzori găsiți pe linie.

printf ("Dispozitive găsite (e):% d / r / n / n", găsite);

Începem o buclă infinită, solicitând ca toți senzorii disponibili să își calculeze temperaturile respective și apoi să itereze prin vectorul senzorului prin trimiterea citirilor obținute.

printf ("Dispozitive găsite (e):% d / r / n / n", găsite); while (1) {senzor [0] -> convertTemperature (adevărat, DS1820:: all_devices); // solicita a leitura de temperatura pentru toate dispozitivele găsite pentru (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); așteptați (1); }

Pasul 7: Date primite

Date primite
Date primite

Folosind un singur senzor, obținem următoarea ieșire serială.

Pasul 8: Includerea mai multor senzori

Inclusiv mai mulți senzori
Inclusiv mai mulți senzori
Inclusiv mai mulți senzori
Inclusiv mai mulți senzori

Pentru a testa codul, introducem un alt senzor în linia de comunicație, pur și simplu conectându-l în paralel cu primul senzor.

Nu uitați să opriți ansamblul înainte de a conecta senzori noi.

La repornirea ansamblului, am obținut următoarea ieșire, fără modificări în codul sursă.

Pasul 9: Vizualizați sursa

#include "mbed.h" // inclusão da biblioteca padrão do MBED # include "DS1820.h" // inclusiveão biblioteca do sensor DS1820 #define PINO_DE_DADOS A0 // define o pino pentru leitura dos dados #define MAX_SENSORES 16 // define o număr maxim pentru o vetor de senzori DS1820 * senzor [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por senzores sensor [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor found found ++; if (encontrados == MAX_SENSORES) // verifica se atinge o maxim de senzori break; } printf ("Dispozitive găsite (e):% d / r / n / n", găsite); while (1) {senzor [0] -> convertTemperature (adevărat, DS1820:: all_devices); // solicita a leitura de temperatura pentru toate dispozitivele găsite pentru (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); așteptați (1); }}

Pasul 10: Fișiere

PDF

Alții

Recomandat: