Bonjour,
J'ai un capteur de température TCN75A j'ai câble sur un carte Arduino UNO.
J'ai déjà le programme de mon capteur et les codes de l'afficheur matriciel 24x7.
Mais je n'arrive pas afficher la température sur l'afficheur matriciel ! ![]()
Aider moi s'il vous plaît !
Merci d'avance
Voici le programme:
const char ON_OFF=7;
const char CMD_AMBRE=6;
const char CMD_ROUGE=5;
const char CLK=13;
const char LE=12;
const char SDI=11;
const char PWM_TXT1=9;
const char PWM_TXT2=10;
#include <Wire.h> // librairie utilisant le protocole I2C / TWI (communication série sur 2 fils)
/* DEFINITION DES CONSTANTES */
#define tcn75address 0x48 // Adresse I2C du capteur de température
#define SERIAL_BAUDRATE 9600 // Vitesse de communication du port série
// Definition du caractere ° qui n'existe pas de base
byte degrees[8] = {
B00000,
B01000,
B10100,
B01000,
B00000,
B00000,
B00000,
B00000,
};
void setup() { // Code pour l'afficheur matriciel
//initialisation des sorties
pinMode(ON_OFF, OUTPUT);
pinMode(CMD_ROUGE, OUTPUT);
pinMode(CMD_AMBRE, OUTPUT);
pinMode(CLK, OUTPUT);
pinMode(LE, OUTPUT);
pinMode(SDI, OUTPUT);
pinMode(PWM_TXT1, OUTPUT);
pinMode(PWM_TXT2, OUTPUT);
digitalWrite(ON_OFF, LOW);
digitalWrite(CMD_ROUGE, LOW);
digitalWrite(CMD_AMBRE, HIGH);
digitalWrite(CLK, LOW);
digitalWrite(SDI, LOW);
digitalWrite(LE, LOW);
analogWrite(PWM_TXT1, 240); // Réglage de la luminisité
analogWrite(PWM_TXT2, 240);
delay(500);
/////////////////////////////TCN75A Code Capteur de température ////////////////////////////////////////////////
Wire.begin(); // Initialisation de la com I2C
Wire.beginTransmission(tcn75address); // Initialisation de la mesure de température
Wire.write(0x01); // Définition de la résolution
Wire.write(0x60);
Wire.endTransmission(); // Fin de Commande
Wire.beginTransmission(tcn75address); // On établi la communication
Wire.write(0x00);
Wire.endTransmission(); // Fin de Commande
Serial.begin(SERIAL_BAUDRATE); // Initialisation de la communication série
}
/* Nom : GetTemp
Description : Permet d'obtenir la température.
Retour : Float => Température mesurée.
*/
float GetTemp()
{
int tempreg = 0;
float temperature = 0;
Wire.requestFrom(tcn75address, 2);
tempreg = Wire.read(); // Récupération de l'information
tempreg = tempreg << 8; // Conversion et calcul de la valeur en °C
tempreg |= Wire.read();
tempreg = tempreg >> 4;
temperature = (float)tempreg / 16;
return temperature;
}
void loop() {
digitalWrite(SDI,LOW); //1ere colonne
digitalWrite(CLK,HIGH); //sortie non cablée
digitalWrite(CLK,LOW);
digitalWrite(SDI,HIGH); //7eme led
digitalWrite(CLK,HIGH);
digitalWrite(CLK,LOW);
digitalWrite(SDI,HIGH); //6eme led
digitalWrite(CLK,HIGH);
digitalWrite(CLK,LOW);
digitalWrite(SDI,HIGH); //5eme led
digitalWrite(CLK,HIGH);
digitalWrite(CLK,LOW);
digitalWrite(SDI,HIGH); //4eme led
digitalWrite(CLK,HIGH);
digitalWrite(CLK,LOW);
digitalWrite(SDI,HIGH); //3eme led
digitalWrite(CLK,HIGH);
digitalWrite(CLK,LOW);
digitalWrite(SDI,HIGH); //2eme led
digitalWrite(CLK,HIGH);
digitalWrite(CLK,LOW);
digitalWrite(SDI,HIGH); //1ere led
digitalWrite(CLK,HIGH);
digitalWrite(CLK,LOW);
digitalWrite(LE,HIGH); //latch
digitalWrite(LE,LOW);
while(1);
}