k
Dependencies: mbed
main4.cpp@0:6c538ba03807, 2019-05-24 (annotated)
- Committer:
- RobotManYt
- Date:
- Fri May 24 14:38:11 2019 +0000
- Revision:
- 0:6c538ba03807
l
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
RobotManYt | 0:6c538ba03807 | 1 | #include "mbed.h" |
RobotManYt | 0:6c538ba03807 | 2 | #include "math.h" |
RobotManYt | 0:6c538ba03807 | 3 | #include "string" |
RobotManYt | 0:6c538ba03807 | 4 | #include "sstream" |
RobotManYt | 0:6c538ba03807 | 5 | |
RobotManYt | 0:6c538ba03807 | 6 | #define LCD 0x50 // Adresse de LCD |
RobotManYt | 0:6c538ba03807 | 7 | #define LCD_ON 0x41 // Registre pour allumer l'écran |
RobotManYt | 0:6c538ba03807 | 8 | #define LCD_CURSOR 0X45 // Registre de positionnement du curseur |
RobotManYt | 0:6c538ba03807 | 9 | #define LCD_CLEAR 0x51 // Registre pour effacer l'écran |
RobotManYt | 0:6c538ba03807 | 10 | #define LCD_CMD 0xFE // Registre de commande |
RobotManYt | 0:6c538ba03807 | 11 | |
RobotManYt | 0:6c538ba03807 | 12 | AnalogIn analog_value(A0); |
RobotManYt | 0:6c538ba03807 | 13 | I2C i2c(I2C_SDA, I2C_SCL); |
RobotManYt | 0:6c538ba03807 | 14 | |
RobotManYt | 0:6c538ba03807 | 15 | int main() { |
RobotManYt | 0:6c538ba03807 | 16 | i2c.frequency(100000); // Fréquence du I2C à 100KHz |
RobotManYt | 0:6c538ba03807 | 17 | |
RobotManYt | 0:6c538ba03807 | 18 | char commande[4] = {LCD_CMD, LCD_ON, LCD_CMD, LCD_CLEAR}; // Initialise l'écran |
RobotManYt | 0:6c538ba03807 | 19 | i2c.write(LCD, commande, 4); // Initialise l'écran |
RobotManYt | 0:6c538ba03807 | 20 | |
RobotManYt | 0:6c538ba03807 | 21 | while(1) { |
RobotManYt | 0:6c538ba03807 | 22 | float analog = analog_value.read() * 3.3; // Lecture de la tension sur A0 |
RobotManYt | 0:6c538ba03807 | 23 | |
RobotManYt | 0:6c538ba03807 | 24 | stringstream ss; // *** float --> string *** // |
RobotManYt | 0:6c538ba03807 | 25 | ss << analog; // *** float --> string *** // |
RobotManYt | 0:6c538ba03807 | 26 | string txt = ss.str() + " V"; // *** Composition du string *** // |
RobotManYt | 0:6c538ba03807 | 27 | |
RobotManYt | 0:6c538ba03807 | 28 | char data[txt.size() + 3]; // ******************************** // |
RobotManYt | 0:6c538ba03807 | 29 | data[0] = LCD_CMD; // |
RobotManYt | 0:6c538ba03807 | 30 | data[1] = LCD_CURSOR; // |
RobotManYt | 0:6c538ba03807 | 31 | data[2] = 0; // String --> char + |
RobotManYt | 0:6c538ba03807 | 32 | for(uint8_t i = 0; i < txt.size(); i++){ // Positionnement du curseur à (0,0) |
RobotManYt | 0:6c538ba03807 | 33 | data[i + 3] = txt[i]; // |
RobotManYt | 0:6c538ba03807 | 34 | } // ******************************** // |
RobotManYt | 0:6c538ba03807 | 35 | |
RobotManYt | 0:6c538ba03807 | 36 | i2c.write(LCD, data, txt.size()); // Écriture sur l'écran |
RobotManYt | 0:6c538ba03807 | 37 | } |
RobotManYt | 0:6c538ba03807 | 38 | } |