HTU21D-F with board Nucleo_F411RE results in float
Dependencies: HTU21D mbed MD25 TextLCD
Fork of HTU21D-F_Nucleo_F411RE by
main.cpp@3:56643150d07d, 2015-04-13 (annotated)
- 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?
User | Revision | Line number | New 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 | } |