Sisällysluettelo:

Uskomattoman helppo ohjelmoida !: 10 vaihetta
Uskomattoman helppo ohjelmoida !: 10 vaihetta

Video: Uskomattoman helppo ohjelmoida !: 10 vaihetta

Video: Uskomattoman helppo ohjelmoida !: 10 vaihetta
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Marraskuu
Anonim
Image
Image
Uskomattoman helppo ohjelmoida!
Uskomattoman helppo ohjelmoida!

Tänään puhun STM32 -ytimestä, L476RG: stä, joka on Ultra Low Powerin kasvot. Näet sen kuvan vasemmalla puolella. Tässä laitteessa on kaksi naarastappia, yksi kummallakin puolella, jotka ovat vain arduino -suojan liittimet. Tämä on hienoa, eikö?

Mielestäni STMicroelectronics teki tämän kehityspaketissaan, koska se tietää ammattilaisten käyttävän tätä sirua. Tämä yritys on menossa yhä enemmän kohti arduinoa. Tämä pätee myös useisiin muihin ammattimaisiin STMicroelectronics -sarjoihin.

Lopuksi, mitä tulee hankkeeseen tänään, käytämme L476RG: n lisäksi kahta DS18b20 -anturia. Joten teemme yksinkertaisen kokoonpanon L476RG: n avulla, tuomme kirjaston MBED -ympäristöön, luomme ohjelman MBED -ympäristössä ja keräämme tietoja L476RG: stä USB- / sarjaportin kautta.

Olen jo puhunut hieman L476RG: stä tässä videossa: HELPPO TAPA OHJELMOIDA MIKROKONTROLLERIA, jossa näytän kuinka määrittää verkossa oleva MBED -ympäristö.

Jotkut videoitani seuraavat ihmiset kysyvät minulta, korvaako STM32 ESP32: n. Sanon yhden asian: se ei korvaa eikä voinut, koska ne ovat kaksi täysin eri asiaa.

Tämä STM32 -siru on mikro -ohjain, tai pikemminkin; se ei ole "asiakokonaisuus" kuten ESP32. Joten nimi voi näyttää samalta, mutta ne ovat täysin erilaisia. STM32 on yleiskäyttöinen mikro -ohjain, kuten PIC, esimerkiksi Atmel.

Vaihe 1: Käytetyt resurssit

Käytetyt resurssit
Käytetyt resurssit

1 ydin L476RG

2 DS18b20 -anturia (käytämme markkinoilla olevia yleisiä vedenpitäviä moduuleja)

1 4k7 vastus

Mini protoboard

Puserot liittämistä varten

Vaihe 2: Kokoonpano

Kokoonpano
Kokoonpano

Suoritamme aluksi asennuksen jollakin lämpötila -antureista.

Sen teho on 5 V.

4k7-vastusta käytetään datalinjan vetämiseen (1-johdin).

Luemme tiedot A0 -nastalla.

Vaihe 3: Uusi ohjelma MBED: ssä

Uusi ohjelma MBED: ssä
Uusi ohjelma MBED: ssä
Uusi ohjelma MBED: ssä
Uusi ohjelma MBED: ssä
Uusi ohjelma MBED: ssä
Uusi ohjelma MBED: ssä

Kun olet määrittänyt tilisi MBED -palveluun ja käytät sitä, luomme uuden ohjelman. Voit tehdä tämän napsauttamalla hiiren kakkospainikkeella "Omat ohjelmat" ja valitsemalla "Uusi ohjelma …"

Varmista, että "alusta" on käyttämäsi levyn mukainen.

Napsauta nyt "Malli".

Luomme ohjelman esimerkin "Näytä viesti PC: llä UART: lla" perusteella.

Kirjoita ohjelman nimi kohtaan "Ohjelman nimi".

Valitse "Päivitä tämä ohjelma ja kirjastot uusimpaan versioon".

Ohjelmalle luodaan uusi kansio, joka sisältää oletus -MBED -kirjaston ja main.cpp -tiedoston.

Sen avulla voit testata, toimiiko kaikki hyvin. Voit tehdä tämän yksinkertaisesti kääntämällä sen ja kopioimalla sen alustalle.

Käyttämällä valitsemaasi sarjapäätettä voit vastaanottaa seuraavat viestit.

Vaihe 4: DS18b20 -kirjaston tuominen

DS18b20 -kirjaston tuominen
DS18b20 -kirjaston tuominen

Koska Ds18b20: n kirjastoista on useita versioita, tuomme URL -osoitteen avulla, jotta esimerkissäsi käytetään samaa kirjastoa.

Vaihe 5: Uusi ohjelma MBED: ssä

Uusi ohjelma MBED: ssä
Uusi ohjelma MBED: ssä
Uusi ohjelma MBED: ssä
Uusi ohjelma MBED: ssä

Täytä Lähde -URL -kenttään: https://os.mbed.com/users/Sissors/code/DS1820/ ja valitse Tuo.

DS1820 -kirjastosi pitäisi näkyä ohjelmakansiossasi.

Vaihe 6: Lähdekoodi

Sisältää

Aloitimme sisällyttämällä tarvittavat kirjastot.

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

Määritämme vakioita, jotka edustavat käytettyjä nastoja.

Huomaa, että DS18b20 on anturi, jossa on 1-WIRE-tiedonsiirto. Tästä syystä käytämme kirjastoa, joka käsittelee koko viestintäprotokollan laitteiden kanssa. Tämä sisältää jokaisen laitteen tunnistamisen lukukomentoihin asti.

#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

Luomme vektorin, joka osoittaa jokaisen 16 datalinjaan yhdistetyn mahdollisen laitteen kohdalle.

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

Aloitamme main () -menetelmän, jossa etsimme DS1820 -kirjaston sisältämää "unassignedProbe ()" -menetelmää käyttäen kaikki käytettävissä olevat laitteet tietoliikennelinjalla.

Täytämme anturivektorin tapauksilla, jotka edustavat kutakin käytettävissä olevaa anturia.

Teemme tätä kunnes viimeinen on löydetty tai kunnes saavutamme enintään 16 anturia.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// aloitetaan hankinta sensores sensor [encontrados] = uusi DS1820 (PINO_DE_DADOS); // cria uma instancia para tai sensori encontrado encontrados ++; if (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; }

Lähetämme riviltä löydettyjen antureiden määrän.

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

Aloitamme äärettömän silmukan pyytämällä, että kaikki käytettävissä olevat anturit laskevat vastaavat lämpötilansa ja toistavat sitten anturivektorin läpi lähettämällä saadut lukemat.

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

Vaihe 7: Vastaanotetut tiedot

Tiedot vastaanotettu
Tiedot vastaanotettu

Yhdellä anturilla saadaan seuraava sarjalähtö.

Vaihe 8: Lisää antureita

Sisältää lisää antureita
Sisältää lisää antureita
Sisältää lisää antureita
Sisältää lisää antureita

Koodin testaamiseksi tuomme tietoliikennelinjaan toisen anturin yksinkertaisesti kytkemällä sen rinnakkain ensimmäisen anturin kanssa.

Muista sammuttaa kokoonpano ennen uusien antureiden liittämistä.

Kun kokoonpano käynnistettiin uudelleen, saimme seuraavan tuloksen ilman muutoksia lähdekoodiin.

Vaihe 9: Näytä lähde

#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 tai vetor de sensores DS1820* anturi [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// aloitetaan hankinta sensores sensor [encontrados] = uusi DS1820 (PINO_DE_DADOS); // cria uma instancia para tai sensori 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 (totta, DS1820:: kaikki_laitteet); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); odota (1); }}

Vaihe 10: Tiedostot

PDF

Muut

Suositeltava: