Taula de continguts:

Increïblement fàcil de programar: 10 passos
Increïblement fàcil de programar: 10 passos

Vídeo: Increïblement fàcil de programar: 10 passos

Vídeo: Increïblement fàcil de programar: 10 passos
Vídeo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Juliol
Anonim
Image
Image
Increïblement fàcil de programar
Increïblement fàcil de programar

Avui parlaré del STM32 Core, el L476RG, que és la cara d’Ultra Low Power. El podeu veure a l’esquerra de la imatge. Aquest dispositiu té dues barres de pins femelles, una a cada costat, que no són res més que els connectors del blindatge arduino. Això és fantàstic, no?

Al meu parer, STMicroelectronics ho va fer al seu kit de desenvolupament perquè sap que els professionals fan servir aquest xip. Aquesta empresa va cada cop més cap a l’arduino. I això també és cert per a diversos altres kits professionals de STMicroelectronics.

Finalment, pel que fa al projecte d’avui, farem servir dos sensors DS18b20 a més del L476RG. Així, farem un muntatge senzill mitjançant el L476RG, importarem una biblioteca a l’entorn MBED, crearem un programa a l’entorn MBED i obtindrem dades del L476RG mitjançant USB / sèrie.

Ja he parlat una mica sobre el L476RG en aquest vídeo: LA FORMA MÉS FÀCIL DE PROGRAMAR UN MICROCONTROLLER, on mostro com configurar l'entorn MBED, que està en línia.

Algunes persones que segueixen els meus vídeos em pregunten si STM32 substitueix ESP32. Jo dic una cosa: no substitueix i no podria, perquè són dues coses completament diferents.

Aquest xip STM32 és un microcontrolador, o millor dit; no és un "cúmul de coses" com és l'ESP32. Per tant, el nom pot semblar similar, però són completament diferents. El STM32 és un microcontrolador d’ús general, com ara un PIC, un Atmel, per exemple.

Pas 1: recursos utilitzats

Recursos utilitzats
Recursos utilitzats

1 nucli L476RG

2 sensors DS18b20 (utilitzem els mòduls impermeables habituals del mercat)

1 resistència 4k7

Mini protoborda

Jumpers per a connexió

Pas 2: Muntatge

muntatge
muntatge

Inicialment realitzarem el muntatge mitjançant un dels sensors de temperatura.

La seva potència serà de 5V.

S’utilitzarà una resistència 4k7 per fer una extracció de la línia de dades (1-Wire).

Llegirem les dades mitjançant el pin A0.

Pas 3: nou programa a MBED

Nou programa en MBED
Nou programa en MBED
Nou programa en MBED
Nou programa en MBED
Nou programa en MBED
Nou programa en MBED

Un cop hàgiu configurat el compte a MBED i hi accediu, crearem un programa nou. Per fer-ho, feu clic amb el botó dret a "Els meus programes" i seleccioneu "Programa nou …"

Confirmeu que la "Plataforma" s'ajusta al tauler que feu servir.

Ara fem clic a "Plantilla".

Crearem un programa basat en l'exemple "Mostra un missatge a l'ordinador mitjançant UART".

Introduïu el nom del programa a "Nom del programa".

Marqueu l'opció "Actualitza aquest programa i les biblioteques a la versió més recent".

Es crearà una nova carpeta per al vostre programa, inclosa la biblioteca MBED per defecte i el fitxer main.cpp.

Podeu utilitzar-lo per comprovar si tot funciona bé. Per fer-ho, simplement compileu-lo i copieu-lo a la plataforma.

Mitjançant un terminal sèrie que trieu, podeu rebre els missatges següents.

Pas 4: importació de la biblioteca DS18b20

Importació de la biblioteca DS18b20
Importació de la biblioteca DS18b20

Com que hi ha diverses versions de biblioteques per al Ds18b20, les importarem mitjançant una url perquè el vostre exemple utilitzi la mateixa biblioteca.

Pas 5: nou programa a MBED

Nou programa en MBED
Nou programa en MBED
Nou programa en MBED
Nou programa en MBED

Al camp "URL d'origen", empleneu: https://os.mbed.com/users/Sissors/code/DS1820/ i feu clic a Importa.

La vostra biblioteca DS1820 hauria d'aparèixer a la carpeta del programa.

Pas 6: codi font

Inclou

Vam començar incloent les biblioteques necessàries.

#include "mbed.h" // inclusió de la biblioteca del MBED # include "DS1820.h" // inclusió de la biblioteca del sensor DS1820

Definim constants que representaran els pins utilitzats.

Tingueu en compte que el DS18b20 és un sensor amb comunicació 1-WIRE. Per aquest motiu, fem servir la biblioteca que gestionarà tot el protocol de comunicació amb els dispositius. Això inclou identificar cada dispositiu fins a les ordres de lectura.

#define PINO_DE_DADOS A0 // define o pino para leitura dos dados # define MAX_SENSORES 16 // define o nombre máximo para o vetor de sensores

Creem un vector que apuntarà a cadascun dels 16 dispositius possibles connectats a la línia de dades.

Sensor DS1820 * [MAX_SENSORES]; // cria um vetor com 16 posicions per a sensors

Comencem el mètode main (), on, mitjançant el mètode "unassignedProbe ()" contingut a la biblioteca DS1820, busquem tots els dispositius disponibles a la línia de comunicació.

Omplim el vector del sensor amb les instàncies que representaran cadascun dels sensors disponibles.

Ho fem fins que es troba l'últim o fins que arribem al màxim de 16 sensors.

int main () {int trobats = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia una procura per sensors sensor [encontrados] = new 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; }

Enviem el nombre de sensors trobats a la línia.

printf ("Dispositius trobats:% d / r / n / n", trobats);

Comencem un bucle infinit, sol·licitant que tots els sensors disponibles calculin les seves respectives temperatures i, a continuació, itereu a través del vector del sensor enviant les lectures obtingudes.

printf ("Dispositius trobats:% d / r / n / n", trobats); while (1) {sensor [0] -> convertTemperature (true, DS1820:: all_devices); // sol·licita una leitura de temperatura per a tots els dispositius trobats for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); esperar (1); }

Pas 7: dades rebudes

Dades rebudes
Dades rebudes

Utilitzant un sensor únic, obtenim la següent sortida sèrie.

Pas 8: incloure més sensors

Inclou més sensors
Inclou més sensors
Inclou més sensors
Inclou més sensors

Per provar el codi, introduïm un altre sensor a la línia de comunicació, simplement connectant-lo en paral·lel amb el primer sensor.

Recordeu que heu d'apagar el conjunt abans de connectar nous sensors.

En reiniciar el muntatge, vam obtenir la següent sortida, sense cap canvi en el codi font.

Pas 9: veure la font

#include "mbed.h" // inclusió da biblioteca padrão do MBED # include "DS1820.h" // inclusió 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àxim per a vetor de sensors DS1820 * sensor [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia una procura per sensors sensor [encontrados] = new 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 ("Dispositius trobats:% d / r / n / n", trobats); while (1) {sensor [0] -> convertTemperature (true, DS1820:: all_devices); // sol·licita una leitura de temperatura per a tots els dispositius trobats for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); esperar (1); }}

Pas 10: fitxers

PDF

Altres

Recomanat: