HTU21D-F with board Nucleo_F411RE results in float

Dependencies:   HTU21D mbed MD25 TextLCD

Fork of HTU21D-F_Nucleo_F411RE by Guillaume GARBAY

Committer:
Guillaume31
Date:
Mon Apr 13 14:43:28 2015 +0000
Revision:
3:56643150d07d
Parent:
2:c00e194f9ed5
Temperature sur LCD + Moteurs

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Guillaume31 3:56643150d07d 1 // Librairies
Guillaume31 3:56643150d07d 2 #include "mbed.h" // Standard
Guillaume31 3:56643150d07d 3 #include "MD25.h" // Moteurs
Guillaume31 3:56643150d07d 4 #include "TextLCD.h" // Ecran LCD
Guillaume31 3:56643150d07d 5 #include "HTU21D.h" // Capteur Temperature / Humidite
Guillaume31 3:56643150d07d 6 // #include "VCNL40x0.h" // Capteur Luminosite / Distance
Guillaume31 3:56643150d07d 7
Guillaume31 3:56643150d07d 8
Guillaume31 3:56643150d07d 9 // Declarations E/S //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 10
Guillaume31 3:56643150d07d 11 DigitalIn bouton (USER_BUTTON); // Bouton d'arret total du robot
Guillaume31 3:56643150d07d 12 DigitalIn bouton_poussoir(D9); // Pin PC7 Bouton poussoir demarrage
Guillaume31 3:56643150d07d 13 DigitalIn cap_arret(PA_9); // Pin PA9 capteur d'arret (Devant)
alipford3 0:8c0ef32974f0 14
Guillaume31 3:56643150d07d 15 Serial pc(SERIAL_TX, SERIAL_RX); // Port Serie avec le PC
Guillaume31 3:56643150d07d 16
Guillaume31 3:56643150d07d 17 TextLCD lcd(D2, D3, D4, D5, D6, D7,TextLCD::LCD20x4); // Ecran LDC (rs, e, d4-d7)
Guillaume31 3:56643150d07d 18 MD25 i2c(I2C_SDA, I2C_SCL); // Moteurs : 100kHz clock, addr B0, reg 0=speedl, 1=speedr (0 (Full Reverse) 128 (Stop) 255 (Full Forward). 15=mode (set to 0 default)
Guillaume31 3:56643150d07d 19 HTU21D temphumid(D14, D15);//HTU21D temp(I2C_SDA, I2C_SCL); // Capteur Temperature / Humidite
Guillaume31 3:56643150d07d 20 //VCNL40x0 VCNL40x0_Device (I2C_SDA, I2C_SCL, VCNL40x0_ADDRESS); // Capteur Luminosite / Distance Define SDA, SCL pin and I2C address
Guillaume31 3:56643150d07d 21
Guillaume31 3:56643150d07d 22
Guillaume31 3:56643150d07d 23 // Fonctions pour les Moteurs ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 24 // Prototypes ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 25 void init_motors (void); // Initialisation des Moteurs
Guillaume31 3:56643150d07d 26 void setSpeed (int speedMotor1, int speedMotor2); // Definir Vitesse moteurs
alipford3 0:8c0ef32974f0 27
Guillaume31 3:56643150d07d 28 // Definition ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 29 void init_motors(void) {
Guillaume31 3:56643150d07d 30 i2c.setMode(0); // MODE 0, 0=marche arriere 128=stop 255=marche arriere vmax
Guillaume31 3:56643150d07d 31 i2c.setCommand(32); // 0x20 reset encoders
Guillaume31 3:56643150d07d 32 i2c.setCommand(50); // 0X32 Disable time out
Guillaume31 3:56643150d07d 33 //i2c.setCommand(32); // 0x20 reset encoders
Guillaume31 3:56643150d07d 34 //i2c.setCommand(48); // 0X32 Disable speed regulation
Guillaume31 3:56643150d07d 35 }
Guillaume31 3:56643150d07d 36
Guillaume31 3:56643150d07d 37 void setSpeed (int vitMotor1, int vitMotor2) {
Guillaume31 3:56643150d07d 38 i2c.setSpeedRegisters(vitMotor1,vitMotor2);
Guillaume31 3:56643150d07d 39 }
Guillaume31 3:56643150d07d 40 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 41 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 42
Guillaume31 3:56643150d07d 43
Guillaume31 3:56643150d07d 44 // Fonction d'Initialisation //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 45 void initialisations () {
Guillaume31 3:56643150d07d 46 lcd.printf("Initialisation\n");
Guillaume31 3:56643150d07d 47 pc.printf("Initialisation\n\r");
Guillaume31 3:56643150d07d 48 bouton.mode (PullUp); // Bouton Utilisateur
Guillaume31 3:56643150d07d 49 bouton_poussoir.mode (PullUp); // Bouton Poussoir
Guillaume31 3:56643150d07d 50 init_motors(); // Initialise Moteur
Guillaume31 3:56643150d07d 51
Guillaume31 3:56643150d07d 52
Guillaume31 3:56643150d07d 53
Guillaume31 3:56643150d07d 54 pc.printf("Fin Initialisation\n\r");
Guillaume31 3:56643150d07d 55 lcd.printf("Fin Initialisation\n");
Guillaume31 3:56643150d07d 56 wait(1);
Guillaume31 3:56643150d07d 57 }
alipford3 0:8c0ef32974f0 58
Guillaume31 3:56643150d07d 59 // Fonction Principale //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 60 int main() { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 61 pc.printf("\n\n\n\n\n\n\n\n Majord'home: Hello! Programme\n\r"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 62 lcd.printf("Majord'home: Hello!\n"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 63 wait(1); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 64 initialisations (); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 65
Guillaume31 3:56643150d07d 66 // Declaration Variables Locales
Guillaume31 3:56643150d07d 67 float Ftemp, Ctemp, Ktemp, Humid; // Temperature et humidite
Guillaume31 3:56643150d07d 68
Guillaume31 3:56643150d07d 69
Guillaume31 3:56643150d07d 70 // Init des Temperatures et Humidite
Guillaume31 3:56643150d07d 71 Ftemp = temphumid.sample_ftemp(); Ctemp = temphumid.sample_ctemp(); Ktemp = temphumid.sample_ktemp(); Humid = temphumid.sample_humid();
Guillaume31 3:56643150d07d 72
Guillaume31 3:56643150d07d 73
Guillaume31 3:56643150d07d 74 // Boucle Infinie //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 75 lcd.cls(); lcd.locate(0,0);
Guillaume31 3:56643150d07d 76 lcd.printf("%.2f C %.2f %% Hum", Ctemp, Humid); lcd.locate(0,1);
Guillaume31 3:56643150d07d 77 lcd.printf("%.2f F %.2f K", Ftemp, Ktemp); lcd.locate(0,2);
Guillaume31 3:56643150d07d 78 lcd.printf("Debut While(1)");
Guillaume31 3:56643150d07d 79 pc.printf("Debut While(1)\n\r");
Guillaume31 3:56643150d07d 80 wait(3); lcd.cls(); lcd.locate(0,0);
Guillaume31 3:56643150d07d 81
Guillaume31 3:56643150d07d 82 while(1) { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Guillaume31 3:56643150d07d 83
Guillaume31 3:56643150d07d 84 lcd.locate(0,0);
Guillaume31 3:56643150d07d 85 Ctemp = temphumid.sample_ctemp(); Humid = temphumid.sample_humid();
Guillaume31 3:56643150d07d 86 lcd.printf("%.2f C %.2f %% Hum", Ctemp, Humid);
Guillaume31 3:56643150d07d 87
Guillaume31 3:56643150d07d 88
Guillaume31 3:56643150d07d 89
Guillaume31 3:56643150d07d 90 lcd.locate(0,2);
Guillaume31 3:56643150d07d 91 cap_arret.read();
Guillaume31 3:56643150d07d 92 if (cap_arret==0) {
Guillaume31 3:56643150d07d 93 lcd.printf("A=0");
Guillaume31 3:56643150d07d 94 setSpeed(128,128);
Guillaume31 3:56643150d07d 95 }
Guillaume31 3:56643150d07d 96 else if (cap_arret==1) {
Guillaume31 3:56643150d07d 97 lcd.printf("A=1");
Guillaume31 3:56643150d07d 98 //setSpeed(60,60);
Guillaume31 3:56643150d07d 99 }
Guillaume31 3:56643150d07d 100
Guillaume31 3:56643150d07d 101
alipford3 0:8c0ef32974f0 102 }
alipford3 0:8c0ef32974f0 103 }