You can output chars to AQM1602 with printf(). ex. lcd.printf("iter: %5.5d.\r\n", iter);
Dependents: aqm1602 FCAS-M101V1
AQM1602.h@3:4a1be7924c30, 2016-08-31 (annotated)
- Committer:
- AkinoriHashimoto
- Date:
- Wed Aug 31 01:49:19 2016 +0000
- Revision:
- 3:4a1be7924c30
- Parent:
- 2:9233e977ee6e
Adj. CR&LF.
Who changed what in which revision?
User | Revision | Line number | New 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 | 3:4a1be7924c30 | 21 | * lcd.printf("iter: %5.5d.\r\n", 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 | 3:4a1be7924c30 | 50 | /** CR, LF |
AkinoriHashimoto | 3:4a1be7924c30 | 51 | */ |
AkinoriHashimoto | 3:4a1be7924c30 | 52 | void cr(); |
AkinoriHashimoto | 3:4a1be7924c30 | 53 | void lf(); |
AkinoriHashimoto | 3:4a1be7924c30 | 54 | |
AkinoriHashimoto | 0:4d904885c9b8 | 55 | /** Set Position of char. |
AkinoriHashimoto | 0:4d904885c9b8 | 56 | * @param col: column, row: rows. |
AkinoriHashimoto | 0:4d904885c9b8 | 57 | */ |
AkinoriHashimoto | 0:4d904885c9b8 | 58 | void locate(int col, int row); |
AkinoriHashimoto | 0:4d904885c9b8 | 59 | |
AkinoriHashimoto | 0:4d904885c9b8 | 60 | /** Set Contrast. |
AkinoriHashimoto | 0:4d904885c9b8 | 61 | * @param val; 64steps, 0x00 ~ 0x3f. Contrast increas as the value. |
AkinoriHashimoto | 1:ac441b938a80 | 62 | * default: 0x23. |
AkinoriHashimoto | 0:4d904885c9b8 | 63 | */ |
AkinoriHashimoto | 0:4d904885c9b8 | 64 | void setContrast(char val, bool ctrlIS= true); |
AkinoriHashimoto | 0:4d904885c9b8 | 65 | |
AkinoriHashimoto | 0:4d904885c9b8 | 66 | /** Set Display flag. |
AkinoriHashimoto | 0:4d904885c9b8 | 67 | * @parm Enable Display, Cursor turned on, Cursor Blink. |
AkinoriHashimoto | 0:4d904885c9b8 | 68 | */ |
AkinoriHashimoto | 1:ac441b938a80 | 69 | void setDispFlag(bool disp= true, bool cursor= true, bool blink= true); |
AkinoriHashimoto | 0:4d904885c9b8 | 70 | |
AkinoriHashimoto | 0:4d904885c9b8 | 71 | private: |
AkinoriHashimoto | 1:ac441b938a80 | 72 | // using i2c |
AkinoriHashimoto | 2:9233e977ee6e | 73 | I2C *p_i2c; |
AkinoriHashimoto | 2:9233e977ee6e | 74 | I2C &i2c; |
AkinoriHashimoto | 1:ac441b938a80 | 75 | char addr; // i2c Addr. |
AkinoriHashimoto | 1:ac441b938a80 | 76 | char buf[3]; // i2c to write char space |
AkinoriHashimoto | 1:ac441b938a80 | 77 | int wait4cmd; // waiting time span for sending command. |
AkinoriHashimoto | 1:ac441b938a80 | 78 | |
AkinoriHashimoto | 1:ac441b938a80 | 79 | // char valContrast; |
AkinoriHashimoto | 1:ac441b938a80 | 80 | int col, row; // column, row of the LCD panel. |
AkinoriHashimoto | 1:ac441b938a80 | 81 | bool vdd3v3; |
AkinoriHashimoto | 1:ac441b938a80 | 82 | char contrast; |
AkinoriHashimoto | 1:ac441b938a80 | 83 | |
AkinoriHashimoto | 1:ac441b938a80 | 84 | void setPwContrast(bool ctrlIS= true); |
AkinoriHashimoto | 0:4d904885c9b8 | 85 | |
AkinoriHashimoto | 0:4d904885c9b8 | 86 | bool cmd(char chr); |
AkinoriHashimoto | 0:4d904885c9b8 | 87 | |
AkinoriHashimoto | 0:4d904885c9b8 | 88 | // virtual func for printf() in Stream-class. |
AkinoriHashimoto | 0:4d904885c9b8 | 89 | virtual int _putc(int value); |
AkinoriHashimoto | 1:ac441b938a80 | 90 | virtual int _getc(); // return -1. |
AkinoriHashimoto | 0:4d904885c9b8 | 91 | |
AkinoriHashimoto | 0:4d904885c9b8 | 92 | void setIS(); |
AkinoriHashimoto | 0:4d904885c9b8 | 93 | void clearIS(); |
AkinoriHashimoto | 0:4d904885c9b8 | 94 | }; |
AkinoriHashimoto | 0:4d904885c9b8 | 95 | |
AkinoriHashimoto | 0:4d904885c9b8 | 96 | // EOF |