Simple libary for AQM1602XA I2C Character LCD.

Committer:
kazz12211
Date:
Sun Apr 24 11:50:38 2016 +0000
Revision:
0:933748ca1307
Simple class for AQM1602XA I2C LCD.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kazz12211 0:933748ca1307 1 #include "AQM1602XA.h"
kazz12211 0:933748ca1307 2
kazz12211 0:933748ca1307 3 AQM1602XA::AQM1602XA(PinName sda, PinName scl, char slave_adr)
kazz12211 0:933748ca1307 4 : wire(sda, scl) {
kazz12211 0:933748ca1307 5 address = slave_adr;
kazz12211 0:933748ca1307 6 initialize();
kazz12211 0:933748ca1307 7 }
kazz12211 0:933748ca1307 8
kazz12211 0:933748ca1307 9
kazz12211 0:933748ca1307 10 void AQM1602XA::writeCommand(char cmd) {
kazz12211 0:933748ca1307 11 char bytes[2];
kazz12211 0:933748ca1307 12 bytes[0] = 0x00;
kazz12211 0:933748ca1307 13 bytes[1] = cmd;
kazz12211 0:933748ca1307 14 wire.write(address, bytes, 2);
kazz12211 0:933748ca1307 15 wait(0.01);
kazz12211 0:933748ca1307 16 }
kazz12211 0:933748ca1307 17
kazz12211 0:933748ca1307 18 void AQM1602XA::writeData(char data) {
kazz12211 0:933748ca1307 19 char bytes[2];
kazz12211 0:933748ca1307 20 bytes[0] = 0x40;
kazz12211 0:933748ca1307 21 bytes[1] = data;
kazz12211 0:933748ca1307 22 wire.write(address, bytes, 2);
kazz12211 0:933748ca1307 23 wait(0.001);
kazz12211 0:933748ca1307 24 }
kazz12211 0:933748ca1307 25
kazz12211 0:933748ca1307 26 void AQM1602XA::initialize() {
kazz12211 0:933748ca1307 27 char cmd[] = {0x38, 0x39, 0x14, 0x73, 0x56, 0x6c, 0x38, 0x01, 0x0c};
kazz12211 0:933748ca1307 28 wait(0.1);
kazz12211 0:933748ca1307 29 for(int i = 0; i < 9; i++) {
kazz12211 0:933748ca1307 30 writeCommand(cmd[i]);
kazz12211 0:933748ca1307 31 }
kazz12211 0:933748ca1307 32 }
kazz12211 0:933748ca1307 33
kazz12211 0:933748ca1307 34 void AQM1602XA::printString(int row, char *str) {
kazz12211 0:933748ca1307 35 int len = strlen(str);
kazz12211 0:933748ca1307 36 if(len > 16)
kazz12211 0:933748ca1307 37 len = 16;
kazz12211 0:933748ca1307 38 if(row == 1) {
kazz12211 0:933748ca1307 39 writeCommand(0x40 + 0x80);
kazz12211 0:933748ca1307 40 }
kazz12211 0:933748ca1307 41 for(int i = 0; i < len; i++) {
kazz12211 0:933748ca1307 42 writeData(*(str + i));
kazz12211 0:933748ca1307 43 }
kazz12211 0:933748ca1307 44 }