Cov txheej txheem:

Yooj yim heev rau txoj haujlwm!: 10 Kauj Ruam
Yooj yim heev rau txoj haujlwm!: 10 Kauj Ruam

Video: Yooj yim heev rau txoj haujlwm!: 10 Kauj Ruam

Video: Yooj yim heev rau txoj haujlwm!: 10 Kauj Ruam
Video: Hwm Pheej Thoj - Rov Mus Txog Vib Nais 2024, Kaum ib hlis
Anonim
Image
Image
Yooj yim heev rau txoj haujlwm!
Yooj yim heev rau txoj haujlwm!

Hnub no, kuv yuav tham txog STM32 Core, L476RG, uas yog lub ntsej muag ntawm Ultra Low Power. Koj tuaj yeem pom nws ntawm sab laug ntawm daim duab. Cov cuab yeej no muaj ob tus poj niam tus pas tuav, ib qho ntawm txhua sab, uas tsis muaj dab tsi ntau dua li cov txuas rau cov ntaub thaiv npog arduino. Qhov no zoo heev, tsis yog?

Hauv kuv lub tswv yim, STMicroelectronics tau ua qhov no hauv nws Cov Khoom Txhim Kho vim nws paub cov kws tshaj lij siv cov nti no. Lub tuam txhab no tau mus ntau thiab ntau ntxiv rau ntawm arduino. Thiab qhov no kuj muaj tseeb rau ntau lwm yam khoom siv STMicroelectronics.

Thaum kawg, hais txog txoj haujlwm niaj hnub no, peb yuav siv ob lub DS18b20 lub cim ntxiv rau L476RG. Yog li peb yuav ua qhov kev sib dhos yooj yim siv L476RG, ntshuam lub tsev qiv ntawv rau hauv MBED ib puag ncig, tsim cov haujlwm hauv MBED ib puag ncig, thiab tau txais cov ntaub ntawv los ntawm L476RG ntawm USB / Serial.

Kuv twb tau tham me ntsis txog L476RG hauv daim vis dis aus no: YOOJ YIM YOOJ YIM RAU PROGRAM MICROCONTROLLER, qhov uas kuv qhia yuav teeb tsa MBED ib puag ncig, uas yog online.

Qee tus neeg uas ua raws kuv cov vis dis aus tau nug kuv yog tias STM32 hloov pauv ESP32. Kuv hais ib yam: nws tsis hloov thiab nws ua tsis tau, vim tias lawv yog ob yam sib txawv kiag li.

Cov nti STM32 no yog microcontroller, lossis theej; nws tsis yog "pawg ntawm yam" ib yam li ESP32. Yog li lub npe yuav zoo ib yam, tab sis lawv sib txawv kiag li. STM32 yog lub hom phiaj dav siv microcontroller, xws li PIC, Atmel, piv txwv.

Kauj Ruam 1: Cov Khoom Siv

Cov peev txheej siv
Cov peev txheej siv

1 Tub Ntxhais L476RG

2 DS18b20 sensors (peb siv cov qauv dej tsis sib xws ntawm lub khw)

14k7 tiv

Mini protoboard

Jumpers rau kev txuas

Kauj ruam 2: Sib dhos

Los ua ke
Los ua ke

Peb yuav pib ua qhov kev sib dhos siv ib qho ntawm qhov ntsuas kub.

Nws lub zog yuav yog 5V.

4k7 tus tiv thaiv yuav raug siv los rub tawm ntawm kab ntawv (1-Hlau).

Peb yuav nyeem cov ntaub ntawv siv tus lej A0.

Kauj Ruam 3: Txoj Haujlwm Tshiab hauv MBED

Txoj Haujlwm Tshiab hauv MBED
Txoj Haujlwm Tshiab hauv MBED
Txoj Haujlwm Tshiab hauv MBED
Txoj Haujlwm Tshiab hauv MBED
Txoj Haujlwm Tshiab hauv MBED
Txoj Haujlwm Tshiab hauv MBED

Thaum koj muaj koj tus lej teeb tsa hauv MBED thiab nkag mus rau nws, peb yuav tsim txoj haujlwm tshiab. Txhawm rau ua qhov no, nyem rau "My Programs" thiab xaiv "New Program …"

Paub meej tias "Platform" ua tau raws li lub rooj tsavxwm uas koj siv.

Tam sim no peb nyem rau ntawm "Template".

Peb yuav tsim ib txoj haujlwm raws li qhov piv txwv, "Qhia cov lus ntawm PC siv UART".

Sau lub npe ntawm qhov program hauv "Program Name".

Txheeb xyuas "Hloov kho qhov program no thiab cov tsev qiv ntawv rau qhov hloov kho tshiab kawg".

Ib daim nplaub tshev tshiab rau koj txoj haujlwm yuav raug tsim, suav nrog lub tsev qiv ntawv MBED tsis raug thiab cov ntaub ntawv tseem ceeb.cpp.

Koj tuaj yeem siv nws los ntsuas yog tias txhua yam ua haujlwm tau zoo. Txhawm rau ua qhov no, tsuas yog sau nws thiab luam nws mus rau lub platform.

Siv lub davhlau ya nyob twg ntawm qhov koj xaiv, koj tuaj yeem tau txais cov lus hauv qab no.

Kauj Ruam 4: Ntshuam DS18b20 Lub Tsev Qiv Ntawv

Ntshuam DS18b20 Lub Tsev Qiv Ntawv
Ntshuam DS18b20 Lub Tsev Qiv Ntawv

Raws li muaj ntau ntau lub tsev qiv ntawv rau Ds18b20, peb yuav ntshuam siv url kom koj tus piv txwv siv tib lub tsev qiv ntawv.

Kauj Ruam 5: Txoj Haujlwm Tshiab hauv MBED

Txoj Haujlwm Tshiab hauv MBED
Txoj Haujlwm Tshiab hauv MBED
Txoj Haujlwm Tshiab hauv MBED
Txoj Haujlwm Tshiab hauv MBED

Hauv qhov "Source URL" teb sau: https://os.mbed.com/users/Sissors/code/DS1820/ thiab nyem ntshuam.

Koj lub tsev qiv ntawv DS1820 yuav tsum tshwm nyob rau hauv koj li program program.

Kauj ruam 6: Source Code

Suav nrog

Peb pib los ntawm suav nrog cov tsev qiv ntawv tsim nyog.

#suav nrog "mbed.h" // suav nrog biblioteca padrão ua MBED#suav nrog "DS1820.h" // suav nrog biblioteca ua sensor DS1820

Peb txheeb xyuas qhov ruaj khov uas yuav sawv cev rau cov koob siv.

Nco ntsoov tias DS18b20 yog lub ntsuas nrog 1-WIRE kev sib txuas lus. Vim li no, peb siv lub tsev qiv ntawv uas yuav lis tag nrho cov txheej txheem ntawm kev sib txuas lus nrog cov khoom siv. Qhov no suav nrog txheeb xyuas txhua lub cuab yeej kom nyeem cov lus txib.

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

Peb tsim cov vector uas yuav taw qhia rau txhua ntawm 16 yam khoom siv tau txuas nrog kab ntawv.

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

Peb pib lub ntsiab () txoj hauv kev, qhov twg, siv "unassignedProbe ()" txoj hauv kev hauv DS1820 lub tsev qiv ntawv, peb saib rau txhua qhov khoom siv muaj nyob hauv kab kev sib txuas lus.

Peb sau lub sensor vector nrog cov xwm txheej uas yuav sawv cev rau txhua tus ntawm cov khoom siv uas muaj.

Peb ua qhov no kom txog thaum pom qhov kawg lossis txog thaum peb mus txog qhov siab tshaj ntawm 16 lub cim.

int lub ntsiab () {int encontrados = 0; thaum (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = tshiab DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; yog (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores tawg; }

Peb xa tus lej ntsuas pom ntawm kab.

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

Peb pib lub voj tsis muaj qhov kawg, thov kom txhua lub ntsuas hluav taws xob suav lawv qhov kub thiab txias, thiab tom qab ntawd rov ua dua los ntawm lub ntsuas hluav taws xob los ntawm kev xa cov ntawv nyeem tau.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); thaum (1) {sensor [0]-> convertTemperature (tseeb, DS1820:: all_devices); // solicita leitura de temperatura para todos os dispositivos encontrados rau (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); tos (1); }

Kauj Ruam 7: Cov Ntaub Ntawv Tau Txais

Cov Ntaub Ntawv Tau Txais
Cov Ntaub Ntawv Tau Txais

Siv tib lub ntsuas, peb tau txais cov ntawv txuas hauv qab no.

Kauj Ruam 8: suav nrog Cov Kws Tshaj Lij Ntau

Xws li Ntau Cov Cuab Yeej
Xws li Ntau Cov Cuab Yeej
Xws li Ntau Cov Cuab Yeej
Xws li Ntau Cov Cuab Yeej

Txhawm rau ntsuas tus lej, peb qhia lwm qhov ntsuas hauv kab kev sib txuas lus, yooj yim los ntawm kev txuas nws ua ke nrog thawj lub ntsuas.

Nco ntsoov hloov lub rooj sib dhos ua ntej txuas cov ntsuas tshiab.

Thaum rov pib dua lub rooj sib txoos, peb tau txais cov txiaj ntsig hauv qab no, tsis muaj kev hloov pauv hauv qhov chaws.

Kauj Ruam 9: Saib Source

#suav nrog "mbed.h" // suav nrog hauv biblioteca padrão ua MBED #suav nrog "DS1820.h" // suav nrog cov ntaub ntawv hauv biblioteca ua sensor DS1820 #define PINO_DE_DADOS A0 // txhais o pino para leitura dos dados #define MAX_SENSORES 16 // txhais o número máximo para o vetor de sensores DS1820* sensor [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0; thaum (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = tshiab DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; yog (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores tawg; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); thaum (1) {sensor [0]-> convertTemperature (tseeb, DS1820:: all_devices); // solicita leitura de temperatura para todos os dispositivos encontrados rau (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); tos (1); }}

Kauj ruam 10: Cov ntaub ntawv

PDF

Lwm tus

Pom zoo: