#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void drawCoffeeCup(){
display.clearDisplay();
int startX = 50;
int startY = 10;
int cupWidth = 20;
int cupHeight = 20;
int rad = cupWidth/4;
int plateWidth = cupWidth+6;
int plateHeight = 2;
display.fillRect(startX, startY, cupWidth, cupHeight, WHITE);
display.drawCircleHelper(startX+cupWidth, startY+rad, rad, B0110, WHITE); // draw cup handle
display.fillRect(startX-3, startY+cupHeight+2, plateWidth, plateHeight, WHITE);
// text
display.setFont();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(startX-30, startY+cupHeight+2+plateHeight+5);
display.print("Take A Break!");
display.display();
}
const int LEDPIN = 19;
const int PushButton=15;
void setup() {
Serial.begin(9600);
pinMode(LEDPIN, OUTPUT);
pinMode(PushButton, INPUT);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
}
void loop() {
int Push_button_state = digitalRead(PushButton);
if ( Push_button_state == HIGH )
{
digitalWrite(LEDPIN, HIGH);
drawCoffeeCup();
}
else
{
digitalWrite(LEDPIN, LOW);
display.clearDisplay();
display.display();
}
}