I2C 接続の LCD AQM1602XA-RN-GBW 用のライブラリの使用例. Demo program of library for LCD 1602XA-RN-GBW connected using I2C interface.

Dependencies:   mbed UIT_AQM1602

Committer:
MikamiUitOpen
Date:
Sat Dec 24 02:36:46 2016 +0000
Revision:
7:3b3317e5f14e
Parent:
6:3dcecef3aa21
Child:
8:ac09e00d2903
8

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 7:3b3317e5f14e 1 //----------------------------------------------------------------
MikamiUitOpen 7:3b3317e5f14e 2 // Demo program for LCD AQM1602XA-RN-GBW using I2C interface
MikamiUitOpen 0:e1b05c7eb023 3 // Pullup resistors for SDA and SCL: 10 kΩ
MikamiUitOpen 7:3b3317e5f14e 4 // Use mbed Rev.129 for Nucleo-F401/446/746 and DISCO-F746
MikamiUitOpen 7:3b3317e5f14e 5 //
MikamiUitOpen 7:3b3317e5f14e 6 // 2016/12/24, Copyright (c) 2016 MIKAMI, Naoki
MikamiUitOpen 7:3b3317e5f14e 7 //----------------------------------------------------------------
MikamiUitOpen 0:e1b05c7eb023 8
MikamiUitOpen 0:e1b05c7eb023 9 #include "AQM1602.hpp"
MikamiUitOpen 1:6c838e71e330 10
MikamiUitOpen 0:e1b05c7eb023 11 using namespace Mikami;
MikamiUitOpen 0:e1b05c7eb023 12
MikamiUitOpen 4:291e82d910d0 13 Aqm1602 lcd_; // Default, OK
MikamiUitOpen 4:291e82d910d0 14 //Aqm1602 lcd_(D14, D15); // OK
MikamiUitOpen 4:291e82d910d0 15 //Aqm1602 lcd_(D14, D15, 200000); // OK
MikamiUitOpen 4:291e82d910d0 16 //Aqm1602 lcd_(D14, D15, 200000, true, true); // OK
MikamiUitOpen 4:291e82d910d0 17 //Aqm1602 lcd_(PB_3, PB_10); // OK
MikamiUitOpen 4:291e82d910d0 18 //Aqm1602 lcd_(PC_9, PA_8); // OK
MikamiUitOpen 4:291e82d910d0 19 //Aqm1602 lcd_(PB_4, PA_8); // OK
MikamiUitOpen 4:291e82d910d0 20 //I2C i2cObj_(D14, D15);
MikamiUitOpen 4:291e82d910d0 21 //Aqm1602 lcd_(i2cObj_); // OK
MikamiUitOpen 4:291e82d910d0 22
MikamiUitOpen 4:291e82d910d0 23 // Following: for LPC1114
MikamiUitOpen 4:291e82d910d0 24 //Aqm1602 lcd_(dp5, dp27); // OK
MikamiUitOpen 4:291e82d910d0 25 //I2C i2cObj_(dp5, dp27);
MikamiUitOpen 4:291e82d910d0 26 //Aqm1602 lcd_(i2cObj_); // OK
MikamiUitOpen 4:291e82d910d0 27
MikamiUitOpen 4:291e82d910d0 28 // Following: for LPC1768
MikamiUitOpen 4:291e82d910d0 29 //Aqm1602 lcd_(p9, p10); // OK
MikamiUitOpen 0:e1b05c7eb023 30
MikamiUitOpen 0:e1b05c7eb023 31 Ticker timer_;
MikamiUitOpen 7:3b3317e5f14e 32 #ifdef STM_USER_BUTTON
MikamiUitOpen 0:e1b05c7eb023 33 DigitalIn uButton_(USER_BUTTON);
MikamiUitOpen 4:291e82d910d0 34 #endif
MikamiUitOpen 0:e1b05c7eb023 35
MikamiUitOpen 0:e1b05c7eb023 36 void TimerIsr()
MikamiUitOpen 0:e1b05c7eb023 37 {
MikamiUitOpen 0:e1b05c7eb023 38 static int k = 0;
MikamiUitOpen 5:d63f1c2d8027 39 lcd_.WriteValueXY("%5.1f", (float)(k++/10.0f), 0, 1);
MikamiUitOpen 0:e1b05c7eb023 40 }
MikamiUitOpen 0:e1b05c7eb023 41
MikamiUitOpen 0:e1b05c7eb023 42 void WaitButton()
MikamiUitOpen 0:e1b05c7eb023 43 {
MikamiUitOpen 7:3b3317e5f14e 44 #ifdef STM_USER_BUTTON
MikamiUitOpen 1:6c838e71e330 45 lcd_.WriteStringXY("Push blue button", 0, 1);
MikamiUitOpen 7:3b3317e5f14e 46 #ifdef STM32F7
MikamiUitOpen 7:3b3317e5f14e 47 while (uButton_ == 0) {}
MikamiUitOpen 7:3b3317e5f14e 48 #else
MikamiUitOpen 0:e1b05c7eb023 49 while (uButton_ == 1) {}
MikamiUitOpen 7:3b3317e5f14e 50 #endif
MikamiUitOpen 4:291e82d910d0 51 #else
MikamiUitOpen 5:d63f1c2d8027 52 wait(1);
MikamiUitOpen 4:291e82d910d0 53 #endif
MikamiUitOpen 1:6c838e71e330 54 lcd_.ClearLine(1);
MikamiUitOpen 1:6c838e71e330 55 wait(0.5);
MikamiUitOpen 0:e1b05c7eb023 56 }
MikamiUitOpen 0:e1b05c7eb023 57
MikamiUitOpen 0:e1b05c7eb023 58 int main()
MikamiUitOpen 0:e1b05c7eb023 59 {
MikamiUitOpen 6:3dcecef3aa21 60 if (lcd_.IsConnected()) printf("\r\nConnected\r\n");
MikamiUitOpen 6:3dcecef3aa21 61 else printf("\r\nDisconnected\r\n");
MikamiUitOpen 3:fe2f8abf2120 62
MikamiUitOpen 0:e1b05c7eb023 63 lcd_.Clear();
MikamiUitOpen 0:e1b05c7eb023 64 lcd_.WriteString("Hello!");
MikamiUitOpen 0:e1b05c7eb023 65 WaitButton(); // Waiting, push blue user button
MikamiUitOpen 0:e1b05c7eb023 66 lcd_.WriteStringXY("0123456789ABCDEF", 0, 0);
MikamiUitOpen 0:e1b05c7eb023 67 WaitButton(); // Waiting, push blue user button
MikamiUitOpen 0:e1b05c7eb023 68 lcd_.ClearLine(0);
MikamiUitOpen 0:e1b05c7eb023 69 WaitButton(); // Waiting, push blue user button
MikamiUitOpen 1:6c838e71e330 70 string str = "AQM1602";
MikamiUitOpen 1:6c838e71e330 71 lcd_.WriteStringXY(str+"XA-RN-GBW", 0, 0);
MikamiUitOpen 0:e1b05c7eb023 72 TimerIsr();
MikamiUitOpen 5:d63f1c2d8027 73 timer_.attach(&TimerIsr, 0.1f);
MikamiUitOpen 0:e1b05c7eb023 74
MikamiUitOpen 0:e1b05c7eb023 75 while (true) {}
MikamiUitOpen 0:e1b05c7eb023 76 }