Satura rādītājs:

Neticami viegli programmēt!: 10 soļi
Neticami viegli programmēt!: 10 soļi

Video: Neticami viegli programmēt!: 10 soļi

Video: Neticami viegli programmēt!: 10 soļi
Video: НЕ ВЫБРОСИЛА СТАРЫЙ ТЮЛЬ И ХОРОШО СЭКОНОМИЛА СЕМЕЙНЫЙ БЮДЖЕТ! 4 КРУТЫЕ ИДЕИ ИЗ ТЮЛЯ! 2024, Novembris
Anonim
Image
Image
Neticami viegli programmēt!
Neticami viegli programmēt!

Šodien es runāšu par STM32 Core, L476RG, kas ir īpaši mazjaudas seja. To var redzēt attēla kreisajā pusē. Šai ierīcei ir divi sieviešu tapu stieņi, viens katrā pusē, kas ir nekas vairāk kā savienotāji arduino vairogam. Tas ir lieliski, vai ne?

Manuprāt, STMicroelectronics to darīja savā izstrādes komplektā, jo zina, ka profesionāļi izmanto šo mikroshēmu. Šis uzņēmums arvien vairāk dodas uz arduino. Un tas attiecas arī uz vairākiem citiem profesionāliem STMicroelectronics komplektiem.

Visbeidzot, attiecībā uz projektu šodien, papildus L476RG mēs izmantosim divus DS18b20 sensorus. Tāpēc mēs veiksim vienkāršu montāžu, izmantojot L476RG, importēsim bibliotēku MBED vidē, izveidosim programmu MBED vidē un iegūsim datus no L476RG, izmantojot USB / sērijas.

Šajā videoklipā es jau esmu nedaudz runājis par L476RG: VIEGLĀKĀKS VEIDS PROGRAMMĒT MIKROKONTROLLERU, kur es parādīšu, kā konfigurēt MBED vidi, kas ir tiešsaistē.

Daži cilvēki, kas seko maniem videoklipiem, man jautā, vai STM32 aizstāj ESP32. Es saku vienu: tas neaizstāj un nevarēja, jo tās ir divas pilnīgi atšķirīgas lietas.

Šī STM32 mikroshēma ir mikrokontrolleris, pareizāk sakot; tas nav "lietu kopums", kā tas ir ESP32. Tātad nosaukums var izskatīties līdzīgs, taču tie ir pilnīgi atšķirīgi. STM32 ir universāls mikrokontrolleris, piemēram, PIC, piemēram, Atmel.

1. darbība. Izmantotie resursi

Izmantotie resursi
Izmantotie resursi

1 kodols L476RG

2 DS18b20 sensori (mēs izmantojam tirgū izplatītos ūdensnecaurlaidīgos moduļus)

1 4k7 rezistors

Mini protoboards

Džemperi savienošanai

2. solis: montāža

Montāža
Montāža

Sākumā mēs veiksim montāžu, izmantojot vienu no temperatūras sensoriem.

Tās jauda būs 5 V.

4k7 rezistors tiks izmantots, lai veiktu datu līnijas (1-Wire) savilkšanu.

Mēs nolasīsim datus, izmantojot A0 tapu.

3. darbība. Jauna programma MBED

Jauna programma MBED
Jauna programma MBED
Jauna programma MBED
Jauna programma MBED
Jauna programma MBED
Jauna programma MBED

Kad esat izveidojis savu kontu MBED un piekļūstat tam, mēs izveidosim jaunu programmu. Lai to izdarītu, ar peles labo pogu noklikšķiniet uz "Manas programmas" un atlasiet "Jauna programma …"

Pārliecinieties, vai “platforma” atbilst jūsu izmantotajai plāksnei.

Tagad mēs noklikšķiniet uz "Veidne".

Mēs izveidosim programmu, pamatojoties uz piemēru "Parādīt ziņojumu datorā, izmantojot UART".

Ievadiet programmas nosaukumu sadaļā "Programmas nosaukums".

Atzīmējiet opciju "Atjaunināt šo programmu un bibliotēkas uz jaunāko versiju".

Tiks izveidota jauna mape jūsu programmai, ieskaitot noklusējuma MBED bibliotēku un failu main.cpp.

To var izmantot, lai pārbaudītu, vai viss darbojas labi. Lai to izdarītu, vienkārši apkopojiet to un nokopējiet to platformā.

Izmantojot jūsu izvēlēto seriālo termināli, varat saņemt šādus ziņojumus.

4. darbība. DS18b20 bibliotēkas importēšana

DS18b20 bibliotēkas importēšana
DS18b20 bibliotēkas importēšana

Tā kā Ds18b20 ir vairākas bibliotēku versijas, mēs importēsim, izmantojot URL, lai jūsu piemērā tiktu izmantota tā pati bibliotēka.

5. darbība. Jauna programma MBED

Jauna programma MBED
Jauna programma MBED
Jauna programma MBED
Jauna programma MBED

Laukā "Avota URL" aizpildiet: https://os.mbed.com/users/Sissors/code/DS1820/ un noklikšķiniet uz importēt.

Jūsu DS1820 bibliotēkai vajadzētu parādīties jūsu programmas mapē.

6. darbība: avota kods

Ietilpst

Mēs sākām, iekļaujot nepieciešamās bibliotēkas.

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

Mēs definējam konstantes, kas attēlo izmantotās tapas.

Ņemiet vērā, ka DS18b20 ir sensors ar 1-WIRE komunikāciju. Šī iemesla dēļ mēs izmantojam bibliotēku, kas apstrādās visu saziņas protokolu ar ierīcēm. Tas ietver katras ierīces identificēšanu līdz lasīšanas komandām.

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

Mēs izveidojam vektoru, kas norādīs uz katru no 16 iespējamām ierīcēm, kas savienotas ar datu līniju.

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

Mēs sākam galveno () metodi, kur, izmantojot DS1820 bibliotēkā esošo metodi "unassignedProbe ()", mēs meklējam visas pieejamās ierīces sakaru līnijā.

Mēs piepildām sensora vektoru ar gadījumiem, kas attēlo katru no pieejamajiem sensoriem.

Mēs to darām, līdz tiek atrasts pēdējais vai līdz sasniedzam maksimālo 16 sensoru skaitu.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a a processura por sensores sensor [encontrados] = jauns 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; }

Mēs nosūtām līnijā atrasto sensoru skaitu.

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

Mēs sākam bezgalīgu cilpu, pieprasot, lai visi pieejamie sensori aprēķinātu atbilstošo temperatūru un pēc tam atkārtotu caur sensora vektoru, nosūtot iegūtos rādījumus.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {sensors [0]-> convertTemperature (taisnība, DS1820:: visas_ierīces); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); pagaidiet (1); }

7. darbība: saņemtie dati

Dati saņemti
Dati saņemti

Izmantojot vienu sensoru, mēs iegūstam šādu sērijas izvadi.

8. solis: vairāk sensoru iekļaušana

Ieskaitot vairāk sensoru
Ieskaitot vairāk sensoru
Ieskaitot vairāk sensoru
Ieskaitot vairāk sensoru

Lai pārbaudītu kodu, mēs ieviešam citu sensoru sakaru līnijā, vienkārši savienojot to paralēli pirmajam sensoram.

Pirms jaunu sensoru pievienošanas neaizmirstiet izslēgt montāžu.

Restartējot montāžu, mēs ieguvām šādu izvadi, bez izmaiņām avota kodā.

9. darbība. Skatīt avotu

#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 número máximo para vai vetor de sensores DS1820* sensors [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 a processura por sensores sensor [encontrados] = jauns 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); while (1) {sensors [0]-> convertTemperature (true, DS1820:: visas_ierīces); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); pagaidiet (1); }}

10. darbība: faili

PDF

Citi

Ieteicams: