Академический Документы
Профессиональный Документы
Культура Документы
Partie 1:
Le quantium ;
◦ pour ,
alors
On le système suivant :
soient et
On a avec et
Remarque
◦ pour ,
alors
Programme :
#use delay(clock=20000000)
#device adc=16 //Directive du résoluition du CAN
//Définition étiquette
#define T_H PIN_B0
#define T_L PIN_B1
//variable globale
int16 N; //Sauvegarde du valeur N résultante de conversion
float T_val; //Valeur de la temperature
float P_val; //Valeur de la pression
float H_val; //Valeur de l'humidité
float Q = 5/65536.0; //Quantium du CAN
float R_T= 5/80.0; //Résolution capteur temperature
float R_P = 5/1180.0 ; //Résolution capteur Pression
float R_H = 5/100.0; //Résolution capteur Humidité
float Cte_P = -100/1180.0 ; //Cte de Pression
void main()
{
while (true)
{
//Lecture et calcul Temperature
set_adc_channel(0); //Selection du canal 0
delay_us(20); //Attente le temps de conversion
N = read_adc();//Lecture la valeur N de conversion
T_val = (N*Q)/R_T;//Calculer la temperature reelle
//Update output
output_B(0x00); //Tous les LED <- 0
//Temperature LED
if (T_val > 40) {output_High(T_H);}
else
{
if (T_val <10)
output_High(T_L);
}
//Pression LED
if (P_val > 130) {output_High(P_H);}
else
{ if (T_val <50)
output_High(P_L);
}
//Humedité LED
if (H_val > 80) {output_High(H_H);}
else
{ if (P_val <20)
output_High(H_L);
}
//attente 2s
delay_ms(2000);
}}
Programme :
On fait une interruption toute le 100ms . A l'aide d'un compteur gloable , on compte 20 interruptions
puis on autorise la conversion et la mise à jour des sortie.
#use delay(clock=20000000)
#device adc=16 //Directive du résoluition du CAN
//Définition étiquette
#define T_H PIN_B0
#define T_L PIN_B1
//variable globale
int16 N; //Sauvegarde du valeur N résultante de conversion
float T_val; //Valeur de la temperature
float P_val; //Valeur de la pression
float H_val; //Valeur de l'humidité
float Q = 5/65536.0; //Quantium du CAN
float R_T= 5/80.0; //Résolution capteur temperature
float R_P = 5/1180.0 ; //Résolution capteur Pression
float R_H = 5/100.0; //Résolution capteur Humidité
float Cte_P = -100/1180.0 ; //Cte de Pression
while (true)
{
if (activation == 1)
{
activation = 0; //Réinitialiser l'activation
//Lecture et calcul Temperature
set_adc_channel(0); //Selection du canal 0
delay_us(20); //Attente le temps de conversion
N = read_adc();//Lecture la valeur N de conversion
T_val = (N*Q)/R_T;//Calculer la temperature reelle
//Update output
output_B(0x00); //Tous les LED <- 0
//Temperature LED
if (T_val > 40) {output_High(T_H);}
else
{
if (T_val <10)
//Pression LED
if (P_val > 130) {output_High(P_H);}
else
{ if (T_val <50)
output_High(P_L);
}
//Humedité LED
if (H_val > 80) {output_High(H_H);}
else
{ if (P_val <20)
output_High(H_L);
}
}
}}