Voila problème résolu j'ai même rajouter une seconde sonde pour avoir température intérieur et extérieur
je vous joins mon code
/*
TEMPERATURE et Afficheur TFT LCD Tactile 2.4 inch
Arduino
CI DS3232
VDD 3VCC ou 5VCC
SDA A4
SCL A5
Mon site http://f5mna .free.fr
Mai 2016
*/
#include <SPFD5408_Adafruit_GFX.h> // Core graphics library
#include <SPFD5408_Adafruit_TFTLCD.h> // Hardware-specific library
#include <TouchScreen.h>
#include <math.h>
/////////////////// Afficheur ///////////////////////////
#define YP A3
#define XM A2
#define YM 9
#define XP 8
#define TS_MINX 150
#define TS_MINY 120
#define TS_MAXX 950
#define TS_MAXY 940
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300);
#define LCD_CS A3
#define LCD_CD A2
#define LCD_WR A1
#define LCD_RD A0
#define LCD_RESET A4
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x07E0
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF
#define MINPRESSURE 10
#define MAXPRESSURE 1000
Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET);
////////////////////////////////////////////////////////////
//DS3232
//////////////////////////////////////////////////
int I2C_DS3232 = 0xD0 >> 1;
byte DS3232control = 0b00011100, DS3232status = 0b11001000 , DS3232aging , DS3232Msb , DS3232Lsb;
//////////////////////////////////////////////////
uint16_t startAddr = 0x0000; // Adresse de démarrage Start dans NV-RAM
uint16_t lastAddr; // Nelle addresse des stockage NV-RAM
uint16_t TimeIsSet = 0xaa55; // Prévient qu'il n'y a pas de remise à l'heure
// DDS/Arduino Connections
#define DDS_LOAD 12 //FQ_UD
#define DDS_CLOCK 3
#define DDS_DATA 2
/*
CI DS3231 sur Arduino Mega
VDD 3VCC ou 5VCC
SDA 21
SCL 20
*/
///////////////////////////////////////////////////////////////////////////////////////
int a, angles, anglem, angleh, Xs, Ys, Xs1, Ys1, Xs2, Ys2, Xm, Ym, Xm1, Ym1,
Xm2, Ym2, Xh, Yh, Xh1, Yh1, Xh2, Yh2, Reg, Sort, second1, minute1, hour1, jour1;
float rad;
int Heure;
int Minute;
int Seconde;
int Jour;
int Annee;
int JourSem;
///////////////////////////////////////////////////
// the value of the 'other' resistor
#include <math.h>
#define PIN_NTCEXT A9
double Rrefext = 10000; //Résistance de référence à 25°C
double V_INext = 5.0; //Alimentation électrique
//Information de la thermistance
double A_1ext = 3.354016E-3;
double B_1ext = 2.569850E-4;
double C_1ext = 2.620131E-6;
double D_1ext = 6.383091E-8;
double SteinhartHartext(double Rext)
{
//Division de l'équation en 4 parties. La premiere est
//uniquement A1
double equationB1ext = B_1ext * log(Rext/Rrefext);
double equationC1ext = C_1ext * pow(log(Rext/Rrefext), 2);
double equationD1ext = D_1ext * pow(log(Rext/Rrefext), 3);
double equationext = A_1ext + equationB1ext + equationC1ext + equationD1ext;
return pow(equationext, -1);
}
#define PIN_NTCINT A8
double Rrefint = 10000; //Résistance de référence à 25°C
double V_INint = 5.0; //Alimentation électrique
//Information de la thermistance
double A_1int = 3.354016E-3;
double B_1int = 2.569850E-4;
double C_1int = 2.620131E-6;
double D_1int = 6.383091E-8;
double SteinhartHartint(double Rint)
{
//Division de l'équation en 4 parties. La premiere est
//uniquement A1
double equationB1int = B_1int * log(Rint/Rrefint);
double equationC1int = C_1int * pow(log(Rint/Rrefint), 2);
double equationD1int = D_1int * pow(log(Rint/Rrefint), 3);
double equationint = A_1int + equationB1int + equationC1int + equationD1int;
return pow(equationint, -1);
}
///////////////////////////////////////////////////
void setup () {
Serial.begin(9600);
Serial.println("Temperature extérieur");
// pinMode(2, INPUT); // Test SQW pin, D2 = INPUT
// digitalWrite(2, HIGH); // Test SQW pin, D2 = Pullup on
///// Cadran ////////////
tft.begin(0x9341); // SDFP5408
tft.fillScreen(BLACK);
tft.setRotation(3);
//tft.setCursor(120, 0);
tft.setTextColor(WHITE); tft.setTextSize(3);
tft.setCursor(25,5);
tft.println("TEMPERATURES");
tft.setCursor(0,100);
tft.println("Temp Int");
tft.setCursor(300, 100);
tft.println("C");
tft.setCursor(0, 200);
tft.println("Temp Ext");
tft.setCursor(300, 200);
tft.println("C");
Reg = 2;
}
//--------------------------------------------------------------------
void loop(){
double valeurAnalogint = analogRead(PIN_NTCINT);//Calcul de la tension sur la borne analogique interieur
double Vint = valeurAnalogint / 1023 * V_INint;
double valeurAnalogext = analogRead(PIN_NTCEXT);//Calcul de la tension sur la borne analogique enterieur
double Vext = valeurAnalogext / 1023 * V_INext;
double Rthint = (Rrefint * Vint ) / (V_INint - Vint);//Calcul de la résistance de la thermistance interieur
Serial.print("Rthint = ");
Serial.print(Rthint);
double Rthext = (Rrefext * Vext ) / (V_INext - Vext);//Calcul de la résistance de la thermistance exterieur
Serial.print("Rthext = ");
Serial.print(Rthext);
double kelvinint = SteinhartHartint(Rthint);//Calcul de la température en kelvin( Steinhart and Hart)interieur
double celsiusint = kelvinint - 273.15; //Conversion en celsius
Serial.print("Ohmint - Tint = ");
Serial.print(celsiusint);
Serial.print("C\n");
double kelvinext = SteinhartHartext(Rthext);//Calcul de la température en kelvin( Steinhart and Hart)exterieur
double celsiusext = kelvinext - 273.15; //Conversion en celsius
Serial.print("Ohmext - Text = ");
Serial.print(celsiusext);
Serial.print("C\n");
tft.setTextColor(WHITE); tft.setTextSize(3);// afficheur temperature interieur
tft.setCursor(200, 100);
tft.println(celsiusint);
tft.setTextColor(WHITE); tft.setTextSize(3); // afficheur temperature exterieur
tft.setCursor(200, 200);
tft.println(celsiusext);
delay(1000);
tft.setTextColor(BLACK); tft.setTextSize(3);
tft.setCursor(200, 100);
tft.println(celsiusint);
tft.setTextColor(BLACK); tft.setTextSize(3);
tft.setCursor(200, 200);
tft.println(celsiusext);
delay(1);
}
PS : Merci à tous je vais re posté un autre sujet car je vais rajouter un RTC puis fichier BMP