Table des matières:

Incroyablement facile à programmer ! : 10 étapes
Incroyablement facile à programmer ! : 10 étapes

Vidéo: Incroyablement facile à programmer ! : 10 étapes

Vidéo: Incroyablement facile à programmer ! : 10 étapes
Vidéo: DÉBUTER EN PROGRAMMATION [PARTIE 1 : BINAIRE] 2024, Juillet
Anonim
Image
Image
Incroyablement facile à programmer !
Incroyablement facile à programmer !

Aujourd'hui, je vais parler du Core STM32, le L476RG, qui est le visage de l'Ultra Low Power. Vous pouvez le voir sur la gauche de l'image. Cet appareil a deux barres à broches femelles, une de chaque côté, qui ne sont rien de plus que les connecteurs pour le blindage arduino. C'est super, non ?

À mon avis, STMicroelectronics l'a fait dans son kit de développement car il sait que les professionnels utilisent cette puce. Cette entreprise se tourne de plus en plus vers l'arduino. Et cela est également vrai pour plusieurs autres kits professionnels STMicroelectronics.

Enfin, concernant le projet d'aujourd'hui, nous utiliserons deux capteurs DS18b20 en plus du L476RG. Nous allons donc réaliser un assemblage simple à l'aide du L476RG, importer une bibliothèque dans l'environnement MBED, créer un programme dans l'environnement MBED et obtenir des données du L476RG via USB / série.

J'ai déjà un peu parlé du L476RG dans cette vidéo: LA MOYENNE PLUS FACILE DE PROGRAMMER UN MICROCONTROLEUR, où je montre comment configurer l'environnement MBED, qui est en ligne.

Certaines personnes qui suivent mes vidéos me demandent si STM32 remplace ESP32. Je dis une chose: ça ne remplace pas et ça ne pourrait pas, car ce sont deux choses complètement différentes.

Cette puce STM32 est un microcontrôleur, ou plutôt; ce n'est pas un "groupe de choses" comme l'ESP32. Le nom peut donc sembler similaire, mais ils sont complètement différents. Le STM32 est un microcontrôleur à usage général, tel qu'un PIC, un Atmel, par exemple.

Étape 1: Ressources utilisées

Ressources utilisées
Ressources utilisées

1 noyau L476RG

2 capteurs DS18b20 (nous utilisons les modules étanches courants sur le marché)

1 résistance 4k7

Mini protoboard

Cavaliers de connexion

Étape 2: Assemblage

Assemblée
Assemblée

Nous allons dans un premier temps réaliser le montage à l'aide d'une des sondes de température.

Sa puissance sera de 5V.

Une résistance 4k7 sera utilisée pour faire un pull-up sur la ligne de données (1-Wire).

Nous allons lire les données en utilisant la broche A0.

Étape 3: Nouveau programme en MBED

Nouveau programme en MBED
Nouveau programme en MBED
Nouveau programme en MBED
Nouveau programme en MBED
Nouveau programme en MBED
Nouveau programme en MBED

Une fois que vous avez configuré votre compte dans MBED et que vous y accédez, nous créerons un nouveau programme. Pour cela, faites un clic droit sur « Mes programmes » et sélectionnez « Nouveau programme… »

Confirmez que la « Plateforme » est conforme à la carte que vous utilisez.

Nous cliquons maintenant sur "Modèle".

Nous allons créer un programme basé sur l'exemple, "Afficher un message sur PC en utilisant UART".

Entrez le nom du programme dans "Nom du programme".

Cochez l'option "Mettre à jour ce programme et les bibliothèques vers la dernière révision".

Un nouveau dossier pour votre programme sera créé, comprenant la bibliothèque MBED par défaut et le fichier main.cpp.

Vous pouvez l'utiliser pour tester si tout fonctionne bien. Pour ce faire, il suffit de le compiler et de le copier sur la plateforme.

En utilisant un terminal série de votre choix, vous pouvez recevoir les messages suivants.

Étape 4: Importation de la bibliothèque DS18b20

Importation de la bibliothèque DS18b20
Importation de la bibliothèque DS18b20

Comme il existe plusieurs versions de bibliothèques pour le Ds18b20, nous allons importer en utilisant une url afin que votre exemple utilise la même bibliothèque.

Étape 5: Nouveau programme dans MBED

Nouveau programme en MBED
Nouveau programme en MBED
Nouveau programme en MBED
Nouveau programme en MBED

Dans le champ "Source URL" remplissez: https://os.mbed.com/users/Sissirs/code/DS1820/ et cliquez sur importer.

Votre bibliothèque DS1820 devrait apparaître dans votre dossier de programme.

Étape 6: Code source

Comprend

Nous avons commencé par inclure les bibliothèques nécessaires.

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

Nous définissons des constantes qui représenteront les broches utilisées.

Notez que le DS18b20 est un capteur avec communication 1-WIRE. Pour cette raison, nous utilisons la bibliothèque qui gérera l'ensemble du protocole de communication avec les appareils. Cela inclut l'identification de chaque appareil jusqu'aux commandes de lecture.

#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

Nous créons un vecteur qui pointera vers chacun des 16 appareils possibles connectés à la ligne de données.

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

Nous commençons la méthode main (), où, à l'aide de la méthode "unassignedProbe ()" contenue dans la bibliothèque DS1820, nous recherchons tous les périphériques disponibles dans la ligne de communication.

Nous remplissons le vecteur capteur avec les instances qui représenteront chacun des capteurs disponibles.

Nous faisons cela jusqu'à ce que le dernier soit trouvé ou jusqu'à ce que nous atteignions le maximum de 16 capteurs.

int main(){ int encontrados = 0; while(DS1820::unassignedProbe(PINO_DE_DADOS)) { //inicia a procura por sensores sensor[encontrados] = new DS1820(PINO_DE_DADOS); //cria uma instancia para o sensor encontrado encontrados++; if (encontrados == MAX_SENSORES) //vérifier la rupture de la rupture maximale des capteurs; }

On envoie le nombre de capteurs trouvés sur la ligne.

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

Nous commençons une boucle infinie, demandant que tous les capteurs disponibles calculent leurs températures respectives, puis parcourons le vecteur de capteur en envoyant les lectures obtenues.

printf("Dispositivos encontrado(s): %d \r\n\n", encontrados); while(1) { sensor[0]->convertTemperature(true, DS1820::all_devices); // sollicite une leitura de temperature para todos os dispositivos encontrados for (int i = 0; itemperature()); //… e restitue une température printf("\r\n"); attendre(1); }

Étape 7: Données reçues

Donnée reçue
Donnée reçue

En utilisant un seul capteur, nous obtenons la sortie série suivante.

Étape 8: Inclure plus de capteurs

Y compris plus de capteurs
Y compris plus de capteurs
Y compris plus de capteurs
Y compris plus de capteurs

Pour tester le code, nous introduisons un autre capteur dans la ligne de communication, simplement en le connectant en parallèle avec le premier capteur.

N'oubliez pas d'éteindre l'ensemble avant de brancher de nouveaux capteurs.

Lors du redémarrage de l'assembly, nous avons obtenu la sortie suivante, sans aucune modification du code source.

Étape 9: Afficher la source

#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 o vetor de sensores 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 a procura por sensores sensor[encontrados] = new DS1820(PINO_DE_DADOS); //cria uma instancia para o sensor encontrado encontrados++; if (encontrados == MAX_SENSORES) //vérifier la rupture de la rupture maximale des capteurs; } printf("Dispositivos encontrado(s): %d \r\n\n", encontrados); while(1) { sensor[0]->convertTemperature(true, DS1820::all_devices); // sollicite une leitura de temperature para todos os dispositivos encontrados for (int i = 0; itemperature()); //… e restitue une température printf("\r\n"); attendre(1); } }

Étape 10: Fichiers

PDF

Autres

Conseillé: