Kazalo:

Neverjetno enostavno programiranje!: 10 korakov
Neverjetno enostavno programiranje!: 10 korakov

Video: Neverjetno enostavno programiranje!: 10 korakov

Video: Neverjetno enostavno programiranje!: 10 korakov
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, November
Anonim
Image
Image
Neverjetno enostavno programiranje!
Neverjetno enostavno programiranje!

Danes bom govoril o jedru STM32, L476RG, ki je obraz Ultra Low Power. Lahko ga vidite na levi strani slike. Ta naprava ima dve ženski palici, po eno na vsaki strani, ki nista nič drugega kot priključki za arduino ščit. To je super, kajne?

Po mojem mnenju je STMicroelectronics to naredil v svojem razvojnem kompletu, ker ve, da strokovnjaki uporabljajo ta čip. To podjetje gre vse bolj proti arduinu. To velja tudi za več drugih profesionalnih kompletov STMicroelectronics.

Nazadnje, glede današnjega projekta bomo poleg L476RG uporabili še dva senzorja DS18b20. Tako bomo naredili preprosto sestavo z uporabo L476RG, uvozili knjižnico v okolje MBED, ustvarili program v okolju MBED in dobili podatke iz L476RG prek USB / serijskega vmesnika.

Nekaj sem že govoril o L476RG v tem videoposnetku: LAŽJI NAČIN PROGRAMIRANJA MIKROKONTROLERJA, kjer pokažem, kako konfigurirati okolje MBED, ki je na spletu.

Nekateri, ki spremljajo moje videoposnetke, me sprašujejo, ali STM32 nadomešča ESP32. Rečem eno: ne nadomešča in ne more, ker sta dve popolnoma različni stvari.

Ta čip STM32 je mikrokrmilnik ali bolje rečeno; ni "grozd stvari", kot je ESP32. Tako je ime lahko videti podobno, vendar sta si popolnoma različna. STM32 je mikrokrmilnik za splošne namene, na primer PIC, Atmel.

1. korak: Uporabljeni viri

Uporabljeni viri
Uporabljeni viri

1 jedro L476RG

2 senzorja DS18b20 (uporabljamo običajne vodotesne module na trgu)

1 4k7 upor

Mini protoboard

Skakači za povezavo

2. korak: Montaža

Montaža
Montaža

Na začetku bomo montažo izvedli z enim od temperaturnih senzorjev.

Njegova moč bo 5V.

Za povezovanje podatkovne linije (1-žica) bo uporabljen upor 4k7.

Podatke bomo prebrali z zatičem A0.

3. korak: 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

Ko nastavite svoj račun v MBED in dostopate do njega, bomo ustvarili nov program. Če želite to narediti, z desno miškino tipko kliknite »Moji programi« in izberite »Nov program…«

Preverite, ali je "platforma" v skladu s ploščo, ki jo uporabljate.

Zdaj kliknemo na "Predloga".

Na podlagi primera bomo ustvarili program "Prikaz sporočila v računalniku z uporabo UART".

Vnesite ime programa v "Ime programa".

Preverite možnost »Posodobi ta program in knjižnice na zadnjo revizijo«.

Ustvarila se bo nova mapa za vaš program, vključno s privzeto knjižnico MBED in datoteko main.cpp.

Z njim lahko preizkusite, ali vse deluje dobro. Če želite to narediti, ga preprosto sestavite in kopirajte na platformo.

Z uporabo serijskega terminala po vaši izbiri lahko prejmete naslednja sporočila.

4. korak: Uvoz knjižnice DS18b20

Uvoz knjižnice DS18b20
Uvoz knjižnice DS18b20

Ker obstaja več različic knjižnic za Ds18b20, bomo uvozili z URL -jem, tako da bo vaš primer uporabljal isto knjižnico.

5. korak: Nov program v MBED

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

V polje "Izvorni URL" izpolnite: https://os.mbed.com/users/Sissors/code/DS1820/ in kliknite uvoz.

Vaša knjižnica DS1820 bi se morala pojaviti v programski mapi.

6. korak: izvorna koda

Vključuje

Začeli smo z vključitvijo potrebnih knjižnic.

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

Določimo konstante, ki bodo predstavljale uporabljene zatiče.

Upoštevajte, da je DS18b20 senzor z 1-WIRE komunikacijo. Zato uporabljamo knjižnico, ki bo obravnavala celoten protokol komunikacije z napravami. To vključuje identifikacijo vsake naprave do ukazov za branje.

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

Ustvarjamo vektor, ki bo pokazal na vsako od 16 možnih naprav, povezanih s podatkovno linijo.

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

Začnemo metodo main (), kjer z uporabo metode "unassignedProbe ()", ki jo vsebuje knjižnica DS1820, iščemo vse razpoložljive naprave v komunikacijski liniji.

Vektor senzorja napolnimo s primerki, ki bodo predstavljali vsakega od razpoložljivih senzorjev.

To počnemo, dokler ne najdemo zadnjega ali dokler ne dosežemo največ 16 senzorjev.

int main () {int encontrados = 0; medtem ko (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia procura por sensores sensor [encontrados] = nov DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; }

Pošiljamo število senzorjev, ki jih najdemo na liniji.

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

Zaženemo neskončno zanko in zahtevamo, da vsi razpoložljivi senzorji izračunajo svoje temperature, nato pa ponovimo skozi vektor senzorja s pošiljanjem dobljenih odčitkov.

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

7. korak: Prejeti podatki

Prejeti podatki
Prejeti podatki

Z enim samim senzorjem dobimo naslednji serijski izhod.

8. korak: Vključitev več senzorjev

Vključno z več senzorji
Vključno z več senzorji
Vključno z več senzorji
Vključno z več senzorji

Za preizkus kode uvedemo še en senzor v komunikacijsko linijo, tako da ga vzporedno povežemo s prvim senzorjem.

Ne pozabite izklopiti sklopa pred priključitvijo novih senzorjev.

Ob ponovnem zagonu sklopa smo dobili naslednji izhod, brez sprememb izvorne kode.

9. korak: Ogled vira

#include "mbed.h" // inclusão da biblioteca padrão do MBED #include "DS1820.h" // includesão da biblioteca do sensor DS1820 #define PINO_DE_DADOS A0 // define o pino para leitura dos dados #define MAX_SENSORES 16 // define več o parametrih senzorjev senzorja DS1820* senzor [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0; medtem ko (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia procura por sensores sensor [encontrados] = nov DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); medtem ko (1) {sensor [0]-> convertTemperature (true, DS1820:: all_devices); // solicita a leitura de temperature para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); počakaj (1); }}

10. korak: Datoteke

PDF

Drugi

Priporočena: