You can output chars to AQM1602 with printf(). ex. lcd.printf("iter: %5.5d.\r\n", iter);

Dependents:   aqm1602 FCAS-M101V1

Committer:
AkinoriHashimoto
Date:
Fri Nov 06 06:29:22 2015 +0000
Revision:
2:9233e977ee6e
Parent:
1:ac441b938a80
Child:
3:4a1be7924c30
Adj. constructor, Refer.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AkinoriHashimoto 1:ac441b938a80 1 /**
AkinoriHashimoto 1:ac441b938a80 2 * LCD AQM1602 library, refer to http://akizukidenshi.com/catalog/g/gP-08779/.
AkinoriHashimoto 1:ac441b938a80 3 * 16 chars x 2 lines.
AkinoriHashimoto 1:ac441b938a80 4 * I select 20k ohm as pullup resistor.
AkinoriHashimoto 1:ac441b938a80 5 */
AkinoriHashimoto 1:ac441b938a80 6
AkinoriHashimoto 1:ac441b938a80 7 /** @code
AkinoriHashimoto 1:ac441b938a80 8 * #include "mbed.h"
AkinoriHashimoto 1:ac441b938a80 9 * #include "AQM1602.h"
AkinoriHashimoto 1:ac441b938a80 10 *
AkinoriHashimoto 1:ac441b938a80 11 * I2C i2c(p28, p27);
AkinoriHashimoto 1:ac441b938a80 12 * AQM1602 lcd(i2c); // if 5.0v supply, (i2c, false);
AkinoriHashimoto 1:ac441b938a80 13 * DigitalOut led[]= {LED1, LED2, LED3, LED4};
AkinoriHashimoto 1:ac441b938a80 14 *
AkinoriHashimoto 1:ac441b938a80 15 * int main()
AkinoriHashimoto 1:ac441b938a80 16 * {
AkinoriHashimoto 1:ac441b938a80 17 * lcd.init();
AkinoriHashimoto 1:ac441b938a80 18 * int iter= 0;
AkinoriHashimoto 1:ac441b938a80 19 * while(true) {
AkinoriHashimoto 1:ac441b938a80 20 * led[0] = !led[0];
AkinoriHashimoto 1:ac441b938a80 21 * lcd.printf("iter: %5.5d.", iter);
AkinoriHashimoto 1:ac441b938a80 22 * wait(1.0f);
AkinoriHashimoto 1:ac441b938a80 23 * if(iter%10 == 0) // 10s
AkinoriHashimoto 1:ac441b938a80 24 * lcd.clear();
AkinoriHashimoto 1:ac441b938a80 25 * iter++;
AkinoriHashimoto 1:ac441b938a80 26 * }
AkinoriHashimoto 1:ac441b938a80 27 * }
AkinoriHashimoto 1:ac441b938a80 28 * @endcode
AkinoriHashimoto 1:ac441b938a80 29 */
AkinoriHashimoto 1:ac441b938a80 30
AkinoriHashimoto 0:4d904885c9b8 31 #pragma once
AkinoriHashimoto 0:4d904885c9b8 32
AkinoriHashimoto 0:4d904885c9b8 33 #include "mbed.h"
AkinoriHashimoto 0:4d904885c9b8 34
AkinoriHashimoto 0:4d904885c9b8 35 class AQM1602 : public Stream{
AkinoriHashimoto 0:4d904885c9b8 36 public:
AkinoriHashimoto 1:ac441b938a80 37 AQM1602(PinName sda, PinName scl, bool pw3v3= true, char address= 0x7c);
AkinoriHashimoto 1:ac441b938a80 38 AQM1602(I2C &_i2c, bool pw3v3= true, char address= 0x7c);
AkinoriHashimoto 2:9233e977ee6e 39 ~AQM1602();
AkinoriHashimoto 1:ac441b938a80 40 // ******************** enable printf() future of C-language. ****************
AkinoriHashimoto 0:4d904885c9b8 41
AkinoriHashimoto 0:4d904885c9b8 42 /** Initialize
AkinoriHashimoto 0:4d904885c9b8 43 */
AkinoriHashimoto 0:4d904885c9b8 44 void init();
AkinoriHashimoto 0:4d904885c9b8 45
AkinoriHashimoto 0:4d904885c9b8 46 /** Clear Display.
AkinoriHashimoto 0:4d904885c9b8 47 */
AkinoriHashimoto 0:4d904885c9b8 48 void clear();
AkinoriHashimoto 0:4d904885c9b8 49
AkinoriHashimoto 0:4d904885c9b8 50 /** Set Position of char.
AkinoriHashimoto 0:4d904885c9b8 51 * @param col: column, row: rows.
AkinoriHashimoto 0:4d904885c9b8 52 */
AkinoriHashimoto 0:4d904885c9b8 53 void locate(int col, int row);
AkinoriHashimoto 0:4d904885c9b8 54
AkinoriHashimoto 0:4d904885c9b8 55 /** Set Contrast.
AkinoriHashimoto 0:4d904885c9b8 56 * @param val; 64steps, 0x00 ~ 0x3f. Contrast increas as the value.
AkinoriHashimoto 1:ac441b938a80 57 * default: 0x23.
AkinoriHashimoto 0:4d904885c9b8 58 */
AkinoriHashimoto 0:4d904885c9b8 59 void setContrast(char val, bool ctrlIS= true);
AkinoriHashimoto 0:4d904885c9b8 60
AkinoriHashimoto 0:4d904885c9b8 61 /** Set Display flag.
AkinoriHashimoto 0:4d904885c9b8 62 * @parm Enable Display, Cursor turned on, Cursor Blink.
AkinoriHashimoto 0:4d904885c9b8 63 */
AkinoriHashimoto 1:ac441b938a80 64 void setDispFlag(bool disp= true, bool cursor= true, bool blink= true);
AkinoriHashimoto 0:4d904885c9b8 65
AkinoriHashimoto 0:4d904885c9b8 66 private:
AkinoriHashimoto 1:ac441b938a80 67 // using i2c
AkinoriHashimoto 2:9233e977ee6e 68 I2C *p_i2c;
AkinoriHashimoto 2:9233e977ee6e 69 I2C &i2c;
AkinoriHashimoto 1:ac441b938a80 70 char addr; // i2c Addr.
AkinoriHashimoto 1:ac441b938a80 71 char buf[3]; // i2c to write char space
AkinoriHashimoto 1:ac441b938a80 72 int wait4cmd; // waiting time span for sending command.
AkinoriHashimoto 1:ac441b938a80 73
AkinoriHashimoto 1:ac441b938a80 74 // char valContrast;
AkinoriHashimoto 1:ac441b938a80 75 int col, row; // column, row of the LCD panel.
AkinoriHashimoto 1:ac441b938a80 76 bool vdd3v3;
AkinoriHashimoto 1:ac441b938a80 77 char contrast;
AkinoriHashimoto 1:ac441b938a80 78
AkinoriHashimoto 1:ac441b938a80 79 void setPwContrast(bool ctrlIS= true);
AkinoriHashimoto 0:4d904885c9b8 80
AkinoriHashimoto 0:4d904885c9b8 81 bool cmd(char chr);
AkinoriHashimoto 0:4d904885c9b8 82
AkinoriHashimoto 0:4d904885c9b8 83 // virtual func for printf() in Stream-class.
AkinoriHashimoto 0:4d904885c9b8 84 virtual int _putc(int value);
AkinoriHashimoto 1:ac441b938a80 85 virtual int _getc(); // return -1.
AkinoriHashimoto 0:4d904885c9b8 86
AkinoriHashimoto 0:4d904885c9b8 87 void setIS();
AkinoriHashimoto 0:4d904885c9b8 88 void clearIS();
AkinoriHashimoto 0:4d904885c9b8 89 };
AkinoriHashimoto 0:4d904885c9b8 90
AkinoriHashimoto 0:4d904885c9b8 91 // EOF