HTU21D-F with board Nucleo_F411RE results in float
Dependencies: HTU21D mbed MD25 TextLCD
Fork of HTU21D-F_Nucleo_F411RE by
main.cpp
- Committer:
- Guillaume31
- Date:
- 2015-04-13
- Revision:
- 3:56643150d07d
- Parent:
- 2:c00e194f9ed5
File content as of revision 3:56643150d07d:
// Librairies #include "mbed.h" // Standard #include "MD25.h" // Moteurs #include "TextLCD.h" // Ecran LCD #include "HTU21D.h" // Capteur Temperature / Humidite // #include "VCNL40x0.h" // Capteur Luminosite / Distance // Declarations E/S ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// DigitalIn bouton (USER_BUTTON); // Bouton d'arret total du robot DigitalIn bouton_poussoir(D9); // Pin PC7 Bouton poussoir demarrage DigitalIn cap_arret(PA_9); // Pin PA9 capteur d'arret (Devant) Serial pc(SERIAL_TX, SERIAL_RX); // Port Serie avec le PC TextLCD lcd(D2, D3, D4, D5, D6, D7,TextLCD::LCD20x4); // Ecran LDC (rs, e, d4-d7) 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) HTU21D temphumid(D14, D15);//HTU21D temp(I2C_SDA, I2C_SCL); // Capteur Temperature / Humidite //VCNL40x0 VCNL40x0_Device (I2C_SDA, I2C_SCL, VCNL40x0_ADDRESS); // Capteur Luminosite / Distance Define SDA, SCL pin and I2C address // Fonctions pour les Moteurs //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Prototypes //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void init_motors (void); // Initialisation des Moteurs void setSpeed (int speedMotor1, int speedMotor2); // Definir Vitesse moteurs // Definition //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void init_motors(void) { i2c.setMode(0); // MODE 0, 0=marche arriere 128=stop 255=marche arriere vmax i2c.setCommand(32); // 0x20 reset encoders i2c.setCommand(50); // 0X32 Disable time out //i2c.setCommand(32); // 0x20 reset encoders //i2c.setCommand(48); // 0X32 Disable speed regulation } void setSpeed (int vitMotor1, int vitMotor2) { i2c.setSpeedRegisters(vitMotor1,vitMotor2); } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Fonction d'Initialisation ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void initialisations () { lcd.printf("Initialisation\n"); pc.printf("Initialisation\n\r"); bouton.mode (PullUp); // Bouton Utilisateur bouton_poussoir.mode (PullUp); // Bouton Poussoir init_motors(); // Initialise Moteur pc.printf("Fin Initialisation\n\r"); lcd.printf("Fin Initialisation\n"); wait(1); } // Fonction Principale ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int main() { ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// pc.printf("\n\n\n\n\n\n\n\n Majord'home: Hello! Programme\n\r"); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// lcd.printf("Majord'home: Hello!\n"); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// wait(1); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// initialisations (); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Declaration Variables Locales float Ftemp, Ctemp, Ktemp, Humid; // Temperature et humidite // Init des Temperatures et Humidite Ftemp = temphumid.sample_ftemp(); Ctemp = temphumid.sample_ctemp(); Ktemp = temphumid.sample_ktemp(); Humid = temphumid.sample_humid(); // Boucle Infinie ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// lcd.cls(); lcd.locate(0,0); lcd.printf("%.2f C %.2f %% Hum", Ctemp, Humid); lcd.locate(0,1); lcd.printf("%.2f F %.2f K", Ftemp, Ktemp); lcd.locate(0,2); lcd.printf("Debut While(1)"); pc.printf("Debut While(1)\n\r"); wait(3); lcd.cls(); lcd.locate(0,0); while(1) { ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// lcd.locate(0,0); Ctemp = temphumid.sample_ctemp(); Humid = temphumid.sample_humid(); lcd.printf("%.2f C %.2f %% Hum", Ctemp, Humid); lcd.locate(0,2); cap_arret.read(); if (cap_arret==0) { lcd.printf("A=0"); setSpeed(128,128); } else if (cap_arret==1) { lcd.printf("A=1"); //setSpeed(60,60); } } }