Talaan ng mga Nilalaman:

Hindi kapani-paniwalang Madaling Mag-Program !: 10 Hakbang
Hindi kapani-paniwalang Madaling Mag-Program !: 10 Hakbang

Video: Hindi kapani-paniwalang Madaling Mag-Program !: 10 Hakbang

Video: Hindi kapani-paniwalang Madaling Mag-Program !: 10 Hakbang
Video: 10 Senyales Na Hindi Mapagkakatiwalaan Ang Isang Tao 2024, Hulyo
Anonim
Image
Image
Hindi kapani-paniwalang Madaling Mag-Program!
Hindi kapani-paniwalang Madaling Mag-Program!

Ngayon, pag-uusapan ko ang tungkol sa STM32 Core, ang L476RG, na kung saan ay ang mukha ng Ultra Low Power. Maaari mo itong makita sa kaliwa ng imahe. Ang aparato na ito ay may dalawang mga babaeng pin bar, isa sa bawat panig, na kung saan ay hindi hihigit sa mga konektor para sa arduino Shield. Magaling ito, hindi?

Sa palagay ko, ginawa ito ng STMicroelectronics sa Development Kit dahil alam nitong ginagamit ng mga propesyonal ang chip na ito. Ang kumpanyang ito ay dumarami nang patungo sa arduino. At totoo rin ito para sa maraming iba pang mga propesyonal na kit ng STMicroelectronics.

Panghuli, patungkol sa proyekto ngayon, gagamit kami ng dalawang sensor ng DS18b20 bilang karagdagan sa L476RG. Gumagawa kami ng isang simpleng pagpupulong gamit ang L476RG, pag-import ng isang aklatan sa kapaligiran ng MBED, paglikha ng isang programa sa kapaligiran na MBED, at pagkuha ng data mula sa L476RG sa pamamagitan ng USB / Serial.

Napag-usapan ko na nang kaunti ang tungkol sa L476RG sa video na ito: ANG DALI NG PARAAN SA PROGRAMA Isang MICROCONTROLLER, kung saan ipinapakita ko kung paano i-configure ang MBED na kapaligiran, na online.

Ang ilang mga tao na sumusunod sa aking mga video ay tinatanong ako kung pinalitan ng STM32 ang ESP32. Sinasabi ko ang isang bagay: hindi ito papalit at hindi ito magagawa, sapagkat ang dalawa ay ganap na magkakaibang bagay.

Ang STM32 chip na ito ay isang microcontroller, o sa halip; hindi ito isang "kumpol ng mga bagay" tulad ng ESP32. Kaya't maaaring magkatulad ang pangalan, ngunit magkakaiba ang mga ito. Ang STM32 ay isang pangkalahatang layunin microcontroller, tulad ng isang PIC, isang Atmel, halimbawa.

Hakbang 1: Ginamit na Mga Mapagkukunan

Ginamit na Mga Mapagkukunan
Ginamit na Mga Mapagkukunan

1 Core L476RG

2 mga sensor ng DS18b20 (ginagamit namin ang karaniwang mga module na hindi tinatagusan ng tubig sa merkado)

1 4k7 risistor

Mini protoboard

Mga jumper para sa koneksyon

Hakbang 2: Assembly

Assembly
Assembly

Una naming isasagawa ang pagpupulong gamit ang isa sa mga sensor ng temperatura.

Ang lakas nito ay magiging 5V.

Ang isang 4k7 risistor ay gagamitin upang gumawa ng isang pull-up sa linya ng data (1-Wire).

Babasahin namin ang data gamit ang A0 pin.

Hakbang 3: Bagong Program sa MBED

Bagong Programa sa MBED
Bagong Programa sa MBED
Bagong Programa sa MBED
Bagong Programa sa MBED
Bagong Programa sa MBED
Bagong Programa sa MBED

Kapag naayos mo na ang iyong account sa MBED at na-access ito, lilikha kami ng isang bagong programa. Upang magawa ito, mag-right click sa "Aking Mga Program" at piliin ang "Bagong Program …"

Kumpirmahing ang "Platform" ay umaayon sa board na iyong ginagamit.

Nag-click kami ngayon sa "Template".

Lilikha kami ng isang programa batay sa halimbawa, "Magpakita ng isang mensahe sa PC gamit ang UART".

Ipasok ang pangalan ng programa sa "Pangalan ng Program".

Suriin ang opsyong "I-update ang program na ito at mga aklatan sa pinakabagong pagbabago".

Ang isang bagong folder para sa iyong programa ay malilikha, kasama ang default na MBED library at ang main.cpp file.

Maaari mo itong gamitin upang subukan kung ang lahat ay gumagana nang maayos. Upang magawa ito, i-compile lamang ito at kopyahin ito sa platform.

Gamit ang isang serial terminal na iyong pinili, maaari kang makatanggap ng mga sumusunod na mensahe.

Hakbang 4: Pag-import ng DS18b20 Library

Pag-import ng DS18b20 Library
Pag-import ng DS18b20 Library

Tulad ng maraming mga bersyon ng mga aklatan para sa Ds18b20, mag-a-import kami gamit ang isang url upang ang iyong halimbawa ay gumagamit ng parehong library.

Hakbang 5: Bagong Programa sa MBED

Bagong Programa sa MBED
Bagong Programa sa MBED
Bagong Programa sa MBED
Bagong Programa sa MBED

Sa patlang na "Source URL" punan ang: https://os.mbed.com/users/Sissors/code/DS1820/ at i-click ang import.

Ang iyong DS1820 library ay dapat na lumitaw sa iyong folder ng programa.

Hakbang 6: Source Code

May kasamang

Nagsimula kami sa pamamagitan ng pagsasama ng mga kinakailangang aklatan.

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

Tinutukoy namin ang mga pare-pareho na kumakatawan sa ginamit na mga pin.

Tandaan na ang DS18b20 ay isang sensor na may 1-WIRE na komunikasyon. Para sa kadahilanang ito, ginagamit namin ang library na hahawak sa buong protocol ng komunikasyon sa mga aparato. Kasama rito ang pagkilala sa bawat aparato hanggang sa mga nabasang utos.

# tukuyin ang PINO_DE_DADOS A0 // tukuyin ang pino para sa leitura dos dados # tukuyin ang MAX_SENSORES 16 // tukuyin kung hindi ka makakagawa para sa vetor de sensores

Lumilikha kami ng isang vector na magtuturo sa bawat isa sa 16 mga posibleng aparato na konektado sa linya ng data.

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

Sinimulan namin ang pangunahing () pamamaraan, kung saan, gamit ang "unassignedProbe ()" na pamamaraan na nilalaman sa DS1820 library, hinahanap namin ang lahat ng mga magagamit na aparato sa linya ng komunikasyon.

Pinupunan namin ang sensor vector ng mga pagkakataong kumakatawan sa bawat isa sa mga magagamit na sensor.

Ginagawa namin ito hanggang sa ang huli ay makita o hanggang sa maabot namin ang maximum na 16 na sensor.

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

Ipinapadala namin ang bilang ng mga sensor na matatagpuan sa linya.

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

Nagsisimula kami ng isang walang katapusang loop, na humihiling na ang lahat ng mga magagamit na sensor ay kalkulahin ang kani-kanilang mga temperatura, at pagkatapos ay umulit sa pamamagitan ng sensor vector sa pamamagitan ng pagpapadala ng mga nabasa na nakuha.

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

Hakbang 7: Natanggap ang Data

Natanggap ang Data
Natanggap ang Data

Gamit ang isang solong sensor, nakukuha namin ang sumusunod na serial output.

Hakbang 8: Kabilang ang Higit pang Mga Sensor

Kabilang ang Higit pang Mga Sensor
Kabilang ang Higit pang Mga Sensor
Kabilang ang Higit pang Mga Sensor
Kabilang ang Higit pang Mga Sensor

Upang subukan ang code, nagpapakilala kami ng isa pang sensor sa linya ng komunikasyon, sa pamamagitan lamang ng pagkonekta nito nang kahanay sa unang sensor.

Tandaan na patayin ang pagpupulong bago kumonekta sa mga bagong sensor.

Kapag nai-restart ang pagpupulong, nakuha namin ang sumusunod na output, nang walang anumang mga pagbabago sa source code.

Hakbang 9: Tingnan ang Pinagmulan

#include "mbed.h" // inclusão da biblioteca padrão do MBED # isama ang "DS1820.h" // inclusão da biblioteca do sensor DS1820 #define PINO_DE_DADOS A0 // tukuyin o pino para sa leitura dos naging #define MAX_SENSORES 16 // tukuyin o número máximo para sa vetor de sensores DS1820 * sensor [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0; habang (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = bagong DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; kung (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; } printf ("Dispositivos encontrado (s):% d / r / n / n", encontrados); habang (1) {sensor [0] -> convertTemperature (totoo, DS1820:: all_devices); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); maghintay (1); }}

Hakbang 10: Mga File

PDF

Ang iba pa

Inirerekumendang: