pdf-icon

Arduino Quick Start

Paper 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

cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#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
Example
read
lastChange
isPressed
wasPressed
pressedFor
isReleased
releasedFor
wasReleased
wasReleasefor
Q&A
Submit a question
Select question category*
Arduino
MicroPython
UIFlow1
UIFlow2
EzData
M5Burner
Software
Hardware
Other
Product name
Product version
Question description*
(Supports pasting screenshots.)
Attachments
Add Files
Email*
Submit
OK

M5Stack Support

Hi, this is M5Stack Support. How can I help you today?