![](/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
main.cpp
- Committer:
- werwolf_lg
- Date:
- 2015-12-23
- Revision:
- 0:8f6ff5bb5a2d
- Child:
- 1:fbe0e730a150
File content as of revision 0:8f6ff5bb5a2d:
#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); } }