k

Dependencies:   mbed

Committer:
RobotManYt
Date:
Fri May 24 14:38:11 2019 +0000
Revision:
0:6c538ba03807
l

Who changed what in which revision?

UserRevisionLine numberNew 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 }