Université Paul SABATIER Licence SdI - L3-EEA - Unité UE1 12 février 2004
(solution)
PM = f (VLSCAN) PM = f1 (Tension) VLSCAN = f2 (Tension)
PM = f1 (Tension) PM = 2.5 106 Tension
VLSCAN = f2 (Tension) VLSCAN = 4095/12 × Tension Tension = VLSCAN × 12/4095
6
× (VLSCAN × 12/4095) PM = 30.10
6
VESCNA = g (FAA) FAA = g1 (Angle) Angle = g2 (Tension) Tension = g3 (VESCNA)
FAA = g1 (Angle) FAA = 10 × Angle + 10 Angle = (FAA - 10) / 10
Angle = g2 (Tension) Angle = 60 × Tension Tension = Angle / 60
Tension = g3 (VESCNA) Tension = 12 / 255 × VESCNA VESCNA = Tension × 255/5
VESCNA = {[(FAA - 10) / 10] / 60} × 255/5 VESCNA = 255/3000 × (FAA - 10)
CAN 2004 ⇒ 14.68 106 Pa 10.106 Pa ⇒ CAN 1365
12 CNA ⇒ 151.18 N résolution du CNA : 5V/256=19.5 mV ⇒ résolution cadran : 11.70 N (600 N/V)
0.10000101.11100000110100001110010
Algorithme
fonction F (Valeur_Lue_Sur_CAN entier) réel
F (30.10e6 / 4095) × Valeur_Lue_Sur_CAN
Algorithme
fonction G (Force_A_Afficher réel) entier
G entier ((255/3000) × (Force_A_Afficher - 10))
Algorithmes
Fonction Jeton : entier
Fonction Vertical : entier fonction Horizontal : entier
début début
si (port_Entree ET_bàb 1) = 1 si (Port_Entree ET_bàb 2) = 2 si (Port_Entree ET_bàb 4) = 4
alors Jeton 1 alors Vertical 1 alors Horizontal 1
sinon Jeton 0 sinon Vertical 0 sinon Horizontal 0
r_Port : entier sur [0, 255] ; valeur à appliquer sur le port de sortie ; variable globale
fonction Liberer_OFF
début
Valeur_Port Valeur_Port OU_bàb 1 Valeur_Port Valeur_Port ET_bàb 254
Port_Sortie (Valeur_Port) Port_Sortie (Valeur_Port)
fin
fonction Alarme_OFF
début
Valeur_Port Valeur_Port OU_bàb 2 Valeur_Port Valeur_Port ET_bàb 253
Port_Sortie (Valeur_Port) Port_Sortie (Valeur_Port)
: réel ; section du capteur, en m2
Pression : réel ; pression mesurée
Pression_Max : réel ; max de pression mesurée
Force : réel ; force de frappe déduite de la pression mesurée
Section 1.10-4 # section en m2, pour un capteur de 1 cm2
répéter
répéter tant_que Jeton=0 # attendre la présence d'un jeton
Liberer_ON # libérer le bras
CNA (0) # remettre l'affichage au minimum
Pression_Max 0 # "minimaliser" le maximum de pression
répéter tant_que Vertical=0 # attendre la position verticale
Liberer_OFF # ne plus commander la libération
répéter
Pression F ( CAN ) # mesurer la pression instantannée
si Pression > Pression_Max
alors Pression_Max Pression # mémoriser le maximum constaté
jusqu'à Horizontal=1 # jusqu'à la fin du mouvement
Force Pression_Max × Section # calculer la force de frappe
CNA ( G (Force) ) # afficher le résultat
Alarme_ON # faire sonner l'alarme
DELAI (4000) # durant 4 s
Alarme_OFF # arrêter l'alarme
tant_que vrai # traitement infini