Turinys:

Neįtikėtinai lengva programuoti!: 10 žingsnių
Neįtikėtinai lengva programuoti!: 10 žingsnių

Video: Neįtikėtinai lengva programuoti!: 10 žingsnių

Video: Neįtikėtinai lengva programuoti!: 10 žingsnių
Video: Neįtikėtini rezultatai, lengva norų pritraukimo technika su minties galia. Kiekvieno vakaro ritualas 2024, Liepa
Anonim
Image
Image
Neįtikėtinai lengva programuoti!
Neįtikėtinai lengva programuoti!

Šiandien aš kalbėsiu apie „STM32 Core“, L476RG, kuris yra itin mažos galios veidas. Tai galite pamatyti paveikslėlio kairėje. Šiame įrenginyje yra dvi moteriškos kaiščių juostos, po vieną kiekvienoje pusėje, kurios yra ne kas kita, kaip „arduino“skydo jungtys. Tai puiku, ar ne?

Mano nuomone, „STMicroelectronics“tai padarė savo kūrimo rinkinyje, nes žino, kad profesionalai naudoja šią mikroschemą. Ši kompanija vis labiau eina arduino link. Tai pasakytina ir apie keletą kitų profesionalių „STMicroelectronics“rinkinių.

Galiausiai, kalbant apie šiandieninį projektą, be L476RG naudosime du DS18b20 jutiklius. Taigi, mes padarysime paprastą surinkimą naudodami L476RG, importuosime biblioteką į MBED aplinką, sukursime programą MBED aplinkoje ir gausime duomenis iš L476RG per USB / seriją.

Aš jau šiek tiek kalbėjau apie L476RG šiame vaizdo įraše: LENGVESNIS BŪDAS PROGRAMUOTI MIKROKONTROLDERĮ, kuriame parodau, kaip konfigūruoti MBED aplinką, kuri yra internete.

Kai kurie žmonės, kurie seka mano vaizdo įrašus, manęs klausia, ar STM32 pakeičia ESP32. Aš sakau vieną dalyką: jis nepakeičia ir negalėjo, nes tai du visiškai skirtingi dalykai.

Šis STM32 lustas yra mikrovaldiklis, tiksliau; tai nėra „dalykų grupė“, kaip yra ESP32. Taigi pavadinimas gali atrodyti panašus, tačiau jie visiškai skirtingi. STM32 yra bendrosios paskirties mikrovaldiklis, pvz., PIC, „Atmel“.

1 žingsnis: naudojami ištekliai

Naudojami ištekliai
Naudojami ištekliai

1 branduolys L476RG

2 DS18b20 jutikliai (mes naudojame įprastus vandeniui atsparius modulius)

1 4k7 rezistorius

Mini protoboard

Džemperiai prijungimui

2 žingsnis: Surinkimas

Surinkimas
Surinkimas

Surinkimą iš pradžių atliksime naudodami vieną iš temperatūros jutiklių.

Jo galia bus 5 V.

4k7 rezistorius bus naudojamas duomenų linijai (1 viela) ištraukti.

Mes perskaitysime duomenis naudodami A0 kaištį.

3 žingsnis: nauja programa MBED

Nauja programa MBED
Nauja programa MBED
Nauja programa MBED
Nauja programa MBED
Nauja programa MBED
Nauja programa MBED

Kai sukursite savo paskyrą MBED ir prieisite prie jos, sukursime naują programą. Norėdami tai padaryti, dešiniuoju pelės mygtuku spustelėkite „Mano programos“ir pasirinkite „Nauja programa …“

Patikrinkite, ar „platforma“atitinka jūsų naudojamą plokštę.

Dabar spustelėkite „Šablonas“.

Mes sukursime programą pagal pavyzdį „Rodyti pranešimą kompiuteryje naudojant UART“.

„Programos pavadinime“įveskite programos pavadinimą.

Patikrinkite parinktį „Atnaujinti šią programą ir bibliotekas iki naujausios versijos“.

Bus sukurtas naujas jūsų programos aplankas, įskaitant numatytąją MBED biblioteką ir failą main.cpp.

Galite jį naudoti norėdami patikrinti, ar viskas gerai veikia. Norėdami tai padaryti, tiesiog sukompiliuokite jį ir nukopijuokite į platformą.

Naudodami pasirinktą nuoseklųjį terminalą, galite gauti šiuos pranešimus.

4 veiksmas: DS18b20 bibliotekos importavimas

Importuojama DS18b20 biblioteka
Importuojama DS18b20 biblioteka

Kadangi yra kelios „Ds18b20“bibliotekų versijos, importuosime naudodami URL, kad jūsų pavyzdys naudotų tą pačią biblioteką.

5 veiksmas: nauja programa MBED

Nauja programa MBED
Nauja programa MBED
Nauja programa MBED
Nauja programa MBED

Lauke „Šaltinio URL“užpildykite: https://os.mbed.com/users/Sissors/code/DS1820/ ir spustelėkite importuoti.

Jūsų DS1820 biblioteka turėtų būti rodoma jūsų programos aplanke.

6 žingsnis: šaltinio kodas

Apima

Pradėjome įtraukdami reikiamas bibliotekas.

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

Mes apibrėžiame konstantas, kurios parodys naudojamus kaiščius.

Atkreipkite dėmesį, kad DS18b20 yra jutiklis su 1-WIRE ryšiu. Dėl šios priežasties mes naudojame biblioteką, kuri tvarkys visą ryšio su įrenginiais protokolą. Tai apima kiekvieno įrenginio identifikavimą iki skaitymo komandų.

#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

Mes sukuriame vektorių, kuris nurodys kiekvieną iš 16 galimų įrenginių, prijungtų prie duomenų linijos.

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

Pradedame pagrindinį () metodą, kuriame, naudojant „unassignedProbe ()“metodą, esantį DS1820 bibliotekoje, ieškome visų turimų ryšio linijos įrenginių.

Mes užpildome jutiklio vektorių egzemplioriais, kurie parodys kiekvieną turimą jutiklį.

Mes tai darome, kol bus rastas paskutinis arba kol pasieksime ne daugiau kaip 16 jutiklių.

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

Siunčiame eilutėje rastų jutiklių skaičių.

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

Mes pradedame begalinę kilpą, prašydami, kad visi turimi jutikliai apskaičiuotų atitinkamą temperatūrą, o tada pakartotų per jutiklio vektorių, siųsdami gautus rodmenis.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {sensor [0]-> convertTemperature (tiesa, DS1820:: visi įrenginiai); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); palaukti (1); }

7 žingsnis: Gauti duomenys

Gauti duomenys
Gauti duomenys

Naudodami vieną jutiklį, gauname tokią serijinę išvestį.

8 žingsnis: įtraukite daugiau jutiklių

Įskaitant daugiau jutiklių
Įskaitant daugiau jutiklių
Įskaitant daugiau jutiklių
Įskaitant daugiau jutiklių

Norėdami patikrinti kodą, mes įvedame kitą jutiklį į ryšio liniją, tiesiog prijungdami jį lygiagrečiai su pirmuoju jutikliu.

Nepamirškite išjungti agregato prieš prijungdami naujus jutiklius.

Paleisdami surinkimą iš naujo, gavome šią išvestį be jokių šaltinio kodo pakeitimų.

9 veiksmas: peržiūrėkite šaltinį

#include "mbed.h" // inclusão da biblioteca padrão do MBED #include "DS1820.h" // incluã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 arba vetor de sensores DS1820* jutiklis [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 sensurares sensor [encontrados] = naujas 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) {sensor [0]-> convertTemperature (tiesa, DS1820:: visi įrenginiai); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); palaukti (1); }}

10 veiksmas: failai

PDF

Kiti

Rekomenduojamas: