pdf-icon

Arduino Guide

Button

Paper Button input related APIs and case programs.

Note:
Include M5.update() function in the main loop to read status update and minimize blocking, otherwise you may not be able to retrieve the status of key changes in time.

Example

#include <M5EPD.h>

M5EPD_Canvas canvas(&M5.EPD);

void ButtonTest(char* str) {
    canvas.fillCanvas(0);
    canvas.drawString(str, 100, 100);
    canvas.pushCanvas(100, 300, UPDATE_MODE_DU4);
    delay(500);
}

void setup() {
    M5.begin();
    M5.EPD.SetRotation(90);
    M5.EPD.Clear(true);
    canvas.createCanvas(300, 300);
    canvas.setTextSize(3);
}

void loop() {
    if (M5.BtnL.wasPressed()) ButtonTest("Btn L Pressed");
    if (M5.BtnP.wasPressed()) ButtonTest("Btn P Pressed");
    if (M5.BtnR.wasPressed()) ButtonTest("Btn R Pressed");
    M5.BtnL.lastChange();
    M5.update();
    delay(100);
}

read

Syntax:

uint8_t read();

Description:

  • Read Button status

Parameters:

  • null

Return:

  • uint8_t:
    • 1:Button Press
    • 0:Button Release

lastChange

Syntax:

uint32_t lastChange();

Description:

  • Get the time of the last status update

Parameters:

  • null

Return:

  • uint32_t: Time of last status update ms

isPressed

Syntax:

uint8_t isPressed();

Description:

  • Determine if a Button is pressed

Parameters:

  • null

Return:

  • uint8_t:
    • 1: Button is pressed
    • 0: Button is not pressed

wasPressed

Syntax:

uint8_t wasPressed();

Description:

  • Determine if a Button has changed from released to pressed.

Parameters:

  • null

Return:

  • uint8_t:
    • 1: Trigger Button to change from released to pressed state
    • 0: Untriggered Button changes from released state to pressed state

pressedFor

Syntax:

uint8_t pressedFor(uint32_t ms);

Description:

  • Determine if a Button has been pressed for longer than the specified timeout period.

Parameters:

  • uint32_t ms:
    • Button press timeout ms

Return:

  • uint8_t:
    • 1: Trigger Button release beyond timeout
    • 0: non-triggered

isReleased

Syntax:

uint8_t isReleased();

Description:

  • Determine if a Button is in the released state

Parameters:

  • null

Return:

  • uint8_t:
    • 1: Button is released.
    • 0: Button are not released.

releasedFor

Syntax:

uint8_t releasedFor(uint32_t ms);

Description:

  • Determine Button release timeout

Parameters:

  • uint32_t ms:
    • Button release timeout ms

Return:

  • uint8_t:
    • 1: Trigger Button release beyond timeout
    • 0: non-triggered

wasReleased

Syntax:

uint8_t wasReleased();

Description:

  • Determine if a Button is pressed and released.

Parameters:

  • null

Return:

  • uint8_t:
    • 1: Trigger button changes from pressed state to released state
    • 0: Untriggered Button changes from pressed to released state

wasReleasefor

Syntax:

uint8_t wasReleasefor(uint32_t ms);

Description:

  • Determine if a Button has been pressed for more than the specified timeout, and trigger when the Button is released.

Parameters:

  • uint32_t ms:
    • Button release timeout ms

Return:

  • uint8_t:
    • 1: Trigger Button release beyond timeout
    • 0: non-triggered
On This Page