Taula de continguts:
- Pas 1: recursos utilitzats
- Pas 2: Muntatge
- Pas 3: nou programa a MBED
- Pas 4: importació de la biblioteca DS18b20
- Pas 5: nou programa a MBED
- Pas 6: codi font
- Pas 7: dades rebudes
- Pas 8: incloure més sensors
- Pas 9: veure la font
- Pas 10: fitxers
Vídeo: Increïblement fàcil de programar: 10 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
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
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
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
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
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
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
Utilitzant un sensor únic, obtenim la següent sortida sèrie.
Pas 8: incloure 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
Altres
Recomanat:
Com programar Arduino Mega 2560 Core ?: 3 passos
Com es programa Arduino Mega 2560 Core ?: He trobat aquesta gran placa de format petit Arduino a eBay. És una versió més petita d'Arduino mega 2560 i aparentment es diu Arduino mega core … Però hi ha un problema. No inclou connectivitat usb i no hi ha molt a dins
La manera més fàcil de programar un microcontrolador: 9 passos
La manera més fàcil de programar un microcontrolador: us interessa tenir un microcontrolador que consumeixi molta menys energia? Avui us presentaré l’STM32 Ultra Low Power - L476RG, que utilitza 4 vegades menys energia que un Arduino Mega i compta amb un potent processador Cortex. Jo també no
DIY MusiLED, LEDs sincronitzats de música amb aplicació Windows i Linux amb un clic (32 i 64 bits). Fàcil de recrear, fàcil d'utilitzar, fàcil de transportar: 3 passos
DIY MusiLED, LEDs sincronitzats de música amb aplicació Windows i Linux amb un clic (32 i 64 bits). Fàcil de recrear, fàcil d'utilitzar i fàcil de portar: aquest projecte us ajudarà a connectar 18 LED (6 vermells + 6 blaus + 6 grocs) a la vostra placa Arduino i analitzar els senyals en temps real de la targeta de so de l'ordinador i transmetre'ls a els LED per il·luminar-los segons els efectes del ritme (Snare, High Hat, Kick)
Com construir una llanterna LED increïblement brillant: 8 passos (amb imatges)
Com construir una llanterna LED increïblement brillant!: En aquest instructiu (el meu primer) us mostraré com he construït aquesta llanterna LED de mà ridículament brillant perquè vosaltres també pugueu convertir la nit en dia … i impressionar als vostres amics. de nosaltres fem servir llanternes amb força freqüència per a activitats com Campin
ProtoShield Arduino increïblement fàcil: 7 passos
ProtoShield Arduino increïblement fàcil: ahir vaig publicar un ProtoShield Instructable. Tenia l’avantatge de tenir en compte la capçalera Arduino compensada, però la gent va assenyalar que era una mica desordenat (jo feia servir epoxi on les capçaleres masculines estàndard haurien estat bé.) El motiu pel qual em fa vergonya