SO1602A Lib. SO1602A is Organic LED, has 16 chars and 2 lines. This lib supports printf() of C-Language. http://akizukidenshi.com/catalog/g/gP-08276/

Dependents:   NEW_LineTraceHub NEW_LineTraceHub_2 ColorSensorTest

Committer:
AkinoriHashimoto
Date:
Wed Sep 09 00:04:00 2015 +0000
Revision:
1:eef15a16fe7a
Parent:
0:d8b95544d238
Child:
3:eaaedd09fa6b
Write example code.; Make setDisplayFlag Function.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AkinoriHashimoto 1:eef15a16fe7a 1 /** SO1602A is Organic-LED, and has 16 chars/line and 2 lines.
AkinoriHashimoto 1:eef15a16fe7a 2 * This librarry supports "printf()" C format.
AkinoriHashimoto 1:eef15a16fe7a 3 *
AkinoriHashimoto 1:eef15a16fe7a 4 * EX. code.
AkinoriHashimoto 1:eef15a16fe7a 5 *
AkinoriHashimoto 1:eef15a16fe7a 6 * I2C i2c(p9, p10);
AkinoriHashimoto 1:eef15a16fe7a 7 * SO1602A oled(i2c); // if SA0 is Low. Otherwise, oled(i2c, 0x7a);
AkinoriHashimoto 1:eef15a16fe7a 8 * // SO1602A oled(p9, p10);
AkinoriHashimoto 1:eef15a16fe7a 9 * oled.setContrast(0xff);
AkinoriHashimoto 1:eef15a16fe7a 10 * oled.setDispFlag(true, true, false);
AkinoriHashimoto 1:eef15a16fe7a 11 * oled.printf("test:%d,%f", i, 3.14);
AkinoriHashimoto 1:eef15a16fe7a 12 */
AkinoriHashimoto 1:eef15a16fe7a 13
AkinoriHashimoto 0:d8b95544d238 14 #pragma once
AkinoriHashimoto 0:d8b95544d238 15
AkinoriHashimoto 0:d8b95544d238 16 #include "mbed.h"
AkinoriHashimoto 0:d8b95544d238 17
AkinoriHashimoto 0:d8b95544d238 18 // SA0(Pin4)=Low: i2c_addr= 0x78, High: 0x7a;
AkinoriHashimoto 0:d8b95544d238 19 // DDRAM addr. Line1: 0x00 ~ 0x0f. Line2: 0x20 ~ 0x2f.
AkinoriHashimoto 0:d8b95544d238 20
AkinoriHashimoto 0:d8b95544d238 21 class SO1602A : public Stream{
AkinoriHashimoto 0:d8b95544d238 22 public:
AkinoriHashimoto 0:d8b95544d238 23 SO1602A (PinName sda, PinName scl, char address= 0x78);
AkinoriHashimoto 0:d8b95544d238 24 SO1602A (I2C &_i2c, char address= 0x78);
AkinoriHashimoto 0:d8b95544d238 25
AkinoriHashimoto 0:d8b95544d238 26 // ******************** printf() future of C-language. ***************************
AkinoriHashimoto 0:d8b95544d238 27
AkinoriHashimoto 0:d8b95544d238 28 /** Initialize
AkinoriHashimoto 0:d8b95544d238 29 */
AkinoriHashimoto 0:d8b95544d238 30 void init();
AkinoriHashimoto 0:d8b95544d238 31
AkinoriHashimoto 0:d8b95544d238 32 /** Clear Display.
AkinoriHashimoto 0:d8b95544d238 33 */
AkinoriHashimoto 0:d8b95544d238 34 void clear();
AkinoriHashimoto 0:d8b95544d238 35
AkinoriHashimoto 0:d8b95544d238 36 /** Set Position of char.
AkinoriHashimoto 0:d8b95544d238 37 * @param col: column, row: rows.
AkinoriHashimoto 0:d8b95544d238 38 */
AkinoriHashimoto 0:d8b95544d238 39 void locate(int col, int row);
AkinoriHashimoto 0:d8b95544d238 40
AkinoriHashimoto 0:d8b95544d238 41 /** Set Contrast.
AkinoriHashimoto 0:d8b95544d238 42 * @param val; 256steps, 0x00 ~ 0xff. Contrast increas as the value.
AkinoriHashimoto 0:d8b95544d238 43 */
AkinoriHashimoto 0:d8b95544d238 44 void setContrast(char val);
AkinoriHashimoto 1:eef15a16fe7a 45
AkinoriHashimoto 1:eef15a16fe7a 46 /** Set Display flag.
AkinoriHashimoto 1:eef15a16fe7a 47 * @parm Enable Display, Cursor turned on, Cursor Blink.
AkinoriHashimoto 1:eef15a16fe7a 48 */
AkinoriHashimoto 1:eef15a16fe7a 49 void setDispFlag(bool disp, bool cursor, bool blink);
AkinoriHashimoto 0:d8b95544d238 50
AkinoriHashimoto 0:d8b95544d238 51 private:
AkinoriHashimoto 0:d8b95544d238 52 I2C i2c;
AkinoriHashimoto 0:d8b95544d238 53 char addr;
AkinoriHashimoto 0:d8b95544d238 54 char buf[3];
AkinoriHashimoto 0:d8b95544d238 55 int _column, _row;
AkinoriHashimoto 0:d8b95544d238 56
AkinoriHashimoto 0:d8b95544d238 57 bool cmd(char chr);
AkinoriHashimoto 0:d8b95544d238 58
AkinoriHashimoto 0:d8b95544d238 59 // virtual func for printf() in Stream-class.
AkinoriHashimoto 0:d8b95544d238 60 virtual int _putc(int val);
AkinoriHashimoto 0:d8b95544d238 61 virtual int _getc();
AkinoriHashimoto 0:d8b95544d238 62
AkinoriHashimoto 0:d8b95544d238 63 // Function SET
AkinoriHashimoto 0:d8b95544d238 64 void setRE();
AkinoriHashimoto 0:d8b95544d238 65 void clearRE();
AkinoriHashimoto 0:d8b95544d238 66 void setSD();
AkinoriHashimoto 0:d8b95544d238 67 void clearSD();
AkinoriHashimoto 0:d8b95544d238 68
AkinoriHashimoto 0:d8b95544d238 69 };
AkinoriHashimoto 0:d8b95544d238 70
AkinoriHashimoto 0:d8b95544d238 71 // EOF