Rapport du projet Stm32f4 avec accéléromètre et afficheur LCD Réalise par : Man

Rapport du projet Stm32f4 avec accéléromètre et afficheur LCD Réalise par : Mansouri Khalil Gara Bechir Sommaire INTRODUCTION ................................................................................................................................................ 4 HARDWARE ...................................................................................................................................................... 5 MATÉRIEL UTILISÉE ................................................................................................................................................. 6 STM32F407 DISCOVERY ............................................................................................................................... 6 Accéléromètre GY-61 ................................................................................................................................... 6 Écran LCD 16x2 ............................................................................................................................................. 6 I2C PCF85741 ............................................................................................................................................... 7 BRANCHEMENT DES COMPOSANTS ............................................................................................................................. 7 SOFTWARE ....................................................................................................................................................... 8 ÉLÉMENTS FONDAMENTAUX ..................................................................................................................................... 9 Explication de l’I2C ....................................................................................................................................... 9 DMA (Direct Memory Access) ...................................................................................................................... 9 ADC (Analog to Digital Converter) ............................................................................................................... 9 LOGICIELS UTILISÉS ................................................................................................................................................ 10 Configuration du STM32cubeMX ............................................................................................................... 11 DESCRIPTION DU CODE .......................................................................................................................................... 14 La bibliothèque i2c-LCD .............................................................................................................................. 14 Fonction principale ..................................................................................................................................... 15 RÉSULTAT ET CONCLUSION ............................................................................................................................ 16 DISCUSSION DES RÉSULTATS ........................................................................................................................... 17 Conclusion .................................................................................................................................................. 17 INTRODUCTION un accéléromètre est un instrument de mesure capable de détecter et / ou mesurer l'accélération, effectuer le calcul de la force détectée par rapport à la masse de l'objet (force par unité de masse).L'utilisation de l'accéléromètre a considérablement augmenté au cours des dernières années parce que, en plus des applications traditionnelles de la science et de l'aérospatiale, a été adopté dans plusieurs domaines civil (automobile, smartphone, tests, analyse mécanique, de loisirs, etc.) souvent combinés avec d'autres capteurs comme gyroscopes, magnétomètres, etc. ➢ But de projet L’objectif de notre projet est d’acquérir des mesures d’un accéléromètre et afficher le résultat avec la communication I2C sur un écran LCD 16*2 avec un contrôleur PCF8754T en utilisant la carte STM32F407DISCOVERY. HARDWARE Matériel utilisée STM32F407 DISCOVERY Le microcontrôleur haute performance STM32F407VG avec arm® Cortex®-M4 32 bits noyau. Il est basé sur STM32F407VG, il comprend un outil de débogage intégré ST-LINK/V2-A, un accéléromètre numérique STMEMS, un microphone numérique, un DAC audio avec classe D intégrée haut-parleur, LED, boutons poussoirs et un connecteur USB OTG Micro-AB. Les cartes d’extension spécialisées peuvent être connectées au moyen des connecteurs d’en-tête d’extension. Accéléromètre GY-61 Module accéléromètre analogique à 3 axes basé sur le circuit ADXL335.Ce module permet de mesurer l’accélération statique et dynamique Plages de mesure : ±3 g, Alimentation : 3.3 - 5V, sensibilité 300mv/g, Dimensions : 21 x 16mm. Définitions des Pin ➢ VCC : 3.3V or 5V ➢ X_OUT : Analog Output ➢ Y_OUT : Analog Output ➢ Z_OUT : Analog Output ➢ GND : Ground Écran LCD 16x2 L'afficheur LCD est en particulier une interface visuelle entre un système (projet) et l'homme (utilisateur). Il affichera des données susceptibles d'être exploiter par l'utilisateur d'un système. I2C PCF85741 Dans ce projet, nous allons interfacer LCD avec STM32 à l'aide d'un périphérique I2C (PCF8574). Le PCF8574 peut être utilisé comme extension de port, auquel l'écran LCD sera connecté Généralement, pour pouvoir utiliser un écran LCD, nous avons besoin d'au moins 6 broches libres, mais le nombre de broches peut être minimisé à l'aide de ce composant externe tels que l'extenseur d'E/S I2C PCF8574 (ou PCF8574A), cela nous permet d'utiliser seulement 2 broches de notre microcontrôleur. Branchement des composants On effectue le branchement suivant LCD_SDA ➔ PB7 LCD_SCL ➔ PB6 PA1 ➔ X_OUT PA2 ➔ Y_OUT PA3 ➔ Z_OUT SOFTWARE Éléments fondamentaux Explication de l’I2C I2C est une communication synchrone. I2C signifie Inter Circuits Intégrés. I2C est également connu sous le nom d'interface TWI ou Twin Wire car il ne nécessite que deux fils pour communiquer entre différents appareils. Le bus I2C se compose de SCL (horloge) et de SDA (données). Afin de communiquer avec un esclave, le maître envoie d'abord l'octet d'adresse le long de la ligne de données. Tous les esclaves connectés au bus feront correspondre leurs adresses avec l'adresse envoyée par le maître. En cas de correspondance, l'esclave respectif envoie l'ACK (accusé de réception) au maître et la communication commence. DMA (Direct Memory Access) Une unité d’accès direct à la mémoire (DMA) est un élément logique numérique dans l’architecture informatique qui peut être utilisé conjointement avec le microprocesseur principal sur la même puce afin de décharger les opérations de transfert de mémoire. Cela réduit considérablement la charge du processeur. Comme le contrôleur DMA peut effectuer des transferts de données de mémoire à mémoire ainsi que des transferts de données de périphérique à mémoire ou vice versa. L’existence de DMA avec un CPU peut accélérer son débit par ordre de grandeur. ADC (Analog to Digital Converter) Le microcontrôleur STM32F407VG possède trois modules ADC de type à approximation successifs tels que ADC1, ADC2 et ADC3. Ces modules ADC partagent 16 canaux d'entrée analogiques. Cela signifie qu'il y a un total de 16 canaux d'entrée analogiques disponibles pour la carte de découverte STM32F4. Un ADC (Analog-to-Digital Converter) est un périphérique qui permet de mesurer la tension (entre 0 et Vref) sur une certaine entrée du microcontrôleur et de la convertir en un nombre entre 0 et 2N-1 où N est la résolution ADC. Le tableau suivant montre les broches d'entrée pour chaque canal analogique et modules ADC. Logiciels utilisés • STM32CubeMX : un outil de configuration logicielle graphique qui permet la génération automatique de C code d'initialisation à l'aide d'assistants graphiques • STM32CubeIDE : un outil de développement tout-en-un avec configuration périphérique, génération de code, code fonctionnalités de compilation et de débogage Configuration du STM32cubeMX Configuration du clock : Configuration du I2C1 : Pour la communication avec le contrôleur pcf8754 on active le block du I2C1 et par conséquence le logiciel cubeMX configure les pins PB6 et PB7 pour SCL et SDA Utilise le clock externe (HSE) Configuration du ADC : Les convertisseurs analogique-numérique (CAN) multicanaux convertissent généralement chaque canal d'entrée de manière séquentielle à l'aide d'un multiplexeur d'entrée. Configurer les 3 canaux de l'ADC pour multicanaux conversion. Nous pouvons effectuer la conversion multicanale de l'ADC sur stm32 avec la configuration suivante Notez que 3 canaux sont sélectionnés. Le mode de conversion Continu et le scan conversion mode sont actifs DMA Config : Afin de lire les multiples canaux, nous devons utiliser le DMA. L'avantage est que la conversion aura lieu en arrière-plan et nous pouvons effectuer une autre opération avec le contrôleur et lorsque nous avons besoin des valeurs, nous pouvons simplement les lire facilement. le paramètre DMA pour l'ADC. Nous nous assurons que le DMA est circulaire et que la largeur des données est sélectionnée comme WORD. En effet, nous utilisons l'ADC avec une résolution de 12 bits et pour stocker 12 bits, nous avons besoin de la variable de la même taille. Description du code La bibliothèque i2c-LCD Cette bibliothèque a été développée par des développeurs pour faciliter l'interaction des utilisateurs avec l'écran LCD et le module PCF8574grâce à des fonctions prédéfinies. L'adresse du PCF8574 est 0 1 0 0 A2 A1 A0 R/W. Pour changer l'adresse, nous disposons des broches A0, A1 et A2. Par défaut, ces trois broches sont hautes, donc l'adresse par défaut est 01001110 qui est 0x4E. #define SLAVE_ADDRESS_LCD 0x4E // change this according to ur setup L'adresse esclave par défaut définie dans i2c-lcd. c’est 0x4E. C'est la valeur par défaut pour le PCF8574. Importation du bibliothèque i2c-LCD void lcd_init (void); // initialize lcd void lcd_send_cmd (char cmd); // envoyer la commande à l'écran lcd void lcd_send_data (char data); // envoyer des données à l'écran lcd void lcd_send_string (char *str); // envoyer la chaîne à l'écran lcd void lcd_put_cur(int row, int col); // placez le curseur à la position entrée ligne (0 ou 1), col (0-15); void lcd_clear (void); // effacer l'écran lcd Fonction principale HAL_ADC_Start_DMA(&hadc1, value, 3); // start the adc in dma mode Démarre l'ADC en mode DMA et les données converties sont stockées dans le tampon « valeur ». « 3 » est la longueur des données à transférer du périphérique ADC vers la mémoire. while (1) { HAL_ADC_Start_DMA(&hadc1, value, 3); // start the adc in dma mode //Afficher X lcd_send_cmd (0x80); // met le curseur en position 00 lcd_send_string ("x= "); // send string lcd_send_data ((value[0]/1000)+48); // afficher les milliers de X lcd_send_data (((value[0]%1000)/100)+48); //afficher les centaines de X lcd_send_data (((value[0]%100)/10)+48); //afficher les Dizaines de X lcd_send_data (((value[0]%10))+48); // Afficher les unites valeur de X //Afficher Y lcd_send_string (" y= "); lcd_send_data((value[1]/1000)+48); // afficher les milliers de Y lcd_send_data(((value[1]%1000)/100)+48); //afficher les centaines de Y lcd_send_data(((value[1]%100)/10)+48); //afficher les Dizaines de Y lcd_send_data(((value[1]%10))+48); // Afficher les unites valeur de Y //Afficher Z lcd_send_cmd (0xc0); lcd_send_string (" z="); lcd_send_data((value[2]/1000)+48); // afficher les milliers de Z lcd_send_data(((value[2]%1000)/100)+48); //afficher les centaines de Z lcd_send_data(((value[2]%100)/10)+48); //afficher les Dizaines de Z lcd_send_data(((value[2]%10))+48); // Afficher les unites valeur de Z HAL_Delay (200); // 200ms delay /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } Résultat et conclusion DISCUSSION DES RÉSULTATS Les résultats obtenus sont plus que satisfaisants. on peut voir les valeurs mesurées par l'accéléromètre affichées dans l'écran lcd. Conclusion Dans ce projet nous nous adaptons à l'environnement stm32. Nous apprenons à lire plusieurs canaux dans ADC dans STM32 et à afficher les valeurs sur lcd. Nous avons appris à communiquer avec le protocole i2c. uploads/Management/ rapport-du-projet-stm32f4-avec-accelerometre-et-afficheur-lcd 1 .pdf

  • 12
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jul 25, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 1.0772MB