LCD I2C Library New depot for last update : https://github.com/YSI-LPS/lib_LCD_i2c_SPTLYI
Dependents: TD1_exo1 TD1_exe1_suite TP3_exo1 TP3_exo2 ... more
New depot for last update : https://github.com/YSI-LPS/lib_LCD_i2c_SPTLYI
Library for Character / Alphanumeric LCD Module 2 lines of 16 characters - 2 x 16
http://fr.farnell.com/midas/mccog21605b6w-sptlyi/lcd-cog-2x16-stn-vert-b-l-i2c/dp/2063208
lib_LCD_i2c_SPTLYI.h
- Committer:
- YSI
- Date:
- 2018-05-02
- Revision:
- 13:b0c643bbf1fa
- Parent:
- 11:86ebe0fc54f9
File content as of revision 13:b0c643bbf1fa:
/** LCD i2c SPTLYI class * * @purpose library for i2c LCD * * Utilisée pour écrire sur l'afficheur i2c SPTLYI 2x16. * * http://fr.farnell.com/midas/mccog21605b6w-sptlyi/lcd-cog-2x16-stn-vert-b-l-i2c/dp/2063208 * * Copyright (c) 2014, cstyles (http://mbed.org) * * Exemple: * @code * #include "mbed.h" * #include "lib_LCD_i2c_SPTLYI.h" * * LCD_I2C LCD; * //LCD_I2C LCD(p28, p27, p26, 0x7C); //sda, scl, rst, only 4 slave address 0x7C 0x7D 0x7E 0x7F * * int main() * { * while(1) * { * for(int i = 0; i < 9999; i++) * { * LCD.clear(); * LCD.print(i); * wait(0.25); * } * } * } * @endcode * @file lib_LCD_i2c_SPTLYI.h * @date Jan 2014 * @author Yannic Simon */ #ifndef DEF_lib_LCD_i2c_SPTLYI_H #define DEF_lib_LCD_i2c_SPTLYI_H #include "mbed.h" #include <cstdarg> /** LCD_I2C class */ class LCD_I2C : public I2C { public: /** Creer une instance LCD_I2C * sur les pins sda, scl, rst avec 1 des 4 adresses possiblent 0x7C 0x7D 0x7E 0x7F * * @param pin_sda par defaut p28 * @param pin_scl par defaut p27 * @param pin_rst par defaut p26 * @param address par defaut 0x7C */ LCD_I2C(PinName pin_sda = p28, PinName pin_scl = p27, PinName pin_rst = p26, int address = 0x7C); /** Efface l'afficheur et renvoie le curseur en position X = 0 et Y = 0 * * @param aucun * @returns acknoledge write i2c */ int clear(void); /** renvoie le curseur en position X = 0 et Y = 0 * * @param aucun * @returns acknoledge write i2c */ int return_home_cursor(void); /** positionne le curseur sur la ligne (0 à 39) * * @param X est la position sur la ligne * @returns acknoledge write i2c */ int set_position_cursor(int X); /** positionne le curseur horizontalement (0 à 39) et verticalement (0 à 1) * * @param X est la position sur la ligne * @param Y est la position sur la colone * @returns acknoledge write i2c */ int set_position_cursor(int X, int Y); /** renvoie la position horizontale du curseur * * @param aucun * @returns X est la position sur la ligne (0 à 39) */ int get_X_position_cursor(void); /** renvoie la position verticale du curseur * * @param aucun * @returns Y est la position sur la colone (0 à 1) */ int get_Y_position_cursor(void); /** positionne le curseur au début de la ligne suivante * * @param aucun * @returns acknoledge write i2c */ int shift_line_cursor(void); /** active l'affichage du curseur * * @param aucun * @returns acknoledge write i2c */ int turn_on_cursor(void); /** désactive l'affichage du curseur * * @param aucun * @returns acknoledge write i2c */ int turn_off_cursor(void); /** active l'affichage * * @param aucun * @returns acknoledge write i2c */ int turn_on_display(void); /** désactive l'affichage * * @param aucun * @returns acknoledge write i2c */ int turn_off_display(void); /** déplace le curseur vers la gauche * * @param n est le nombre de déplacement du curseur * @returns aucun */ void shift_left_cursor(int n=1); /** déplace le curseur vers la droite * * @param n est le nombre de déplacement du curseur * @returns aucun */ void shift_right_cursor(int n=1); /** déplace l'affichage vers la gauche * * @param n est le nombre de déplacement de l'affichage * @returns aucun */ void shift_left_display(int n=1); /** déplace l'affichage vers la droite * * @param n est le nombre de déplacement de l'affichage * @returns aucun */ void shift_right_display(int n=1); /** active le déplacement automatique de l'affichage vers la droite * * @param aucun * @returns acknoledge write i2c */ int enable_auto_shift_right_display(void); /** active le déplacement automatique de l'affichage vers la gauche * * @param aucun * @returns acknoledge write i2c */ int enable_auto_shift_left_display(void); /** désactive le déplacement automatique de l'affichage * * @param aucun * @returns acknoledge write i2c */ int disable_auto_shift_display(void); /** configure le déplacement automatique du curseur vers la droite * * @param aucun * @returns acknoledge write i2c */ int auto_shift_right_cursor(void); /** configure le déplacement automatique du curseur vers la droite * * @param aucun * @returns acknoledge write i2c */ int auto_shift_left_cursor(void); /** renvoie le caractere se trouvant à la position du curseur * * @param aucun * @returns le caractere se trouvant à position du curseur */ char read(void); /** renvoie le caractere se trouvant à la position spécifiée * * @param X est la position sur la ligne * @param Y est la position sur la colone * @returns le caractere se trouvant à position X et Y */ char read(int X, int Y); /** affiche une variable sur l'afficheur * * @param nb la variable à afficher * @returns acknoledge write i2c */ int print(int nb); int print(unsigned int nb); int print(short nb); int print(unsigned short nb); int print(long long nb); int print(unsigned long long nb); int print(float nb); int print(double nb); int print(char c); int print(char *s); /** affiche une chaine formaté sur l'afficheur * * @param format la chaine de format à afficher * @param ... les arguments à afficher * @returns acknoledge write i2c */ int print(const char *format, ... ); private: DigitalInOut m_pin_rst; int m_address; int init(void); void reset(void); int putnc(char *s, int n); void X_move_position(int n); int X40_position_cursor; int X80_position_cursor; int Y2_position_cursor; char LCD_Data_Register[80]; }; #endif