NeoSteamLabs
Published © CC BY

Project #11: ESP32 Feather - Push Button - Mk02

ESP32 Feather Display Push Button

BeginnerProtip30 minutes250
Project #11: ESP32 Feather - Push Button - Mk02

Things used in this project

Hardware components

Adafruit HUZZAH32 ESP32 Feather
×1
Adafruit SHARP Memory Display
×1
5 mm LED: Green
5 mm LED: Green
×1
Resistor 100 ohm
Resistor 100 ohm
×1
Resistor 10k ohm
Resistor 10k ohm
×1
Adafruit Jumper Wires 3" M/M
×12
Solderless Breadboard Full Size
Solderless Breadboard Full Size
×1
SparkFun Cerberus USB Cable - 6ft
SparkFun Cerberus USB Cable - 6ft
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Fritzing

Code

DL1908Mk02p.ino

Arduino
// ***** Don Luc Electronics © *****
// Software Version Information
// Project #11: HUZZAH32 ESP32 Feather - Push Button - Mk02
// 08-02
// DL1908Mk02p.ino 11-02
// Adafruit HUZZAH32 ESP32 Feather Board
// SHARP Display
// LED Green
// Push Button

// include Library Code
#include <Adafruit_SharpMem.h>
#include <Adafruit_GFX.h>

// SHARP Memory Display
// any pins can be used
#define SHARP_SCK  13
#define SHARP_MOSI 12
#define SHARP_SS   27
// Set the size of the display here, e.g. 144x168!
Adafruit_SharpMem display(SHARP_SCK, SHARP_MOSI, SHARP_SS, 144, 168);
// The currently-available SHARP Memory Display (144x168 pixels)
// requires > 4K of microcontroller RAM; it WILL NOT WORK on Arduino Uno
// or other <4K "classic" devices!
#define BLACK 0
#define WHITE 1
int minorHalfSize; // 1/2 of lesser of display width or height

// LED Green
int iLEDGreen =  21;                 // LED Green
int stateLEDGreen = LOW;             // stateLEDGreen 

// Button
int iBut1 = 17;                      // Button 1
int ButState1;                       // Variable for reading the button status
int previous = LOW;                  // previous
long lTime = 0;                      // lTime
long debounce = 500;                 // debounce

void loop() {
  
  // Read the state of the button value
  ButState1 = digitalRead(iBut1);
  
  // Check if the button is pressed
  if (ButState1 == HIGH && previous == LOW && millis() - lTime > debounce) 
  {

     if(stateLEDGreen == HIGH)
     {
      
        // stateLEDGreen = LOW
        stateLEDGreen = LOW;
        // SHARP Memory Display Off
        isDisplayOff();
             
     } else 
     {

        // stateLEDGreen = HIGH
        stateLEDGreen = HIGH; 
        // SHARP Memory Display On
        isDisplayOn();
            
    }
    lTime = millis();

  } 

  // iLEDGreen
  digitalWrite(iLEDGreen, stateLEDGreen);
  previous == ButState1;  
 
}

getDisplay.ino

Arduino
// Display
// SHARP Memory Display On
void isDisplayOn() {

    // Clear Display
    display.clearDisplay();
    // text display tests
    display.setRotation(4);
    //display.clearDisplay();
    display.setTextSize(5);
    display.setTextColor(BLACK);
    display.setCursor(10,25);
    display.println("LED");
    display.setCursor(10,75);
    display.println("On");
    display.refresh();

}
// SHARP Memory Display Off
void isDisplayOff() {

    // Clear Display
    display.clearDisplay();
    // text display tests
    display.setRotation(4);
    //display.clearDisplay();
    display.setTextSize(5);
    display.setTextColor(BLACK);
    display.setCursor(10,25);
    display.println("LED");
    display.setCursor(10,75);
    display.println("Off");
    display.refresh();

}

setup.ino

Arduino
// Setup
void setup() {

  // SHARP Display start & clear the display
  display.begin();
  display.clearDisplay();

  // Button 1
  // Initialize the button as an input
  pinMode(iBut1, INPUT);
  
  // Initialize the LED Green
  pinMode(iLEDGreen, OUTPUT);
    
}

Credits

NeoSteamLabs

NeoSteamLabs

29 projects • 4 followers
IT consultant with over 36 years of experience Instructor: Arduino, Raspberry Pi, Espressif, Robotics, Unmanned Vehicles, etc...

Comments