![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Arduino 16x2 LCD Keypad Shield + Nucleo-F030R8 controlling PWM LED with LCD menu
Fork of Nucleo_LCD_Keypad_Shield by
Diff: main.cpp
- Revision:
- 0:8f6ff5bb5a2d
- Child:
- 1:fbe0e730a150
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Dec 23 16:58:19 2015 +0000 @@ -0,0 +1,57 @@ +#include "mbed.h" +#include "TextLCD.h" + +Serial pc(SERIAL_TX, SERIAL_RX); +AnalogIn button(A0); // Init button (SELECT, LEFT, UP, DOWN, RIGHT) +// LCD (RS, E, D4, D5, D6, D7); +TextLCD lcd(D8, D9, D4, D5, D6, D7); +PwmOut backlight(D10); // Backlight LCD +DigitalOut led(LED1); + +int main() { + + // Set backlight period and duty cycle + backlight.period(0.002); + backlight = 1; + + + lcd.cls(); // Clear LCD + lcd.locate(1,0); // Set locate (1 row, 2 column) + lcd.printf("LCD Key Shield"); + wait(1); + + int meas; + + while(1) { + led = (led == 1) ? 0 : 1; + + 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) + + lcd.cls(); + lcd.locate(0,0); + lcd.printf("Press button"); + lcd.locate(0,1); + + if (meas < 50) { + lcd.printf("BUTTON: Right "); + backlight = 0.5; // Set 50% backlight + } + else if (meas < 210) { + lcd.printf("BUTTON: Up"); + backlight = 1; // Power ON backlight + } + else if (meas < 460){ + lcd.printf("BUTTON: Down"); + backlight = 0; // Power OFF backlight + } + else if (meas < 720){ + lcd.printf("BUTTON: Left"); + } + else if (meas > 950){ + lcd.printf("BUTTON: Select"); + } + pc.printf("BUTTON: %4d\n", meas); + + wait(0.1); + } +} \ No newline at end of file