Përmbajtje:

Tepër e lehtë për tu programuar !: 10 hapa
Tepër e lehtë për tu programuar !: 10 hapa

Video: Tepër e lehtë për tu programuar !: 10 hapa

Video: Tepër e lehtë për tu programuar !: 10 hapa
Video: Три бездомных котенка в черной машине. Чудеса случаются. 2024, Korrik
Anonim
Image
Image
Tepër e lehtë për tu programuar!
Tepër e lehtë për tu programuar!

Sot, unë do të flas për STM32 Core, L476RG, i cili është fytyra e Ultra Low Power. Mund ta shihni në të majtë të figurës. Kjo pajisje ka dy shufra pin femra, një në secilën anë, të cilat nuk janë asgjë më shumë se lidhësit për mburojën arduino. Kjo është e mrekullueshme, apo jo?

Sipas mendimit tim, STMicroelectronics e bëri këtë në Kompletin e saj të Zhvillimit sepse e di që profesionistët përdorin këtë çip. Kjo kompani po shkon gjithnjë e më shumë drejt arduino. Dhe kjo është gjithashtu e vërtetë për disa pajisje të tjera profesionale STMicroelectronics.

Së fundi, në lidhje me projektin sot, ne do të përdorim dy sensorë DS18b20 përveç L476RG. Pra, ne do të bëjmë një asamble të thjeshtë duke përdorur L476RG, do të importojmë një bibliotekë në mjedisin MBED, do të krijojmë një program në mjedisin MBED dhe do të marrim të dhëna nga L476RG nëpërmjet USB / Serial.

Unë tashmë kam folur pak për L476RG në këtë video: MAYNYRA MAS E LIR P TOR TGR PROGRAMUAR NJ MIKROKONTROLLUES, ku unë tregoj se si të konfiguroni mjedisin MBED, i cili është online.

Disa njerëz që ndjekin videot e mia po më pyesin nëse STM32 zëvendëson ESP32. Unë them një gjë: nuk zëvendëson dhe nuk mundet, sepse ato janë dy gjëra krejtësisht të ndryshme.

Ky çip STM32 është një mikrokontrollues, ose më mirë; nuk është një "grup gjërash" siç është ESP32. Pra, emri mund të duket i ngjashëm, por ato janë krejtësisht të ndryshme. STM32 është një mikrokontrollues me qëllime të përgjithshme, të tilla si një PIC, një Atmel, për shembull.

Hapi 1: Burimet e përdorura

Burimet e Përdorura
Burimet e Përdorura

1 Core L476RG

2 sensorë DS18b20 (ne përdorim modulet e zakonshme të papërshkueshëm nga uji në treg)

1 rezistencë 4k7

Mini protoboard

Kërcimtarët për lidhje

Hapi 2: Montimi

Kuvendi
Kuvendi

Fillimisht do të bëjmë montimin duke përdorur një nga sensorët e temperaturës.

Fuqia e tij do të jetë 5V.

Një rezistencë 4k7 do të përdoret për të bërë një tërheqje në vijën e të dhënave (1-Wire).

Ne do t'i lexojmë të dhënat duke përdorur pinin A0.

Hapi 3: Program i ri në MBED

Program i ri në MBED
Program i ri në MBED
Program i ri në MBED
Program i ri në MBED
Program i ri në MBED
Program i ri në MBED

Pasi të keni krijuar llogarinë tuaj në MBED dhe të keni qasje në të, ne do të krijojmë një program të ri. Për ta bërë këtë, klikoni me të djathtën në "Programet e mia" dhe zgjidhni "Programi i ri …"

Konfirmoni që "Platforma" përputhet me tabelën që po përdorni.

Tani klikojmë në "Template".

Ne do të krijojmë një program bazuar në shembullin, "Shfaq një mesazh në PC duke përdorur UART".

Shkruani emrin e programit në "Emri i Programit".

Kontrolloni opsionin "Përditësoni këtë program dhe bibliotekat në rishikimin e fundit".

Do të krijohet një dosje e re për programin tuaj, duke përfshirë bibliotekën e paracaktuar MBED dhe skedarin main.cpp.

Mund ta përdorni për të provuar nëse gjithçka po funksionon mirë. Për ta bërë këtë, thjesht përpiloni atë dhe kopjoni atë në platformë.

Duke përdorur një terminal serial sipas zgjedhjes suaj, mund të merrni mesazhet e mëposhtme.

Hapi 4: Importimi i Bibliotekës DS18b20

Importimi i Bibliotekës DS18b20
Importimi i Bibliotekës DS18b20

Meqenëse ekzistojnë disa versione të bibliotekave për Ds18b20, ne do të importojmë duke përdorur një url në mënyrë që shembulli juaj të përdorë të njëjtën bibliotekë.

Hapi 5: Program i ri në MBED

Program i ri në MBED
Program i ri në MBED
Program i ri në MBED
Program i ri në MBED

Në fushën "URL -ja e burimit" plotësoni: https://os.mbed.com/users/Sissors/code/DS1820/ dhe klikoni importin.

Biblioteka juaj DS1820 duhet të shfaqet në dosjen tuaj të programit.

Hapi 6: Kodi Burimor

Përfshin

Ne filluam duke përfshirë bibliotekat e nevojshme.

#përfshi "mbed.h" // përfshi bibliotekën e të dhënave në MBED#përfshi "DS1820.h" // përfshi bibliotekën e sensorit DS1820

Ne përcaktojmë konstantet që do të përfaqësojnë kunjat e përdorura.

Vini re se DS18b20 është një sensor me komunikim 1-WIRE. Për këtë arsye, ne përdorim bibliotekën që do të trajtojë të gjithë protokollin e komunikimit me pajisjet. Kjo përfshin identifikimin e secilës pajisje deri në komandat e leximit.

#përcaktoni PINO_DE_DADOS A0 // përcaktoni pino para leitura dos dados#përcaktoni MAX_SENSORES 16 // përcaktoni o numrat më të afërt për vetorin e sensores

Ne krijojmë një vektor që do të tregojë secilën nga 16 pajisjet e mundshme të lidhura me vijën e të dhënave.

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

Ne fillojmë metodën kryesore (), ku, duke përdorur metodën "unassignedProbe ()" të përmbajtur në bibliotekën DS1820, ne kërkojmë të gjitha pajisjet në dispozicion në linjën e komunikimit.

Ne e mbushim vektorin e sensorit me rastet që do të përfaqësojnë secilin nga sensorët në dispozicion.

Ne e bëjmë këtë derisa të gjendet i fundit ose derisa të arrijmë maksimumin prej 16 sensorë.

int main () {int encontrados = 0; ndërsa (DS1820:: sonda e pacaktuar (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = DS1820 i ri (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; nëse (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; }

Ne dërgojmë numrin e sensorëve të gjetur në linjë.

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

Ne fillojmë një lak të pafund, duke kërkuar që të gjithë sensorët e disponueshëm të llogaritin temperaturat e tyre përkatëse, dhe pastaj të përsërisin përmes vektorit të sensorit duke dërguar leximet e marra.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); ndërsa (1) {sensor [0]-> convertTemperature (e vërtetë, DS1820:: të gjitha_pajisjet); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //. Me Me e retorna a temperatura printf ("\ r / n"); prit (1); }

Hapi 7: Të dhënat e marra

Të dhënat e marra
Të dhënat e marra

Duke përdorur një sensor të vetëm, marrim daljen serike të mëposhtme.

Hapi 8: Përfshirja e më shumë sensorëve

Përfshirë më shumë sensorë
Përfshirë më shumë sensorë
Përfshirë më shumë sensorë
Përfshirë më shumë sensorë

Për të testuar kodin, ne prezantojmë një sensor tjetër në linjën e komunikimit, thjesht duke e lidhur atë paralelisht me sensorin e parë.

Mos harroni të fikni montimin para se të lidhni sensorë të rinj.

Kur rinisim asamblenë, morëm daljen e mëposhtme, pa asnjë ndryshim në kodin burimor.

Hapi 9: Shikoni Burimin

#përfshi "mbed.h" // përfshirë bibliotekën e të dhënave për MBED #përfshijnë "DS1820.h" // përfshirë bibliotekën për sensorin DS1820 #përcakto PINO_DE_DADOS A0 // përcakto pino për leitura dos dados #define MAX_SENSORES 16 // përcakto o numrat më të afërt për të kontrolluar sensorët DS1820* sensor [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0; ndërsa (DS1820:: sonda e pacaktuar (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = DS1820 i ri (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; nëse (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); ndërsa (1) {sensor [0]-> convertTemperature (e vërtetë, DS1820:: të gjitha_pajisjet); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //. Me Me e retorna a temperatura printf ("\ r / n"); prit (1); }}

Hapi 10: Skedarët

PDF

Të tjerët

Recommended: