Bonjour,
Le fonctionnement de ma PAC présentant quelque anomalie je me replonge dans les fils de discussion de
chaleurterre et redécouvre ce fil de discussion déjà bien vieux. Serais-je un des rares à posséder encore ce type de machine ?
A l'époque de l'étude ci-dessus présentée par Ummolae, j'avais de mon côté démonté cette carte ampli et expérimenté sa réponse Tension de sortie = f(R sonde).
Récemment il m'est venu l'idée qu'une simple carte ARDUINO pouvait au besoin remplacer cette carte. Je vous livre ci-après le sketch répliquant la réponse de ma carte installée :
/*
Les modules THERMO‐INVERTER AJTECH mettent en œuvre une régulation utilisant une carte électronique
dite "d'amplification de signal" construite autour d'amplificateurs opérationnels
Il est proposé de remplacer cette carte électronique par une carte programmable ARDUINO.
Selon expérimentation la carte AJTECH prélève la tension apparaissant aux bornes de
la sonde d'ambiance (thermistance) et la corrige pour le pilotage de la marche de la PAC.
(voir
http://jeanloup.pizon.free.fr/documents ... 0ampli.pdf)
Il est proposé de créer un pont diviseur, constitué de la thermistance (résistance de valeur variable)
et d'une résistance fixe, alimenté par le 5 V de la carte ARDUINO. Une broche d'entrée analogique ARDUINO
mesure la tension du point milieu et la convertit en valeur numérique dans une plage 0 à 1023 (0 à 5 V)
Ce sketch corrige cette valeur selon la courbe de réponse définie expérimentalement et la dirige
vers une broche de sortie ARDUINO (opération de mapping).
*/
// _____1. ENTREE DECLARATIVE _________________________________
int inValue = 0 ; // variable destinée à contenir la valeur numérique de Ve
float Ve = 0 ; // variable destinée à contenir la tension Ve exprimée en Volts
float valueCorr = 0 ; // variable destiné à contenir la valeur numérique corrigée (amplifiée) de Ve
float outValue = 0 ; // variable destinée à contenir la valeur numérique de Vs
float Vs = 0 ; // variable destinée à contenir la tension Vs exprimée en Volts
// ______2. FONCTION SETUP = CODE D'INITIALISATION_____________
void setup() {
Serial.begin(9600) ; // Initialisation de la communication avec le terminal
}
//________3. FONCTION LOOP = BOUCLE DE PROGRAMME _____________
void loop() {
inValue = analogRead(A0); // lecture de la tension d'entrée (plage 0 à 1023)
// Ve = (inValue*5.00/1023.00) ; // calcul de Ve (2 décimales) en vue de son affichage
// Serial.print("Ve = ") ;
// Serial.print(Ve);
// Serial.println(" Volts") ;
// Serial.print("Ve en valeur numérique (plage 0 à 1023) = ") ;
// Serial.println(inValue);
valueCorr = inValue*2.5259 ‐ 807.77 ; // correction de Ve
// Serial.print("valeur corrigée (plage 0 à 1023) = ") ;
// Serial.println(valueCorr);
outValue =map(valueCorr,0,1023,0,255) ; // mapping pour sortie PWM
// Vs = (outValue*5.00/255.00) ; // calcul de Vs (2 décimales) en vue de son affichage
// Serial.print("Vs en valeur numérique (plage 0 à 255) = ") ;
// Serial.println(outValue);
// Serial.print("Vs = ") ;
// Serial.print(Vs) ;
// Serial.println(" Volts") ;
// Serial.println("") ;
pinMode(D3, OUTPUT) ; // Définition de la broche D3 en tant que « SORTIE »
analogWrite(D3,outValue) ; // Génération de Vs sur la broche D3
delay(5000) ; // Délai de 5 secondes avant acquisition suivante
}
Le sketch peut bien sûr être modifié pour modifier la correction apportée (réponse + ou - réactive, de linéarité différente, ...). Pour ma part ce n'était qu'un simple exercice que je n'ai pas installé en réel.