k

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main4.cpp Source File

main4.cpp

00001 #include "mbed.h"
00002 #include "math.h"
00003 #include "string"
00004 #include "sstream"
00005 
00006 #define LCD          0x50   // Adresse de LCD
00007 #define LCD_ON       0x41   // Registre pour allumer l'écran
00008 #define LCD_CURSOR   0X45   // Registre de positionnement du curseur
00009 #define LCD_CLEAR    0x51   // Registre pour effacer l'écran
00010 #define LCD_CMD      0xFE   // Registre de commande
00011 
00012 AnalogIn analog_value(A0);
00013 I2C i2c(I2C_SDA, I2C_SCL);
00014 
00015 int main() {
00016     i2c.frequency(100000);          // Fréquence du I2C à 100KHz
00017     
00018     char commande[4] = {LCD_CMD, LCD_ON, LCD_CMD, LCD_CLEAR};   // Initialise l'écran
00019     i2c.write(LCD, commande, 4);                                // Initialise l'écran
00020     
00021     while(1) {
00022         float analog = analog_value.read() * 3.3;   // Lecture de la tension sur A0
00023         
00024         stringstream ss;                // *** float --> string *** //
00025         ss << analog;                   // *** float --> string *** //
00026         string txt = ss.str() + " V";   // *** Composition du string *** //
00027         
00028         char data[txt.size() + 3];                  // ******************************** //
00029         data[0] = LCD_CMD;                          //
00030         data[1] = LCD_CURSOR;                       //
00031         data[2] = 0;                                // String --> char +
00032         for(uint8_t i = 0; i < txt.size(); i++){    // Positionnement du curseur à (0,0)
00033             data[i + 3] = txt[i];                   //
00034         }                                           // ******************************** //
00035         
00036         i2c.write(LCD, data, txt.size());       // Écriture sur l'écran
00037     }
00038 }