PRESA Raphaël
/
essai_DS1621
capteur DS1621
Main.cpp
- Committer:
- rpresa
- Date:
- 2020-05-20
- Revision:
- 0:78facd7c14b8
File content as of revision 0:78facd7c14b8:
#include "ds1621.h" #define DS1621_ADDR 0x90 // I2c DS1621 address is 0x00 Serial pc(USBTX, USBRX); // port série USB //pins are: TX RX I2C i2c(p9, p10); // Declare I2C (pullup resistors 2.2k from p9 and p10 to +5v) DS1621 ds(&i2c, DS1621_ADDR); // Declare ds1621 throught i2c interface float Temperature = 24.0, Temp_H=25.0, Temp_L=23.0, Temp_cons=35, hysteresis=5.0, periode=1.0; // acquisition toutes les secondes unsigned char trame[6]; int cpt=0; // compteur trame int flag=0; // detection de debut de trame int etat_regulation=0; // =0 pas de regulation =1 regulation int Sortie_reg=0; // etat sortie reg du DS1621 int main() { i2c.frequency(5000); //5khz pc.printf("-----------------------\n\rMain\n\r"); char reg; int result; ds.SetConfig(0x00); // POL=1, 1SHOT=0 wait(1); reg=ds.ReadReg(ACCESS_CONFIG); // lecture registre CONFIG pour controle pc.printf("REG=%d\n\r",reg); ds.SetLimit(ACCESS_TH,-20); // fixe TH: valeur basse pour avoir commande de sortie =0 wait(1); ds.SetLimit(ACCESS_TL, -21.0); // fixe TL: valeur basse pour avoir commande de sortie =0 wait(1); ds.StartConversion(1); wait(1); result=ds.GetTemp(ACCESS_TL,&Temp_L); if(result==1) pc.printf("TL=%3.1f\n\r",Temp_L); wait(1); result= ds.GetTemp(ACCESS_TH,&Temp_H); if(result==1) pc.printf("TH=%3.1f\n\r",Temp_H); wait(1); while (1) { result= ds.GetTemp(READ_TEMPERATURE,&Temperature); // acquisition Temp à 0.5 //result= ds.GetHResTemp(&Temperature); // acquisition Temp à 0.1 °C pc.printf("Temperature=%3.1f C\n\r",Temperature); wait(1); } }