Arduino 16x2 LCD Keypad Shield + Nucleo-F030R8 controlling PWM LED with LCD menu

Dependencies:   TextLCD mbed

Fork of Nucleo_LCD_Keypad_Shield by Sergey Frolov

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);
    }
}