Demo for button and backlight use with Arduino LCD Keypad Shield (HD44780) and similar 16x2 hardware clones. Press 'Up' or 'Down' button to ON or OFF backlight. Build and test with STM32 Nucleo F411RE.

Dependencies:   TextLCD mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "TextLCD.h"
00003 
00004 Serial pc(SERIAL_TX, SERIAL_RX); 
00005 AnalogIn button(A0);    // Init button (SELECT, LEFT, UP, DOWN, RIGHT)
00006 // LCD (RS, E, D4, D5, D6, D7);
00007 TextLCD lcd(D8, D9, D4, D5, D6, D7);
00008 PwmOut backlight(D10);  // Backlight LCD
00009 DigitalOut led(LED1);
00010 
00011 int main() {
00012     
00013     // Set backlight period and duty cycle 
00014     backlight.period(0.002);
00015     backlight = 1;
00016     
00017     
00018     lcd.cls();                      // Clear LCD
00019     lcd.locate(1,0);                // Set locate (1 row, 2 column)
00020     lcd.printf("LCD Key Shield");
00021     wait(1);
00022     
00023     int meas;
00024     
00025     while(1) {
00026         led = (led == 1) ? 0 : 1;
00027 
00028         meas = button.read() * 1000; // Read the analog input value (value from 0.0 to 1.0) and convert to int value (from 0 to 1000)
00029         
00030         lcd.cls();
00031         lcd.locate(0,0);
00032         lcd.printf("Press button");
00033         lcd.locate(0,1);
00034         
00035         if (meas < 50) { 
00036             lcd.printf("BUTTON: Right ");
00037             backlight = 0.5;        // Set 50% backlight 
00038         }
00039         else if (meas < 210) { 
00040             lcd.printf("BUTTON: Up");
00041             backlight = 1;          // Power ON backlight
00042         } 
00043         else if (meas < 460){ 
00044             lcd.printf("BUTTON: Down");
00045             backlight = 0;          // Power OFF backlight
00046         } 
00047         else if (meas < 720){ 
00048             lcd.printf("BUTTON: Left"); 
00049         } 
00050         else if (meas > 950){ 
00051             lcd.printf("BUTTON: Select");
00052         }
00053         pc.printf("BUTTON: %4d\n", meas);
00054         
00055         wait(0.1);
00056     }
00057 }