Rapport Du Projet: Stm32f4 Avec Accéléromètre Et Afficheur LCD
Rapport Du Projet: Stm32f4 Avec Accéléromètre Et Afficheur LCD
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
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.
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.
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 :
L'adresse esclave par défaut définie dans i2c-lcd. c’est 0x4E. C'est la valeur par
défaut pour le PCF8574.
void lcd_init (void); // initialize 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
//Afficher 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.