Hackster is hosting Impact Spotlights: Industrial Automation. Watch the stream live on Thursday!Hackster is hosting Impact Spotlights: Industrial Automation. Stream on Thursday!
Luc Paquin
Published © CC BY

Patreon: Intermediate

Patreon: Intermediate

BeginnerFull instructions provided1 hour30
Patreon: Intermediate

Things used in this project

Hardware components

DFRobot FireBeetle 2 ESP32-E
×1
Elecrow Crowtail- Rotary Angle Sensor 2.0 - 10K Ohm
×1
Elecrow Crowtail- OLED
×1
Elecrow Crowtail- LED 2.0 - Yellow
×1
Elecrow Crowtail- LED 2.0 - Green
×1
SparkFun Lithium Ion Battery - 1000mAh
×1
Slide Switch
Slide Switch
×1
SparkFun USB 3.1 Cable A to C
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

Fritzing

Code

DL2412Mk02p.ino

Arduino
/****** Don Luc Electronics © ******
Software Version Information
Patreon: Intermediate
Intermediate
DL2412Mk02p.ino
DL2412Mk02
1 x DFRobot FireBeetle 2 ESP32-E
1 x Crowtail- Rotary Angle Sensor 2.0 - 10K Ohm
1 x Crowtail- OLED
1 x Crowtail- LED 2.0 - Yellow
1 x Crowtail- LED 2.0 - Green
1 x Lithium Ion Battery - 1000mAh
1 x Switch
1 x USB 3.1 Cable A to C
*/

// Include the Library Code
// Arduino
#include <Arduino.h>
// Crowtail- OLED
#include <U8x8lib.h>
// SPI
#include <SPI.h>

// Crowtail- OLED
// U8x8 Contructor List 
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);

// Potentiometer
int iPot = A0;
int iPotVal = 0;
// Change Your Threshold Here
int Threshold = 2000;

// LED Yellow
int iLEDY = 17;

// LED Green
int iLEDG = 16;

// Software Version Information
String sver = "Intermediate";

void loop() {

  // Potentiometer
  isPotentiometer();

  // Delay 0.5 Second
  delay( 500 );

}

getDisplay.ino

Arduino
// getDisplay
// Crowbits-OLED 128X64 UID
void isDisplayUID(){

  // Clear
  u8x8.clear();
  // Font
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  // Draw
  u8x8.drawString(0,0,"Don Luc Electron");
  // Draw
  u8x8.drawString(0,35,"Intermediate");

}
// isDisplay Green
void isDisplayG(){

  // Clear
  u8x8.clear();
  // Font
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  // Cursor
  u8x8.setCursor(0,0);
  // Print
  u8x8.print("Don Luc Electron");
  // Cursor
  u8x8.setCursor(0,30);
  // Print
  u8x8.print("LED Green");
  // Cursor
  u8x8.setCursor(0,35);
  // Print
  u8x8.print(iPotVal);
  
}
// isDisplay Yellow
void isDisplayY(){

  // Clear
  u8x8.clear();
  // Font
  u8x8.setFont(u8x8_font_chroma48medium8_r);
  // Cursor
  u8x8.setCursor(0,0);
  // Print
  u8x8.print("Don Luc Electron");
  // Cursor
  u8x8.setCursor(0,30);
  // Print
  u8x8.print("LED Yellow");
  // Cursor
  u8x8.setCursor(0,35);
  // Print
  u8x8.print(iPotVal);

}

getPotentiometer.ino

Arduino
// Potentiometer
// Potentiometer
void isPotentiometer(){

  // Connect Potentiometer to Analog 0
  iPotVal = analogRead( iPot );

  // Threshold
  if (iPotVal > Threshold) {

    // LED Yellow
    digitalWrite(iLEDY, LOW);
    // isDisplay Green
    isDisplayG();
    // LED Green
    digitalWrite(iLEDG, HIGH);
    
  }
  else {
    
    // LED Green
    digitalWrite(iLEDG, LOW);
    // isDisplay Yellow
    isDisplayY();
    // LED Yellow
    digitalWrite(iLEDY, HIGH);
    
  }

}

setup.ino

Arduino
// Setup
void setup()
{
 
  // Delay
  delay(100);

  // Crowtail- OLED
  u8x8.begin();
  u8x8.setPowerSave(0);

  // Delay
  delay(100);

  // Initialize the LED Yellow
  pinMode(iLEDY, OUTPUT);

  // Initialize the LED Green
  pinMode(iLEDG, OUTPUT);

  // Crowbits-OLED 128X64
  // Don Luc Electronics
  // Version
  isDisplayUID();

  // Delay 5 Second
  delay( 5000 );

}

Credits

Luc Paquin
31 projects • 3 followers
Teacher, Instructor, E-Mentor, R&D and Consulting -Programming Language -Microcontrollers -IoT -Robotics -Machine Learning -AI -Sensors
Contact

Comments

Please log in or sign up to comment.