Projet 6 – Activité 1

Mesure d’une pression absolue avec un capteur MPX4250AP


. Objectif

Dans cette activité, nous allons simplement mettre en œuvre l’utilisation d’un capteur de pression dont la sortie est reliée à l’entrée A0 de l’Arduino , pour afficher dans la console Python ou le moniteur série du logiciel Arduino IDE , la tension mesurée et la pression correspondante après un appui sur le bouton poussoir. Un nouvel appui sur le bouton poussoir arrête les mesures.

La pression mesurée sera modifiée avec une seringue d’un volume utile de 60 mL fixée au capteur par l’intermédiaire d’un tuyau.

En déplaçant le piston, initialement placé sur la graduation 30 mL, on fera varier le volume de l’air enfermé dans le corps de la seringue et donc la pression appliquée sur le capteur.

 

. Le programme

Voici le code de l’activité en Python et en Langage Arduino :

. Programme en Python (”Projet6\Activity1\PY\Activity1.py”)


Déroulement du programme
 :

Importation des librairies et définition de fonctions :

. Le module ”ConnectToArduino.py”, contenant les fonctions de connexion à l’Arduino via le protocole ”Firmata Satandard”,

. Le module ”PyFirmataDef.py” regroupant toutes les fonctions utiles à l’utilisation de PyFirmata (fonction de déclaration des entrées et sorties, de lectures, d’écritures…),

. La bibliothèque time pour la gestion des temps de pause.

Déclaration des constantes et variables :

. PinSensor = 0 (cst correspondant au n° de la broche A0 sur laquelle le capteur de pression est connecté)

. PinButton= 12 (cst correspondant au n° de la broche sur laquelle le bouton poussoir est connecté)

. ValSensor = 0 (variable pour stocker la valeur de la broche du capteur de pression)

. tension = 0 (variable correspondant à la valeur de la tension en V de la broche du capteur de pression)

. Pression = 0 (variable correspondant à la pression en kPa calculée à partir de la valeur de la broche du capteur)

. OldPression = 0 (variable correspondant à la pression en kPa calculée précédemment)

. ValButton = 0 (variable pour stocker la valeur de l’état logique de la broche du bouton poussoir)

. OldValButton = 0 (variable pour stocker la valeur précédente de l’état logique de la broche du bouton poussoir)

. State=0 (variable correspondant à l’action à effectuer)

. OldState = 0 (variable pour stocker la valeur précédente de la variable state)

. PortComArduino (port COM sur lequel l’Arduino est connecté) 

Connexion à l’Arduino :

. Détection du port COM, tentative d’ouverture du port COM sélectionné et connexion à l’Arduino:

PortComArduino = SelectPortCOM()

board = OpenPortCom(PortComArduino)

. Si la connexion à l’Arduino est réussie :

– Déclaration de la broche du capteur de pression en entrée analogique :

InputPinSensor = AnalogInput(board, PinSensor)

– Déclaration de la broche du bouton poussoir en entrée numérique :

InputPinButton = DigitalInput(board, PinButton)

– Lancement de l’itérateur :

ArduinoIterateur = Iterateur(board)

– Attente de 500 ms pour le lancement de l’itérateur :

time.sleep(0.5)

 

Boucle principale du programme (boucle ”while True”) :


Résultats dans la fenêtre Python Shell
 :

 

. Programme en langage Arduino (”Projet6\Activity1\INO\Activity1.ino”)


Le code de l’activité en langage Arduino a déjà été étudié dans la partie:

Activités pour les lycées / Pression / Activité 1