Components and supplies
1
Buzzer
1
OLED SSD1306
1
Arduino Nano R3
Tools and machines
1
Arduino
Apps and platforms
1
Arduino IDE 2.0 (beta)
Project description
Code
Eggtimer
arduino
1// Mario's Ideas 2// Eggtimer created with Arduino and Millis 3#include <SPI.h> 4#include <Wire.h> 5#include <Adafruit_GFX.h> 6#include <Adafruit_SSD1306.h> 7 8#define SCREEN_WIDTH 128 // OLED display width, in pixels 9#define SCREEN_HEIGHT 32 // OLED display height, in pixels 10 11#define Buzzer 12 12 13int minutes_change=0; 14int minutes=0; 15int Current_Frame=1; 16 17// State values 0 - setup 1- countdown 18int State=0; 19long Timestamp_Button_Pressed; 20 21unsigned long Countdown_start; 22 23// Declaration for SSD1306 display connected using software SPI 24#define OLED_MOSI 5 25#define OLED_CLK 4 26#define OLED_DC 7 27#define OLED_CS 8 28#define OLED_RESET 6 29Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS); 30 31 32 33 34 35// 'Marios_ideas', 128x32px 36const unsigned char Logo [] PROGMEM = { 37 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 38 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 39 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 40 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 41 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 42 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 43 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 44 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 45 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 46 0x00, 0x03, 0xce, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x1c, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 47 0x00, 0x07, 0xff, 0x00, 0x00, 0x0c, 0x00, 0x0e, 0x00, 0x1c, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 48 0x00, 0x0f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1c, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 49 0x00, 0x0e, 0x73, 0x87, 0x81, 0xdc, 0x1e, 0x08, 0x0c, 0x1c, 0x7c, 0x8f, 0x0f, 0xc3, 0xfc, 0xff, 50 0x00, 0x0e, 0x73, 0x8f, 0xc3, 0xdc, 0x7f, 0x00, 0x1c, 0x1c, 0x78, 0x8e, 0x07, 0x81, 0xf8, 0xff, 51 0x00, 0x0e, 0x73, 0x9f, 0xe3, 0x9c, 0x7f, 0x00, 0x3c, 0x1c, 0x70, 0x8c, 0x03, 0x00, 0xf0, 0xff, 52 0x00, 0x0e, 0x73, 0x9c, 0x63, 0x1c, 0xe3, 0x80, 0x3c, 0x1c, 0x71, 0x8c, 0x63, 0x1c, 0xf0, 0xff, 53 0x00, 0x0e, 0x73, 0x98, 0x63, 0x1c, 0xe3, 0x80, 0x38, 0x1c, 0x73, 0x8c, 0xc3, 0x3c, 0xf3, 0xff, 54 0x00, 0x0e, 0x73, 0x9c, 0x63, 0x1c, 0xe3, 0x80, 0x38, 0x1c, 0x71, 0x8c, 0x7f, 0x1c, 0xf3, 0xff, 55 0x00, 0x0e, 0x73, 0x9f, 0x63, 0x1c, 0x7f, 0x00, 0xf8, 0x1c, 0x70, 0x1c, 0x3f, 0x0c, 0xc3, 0xff, 56 0x00, 0x0e, 0x73, 0x8f, 0x63, 0x1c, 0x7f, 0x00, 0xf0, 0x1c, 0x78, 0x1e, 0x1f, 0x8c, 0xc7, 0xff, 57 0x00, 0x0e, 0x73, 0x87, 0x63, 0x1c, 0x1c, 0x00, 0xe0, 0x1c, 0x7c, 0x7f, 0x0f, 0xcc, 0xcf, 0xff, 58 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 59 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 60 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 61 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 62 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 63 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 64 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 65 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 66 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 67 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 68 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 69}; 70 71// 'Marios_ideas', 128x32px 72const unsigned char Logo1 [] PROGMEM = { 73 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 74 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 75 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 76 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 77 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 78 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 79 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 80 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 81 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 82 0xff, 0xfc, 0x31, 0xff, 0xff, 0xe1, 0xff, 0xfb, 0xff, 0xe3, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 83 0xff, 0xf8, 0x00, 0xff, 0xff, 0xf3, 0xff, 0xf1, 0xff, 0xe3, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 84 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xe3, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 85 0xff, 0xf1, 0x8c, 0x78, 0x7e, 0x23, 0xe1, 0xf7, 0xf3, 0xe3, 0x83, 0x70, 0xf0, 0x3c, 0x03, 0x00, 86 0xff, 0xf1, 0x8c, 0x70, 0x3c, 0x23, 0x80, 0xff, 0xe3, 0xe3, 0x87, 0x71, 0xf8, 0x7e, 0x07, 0x00, 87 0xff, 0xf1, 0x8c, 0x60, 0x1c, 0x63, 0x80, 0xff, 0xc3, 0xe3, 0x8f, 0x73, 0xfc, 0xff, 0x0f, 0x00, 88 0xff, 0xf1, 0x8c, 0x63, 0x9c, 0xe3, 0x1c, 0x7f, 0xc3, 0xe3, 0x8e, 0x73, 0x9c, 0xe3, 0x0f, 0x00, 89 0xff, 0xf1, 0x8c, 0x67, 0x9c, 0xe3, 0x1c, 0x7f, 0xc7, 0xe3, 0x8c, 0x73, 0x3c, 0xc3, 0x0c, 0x00, 90 0xff, 0xf1, 0x8c, 0x63, 0x9c, 0xe3, 0x1c, 0x7f, 0xc7, 0xe3, 0x8e, 0x73, 0x80, 0xe3, 0x0c, 0x00, 91 0xff, 0xf1, 0x8c, 0x60, 0x9c, 0xe3, 0x80, 0xff, 0x07, 0xe3, 0x8f, 0xe3, 0xc0, 0xf3, 0x3c, 0x00, 92 0xff, 0xf1, 0x8c, 0x70, 0x9c, 0xe3, 0x80, 0xff, 0x0f, 0xe3, 0x87, 0xe1, 0xe0, 0x73, 0x38, 0x00, 93 0xff, 0xf1, 0x8c, 0x78, 0x9c, 0xe3, 0xe3, 0xff, 0x1f, 0xe3, 0x83, 0x80, 0xf0, 0x33, 0x30, 0x00, 94 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 95 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 96 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 97 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 98 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 99 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 100 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 101 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 102 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 103 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 104 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 105}; 106 107// 'Bell1', 58x32px 108const unsigned char Bell1 [] PROGMEM = { 109 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xc0, 110 0xff, 0xff, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x99, 0xff, 0xff, 0xff, 0xc0, 111 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xc0, 112 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0xc0, 113 0xff, 0xff, 0xf8, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xc0, 114 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xc0, 115 0xff, 0xff, 0xe0, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 116 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 117 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 118 0xff, 0xff, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xc0, 119 0xff, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0xc0, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 120 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 121 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 122 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 123 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xc0, 124 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0 125}; 126// 'Bell2', 58x32px 127const unsigned char Bell2 [] PROGMEM = { 128 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xc0, 129 0xff, 0xff, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x99, 0xff, 0xff, 0xff, 0xc0, 130 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xc0, 131 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0xc0, 132 0xff, 0xff, 0xf8, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xc0, 133 0xff, 0xfb, 0xf0, 0x00, 0x0f, 0xdf, 0xff, 0xc0, 0xff, 0xfb, 0xf0, 0x00, 0x0f, 0xdf, 0xff, 0xc0, 134 0xff, 0xf3, 0xe0, 0x00, 0x0f, 0xcf, 0xff, 0xc0, 0xff, 0xf3, 0xe0, 0x00, 0x07, 0xcf, 0xff, 0xc0, 135 0xff, 0xf3, 0xe0, 0x00, 0x07, 0xcf, 0xff, 0xc0, 0xff, 0xfb, 0xe0, 0x00, 0x07, 0xdf, 0xff, 0xc0, 136 0xff, 0xfb, 0xe0, 0x00, 0x07, 0xdf, 0xff, 0xc0, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 137 0xff, 0xff, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xc0, 138 0xff, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0xc0, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 139 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 140 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 141 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 142 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xc0, 143 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0 144}; 145// 'Bell3', 58x32px 146const unsigned char Bell3 [] PROGMEM = { 147 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xc0, 148 0xff, 0xff, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x99, 0xff, 0xff, 0xff, 0xc0, 149 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xc0, 150 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0xc0, 0xff, 0xdf, 0xf8, 0x00, 0x1f, 0xfb, 0xff, 0xc0, 151 0xff, 0x9f, 0xf8, 0x00, 0x0f, 0xf9, 0xff, 0xc0, 0xff, 0x1f, 0xf0, 0x00, 0x0f, 0xf8, 0xff, 0xc0, 152 0xfe, 0x3b, 0xf0, 0x00, 0x0f, 0xdc, 0x7f, 0xc0, 0xfe, 0x3b, 0xf0, 0x00, 0x0f, 0xdc, 0x7f, 0xc0, 153 0xfe, 0x73, 0xe0, 0x00, 0x0f, 0xce, 0x7f, 0xc0, 0xfe, 0x73, 0xe0, 0x00, 0x07, 0xce, 0x7f, 0xc0, 154 0xfe, 0x73, 0xe0, 0x00, 0x07, 0xce, 0x7f, 0xc0, 0xfe, 0x7b, 0xe0, 0x00, 0x07, 0xde, 0x7f, 0xc0, 155 0xfe, 0x3b, 0xe0, 0x00, 0x07, 0xdc, 0x7f, 0xc0, 0xff, 0x3f, 0xe0, 0x00, 0x07, 0xfc, 0xff, 0xc0, 156 0xff, 0x9f, 0xc0, 0x00, 0x03, 0xf9, 0xff, 0xc0, 0xff, 0x9f, 0xc0, 0x00, 0x03, 0xf9, 0xff, 0xc0, 157 0xff, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0xc0, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 158 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 159 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 160 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 161 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xc0, 162 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0 163}; 164// 'Bell4', 58x32px 165const unsigned char Bell4 [] PROGMEM = { 166 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xc0, 167 0xff, 0xff, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x99, 0xff, 0xff, 0xff, 0xc0, 168 0xfd, 0xff, 0xff, 0x00, 0xff, 0xff, 0xbf, 0xc0, 0xf8, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0x1f, 0xc0, 169 0xf1, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0x8f, 0xc0, 0xf3, 0xdf, 0xf8, 0x00, 0x1f, 0xfb, 0xcf, 0xc0, 170 0xe3, 0x9f, 0xf8, 0x00, 0x0f, 0xf9, 0xc7, 0xc0, 0xe7, 0x1f, 0xf0, 0x00, 0x0f, 0xf8, 0xe7, 0xc0, 171 0xc6, 0x3b, 0xf0, 0x00, 0x0f, 0xdc, 0x63, 0xc0, 0xc6, 0x3b, 0xf0, 0x00, 0x0f, 0xdc, 0x63, 0xc0, 172 0xc6, 0x73, 0xe0, 0x00, 0x0f, 0xce, 0x63, 0xc0, 0xc6, 0x73, 0xe0, 0x00, 0x07, 0xce, 0x63, 0xc0, 173 0xc6, 0x73, 0xe0, 0x00, 0x07, 0xce, 0x63, 0xc0, 0xc6, 0x7b, 0xe0, 0x00, 0x07, 0xde, 0x63, 0xc0, 174 0xc6, 0x3b, 0xe0, 0x00, 0x07, 0xdc, 0x63, 0xc0, 0xe7, 0x3f, 0xe0, 0x00, 0x07, 0xfc, 0xe7, 0xc0, 175 0xe3, 0x9f, 0xc0, 0x00, 0x03, 0xf9, 0xc7, 0xc0, 0xf3, 0x9f, 0xc0, 0x00, 0x03, 0xf9, 0xcf, 0xc0, 176 0xf1, 0xff, 0x80, 0x00, 0x01, 0xff, 0x8f, 0xc0, 0xf8, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0x1f, 0xc0, 177 0xfd, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xbf, 0xc0, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 178 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 179 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 180 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xc0, 181 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0 182}; 183 184void Press_A_Button(){ 185 if (millis() - Timestamp_Button_Pressed>200){ 186 if (State==0) minutes = minutes+1; 187 Timestamp_Button_Pressed=millis(); 188 } 189} 190 191void Press_B_Button(){ 192 if (millis() - Timestamp_Button_Pressed>200){ 193 if (State==0){ 194 Countdown_start=millis(); 195 State=1; 196 } 197 else{ 198 State=0; 199 minutes =0; 200 } 201 } 202} 203 204void setup() { 205 attachInterrupt(digitalPinToInterrupt(2), Press_A_Button,RISING); 206 attachInterrupt(digitalPinToInterrupt(3), Press_B_Button,RISING); 207 208 Timestamp_Button_Pressed=millis(); 209 210 pinMode(Buzzer, OUTPUT); 211 digitalWrite(Buzzer,LOW); 212 213 // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally 214 if(!display.begin(SSD1306_SWITCHCAPVCC)) { 215 Serial.println(F("SSD1306 allocation failed")); 216 for(;;); // Don't proceed, loop forever 217 } 218 Serial.begin(9600); 219 // Show initial display buffer contents on the screen -- 220 // the library initializes this with an Adafruit splash screen. 221 display.display(); 222 delay(2000); // Pause for 2 seconds 223 224 // Displaying My Channel Logo 225 // Displaying 4x Positive and Negative of the Channel Logo in sequence 226 227 for (int i=1 ; i<5; i++){ 228 display.clearDisplay(); 229 display.drawBitmap(0,0,Logo, 128, 32, 1); 230 display.display(); 231 delay(500); 232 display.clearDisplay(); 233 display.drawBitmap(0,0,Logo1, 128, 32, 1); 234 display.display(); 235 delay(500); 236 } 237 display.clearDisplay(); 238 display.setTextSize(2); 239 display.setCursor(5,0); 240 display.setTextColor(SSD1306_WHITE); 241 display.println((String)minutes+" min"); 242 display.display(); 243} 244 245void Ring_Bell(int Frame){ 246 display.clearDisplay(); 247 display.fillRect(0, 0, 30, 32, SSD1306_WHITE); 248 display.fillRect(88, 0, 30, 32, SSD1306_WHITE); 249 if (Frame==1)display.drawBitmap(30,0,Bell1, 58, 32, 1); 250 if (Frame==2)display.drawBitmap(30,0,Bell2, 58, 32, 1); 251 if (Frame==3)display.drawBitmap(30,0,Bell3, 58, 32, 1); 252 if (Frame==4)display.drawBitmap(30,0,Bell4, 58, 32, 1); 253 display.display(); 254 if (Frame>1){ 255 delay(200); 256 digitalWrite(Buzzer,HIGH); 257 } 258 else { 259 digitalWrite(Buzzer,LOW); 260 delay(1000); 261 } 262} 263 264String TimeLeft(unsigned long MsLeft){ 265 String Result; 266 int M; 267 int S; 268 M=(long)MsLeft/60000; 269 Serial.print(MsLeft); 270 Serial.print(";"); 271 Serial.println(M); 272 if (M<10) Result=(String)"0"+ M + ":";else Result=(String)M+":"; 273 S=(long)((MsLeft-M*60000)/1000); 274 if (S<10) Result=(String)Result + "0"+ S ;else Result=(String)Result +S; 275 return Result; 276 277} 278 279void loop() { 280 281 if (State==0 ){ 282 digitalWrite(Buzzer,LOW); 283 display.clearDisplay(); 284 display.setTextSize(2); 285 display.setCursor(5,0); 286 display.setTextColor(SSD1306_WHITE); 287 display.println((String)minutes+" min"); 288 display.display(); 289 } 290 if(State==1){ 291 if(minutes*60000 >(millis()-Countdown_start)){ 292 display.clearDisplay(); 293 display.setCursor(5,0); 294 display.setTextSize(4); 295 display.setTextColor(SSD1306_WHITE); 296 display.println(TimeLeft((minutes*60000-(millis()-Countdown_start)))); 297 display.display(); 298 } 299 else { 300 Ring_Bell(Current_Frame); 301 Current_Frame=Current_Frame+1; 302 if (Current_Frame==5) Current_Frame=1; 303 } 304 } 305}
Eggtimer
arduino
1// Mario's Ideas 2// Eggtimer created with Arduino and Millis 3#include <SPI.h> 4#include <Wire.h> 5#include <Adafruit_GFX.h> 6#include <Adafruit_SSD1306.h> 7 8#define SCREEN_WIDTH 128 // OLED display width, in pixels 9#define SCREEN_HEIGHT 32 // OLED display height, in pixels 10 11#define Buzzer 12 12 13int minutes_change=0; 14int minutes=0; 15int Current_Frame=1; 16 17// State values 0 - setup 1- countdown 18int State=0; 19long Timestamp_Button_Pressed; 20 21unsigned long Countdown_start; 22 23// Declaration for SSD1306 display connected using software SPI 24#define OLED_MOSI 5 25#define OLED_CLK 4 26#define OLED_DC 7 27#define OLED_CS 8 28#define OLED_RESET 6 29Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS); 30 31 32 33 34 35// 'Marios_ideas', 128x32px 36const unsigned char Logo [] PROGMEM = { 37 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 38 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 39 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 40 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 41 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 42 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 43 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 44 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 45 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 46 0x00, 0x03, 0xce, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x1c, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 47 0x00, 0x07, 0xff, 0x00, 0x00, 0x0c, 0x00, 0x0e, 0x00, 0x1c, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 48 0x00, 0x0f, 0xff, 0x80, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1c, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 49 0x00, 0x0e, 0x73, 0x87, 0x81, 0xdc, 0x1e, 0x08, 0x0c, 0x1c, 0x7c, 0x8f, 0x0f, 0xc3, 0xfc, 0xff, 50 0x00, 0x0e, 0x73, 0x8f, 0xc3, 0xdc, 0x7f, 0x00, 0x1c, 0x1c, 0x78, 0x8e, 0x07, 0x81, 0xf8, 0xff, 51 0x00, 0x0e, 0x73, 0x9f, 0xe3, 0x9c, 0x7f, 0x00, 0x3c, 0x1c, 0x70, 0x8c, 0x03, 0x00, 0xf0, 0xff, 52 0x00, 0x0e, 0x73, 0x9c, 0x63, 0x1c, 0xe3, 0x80, 0x3c, 0x1c, 0x71, 0x8c, 0x63, 0x1c, 0xf0, 0xff, 53 0x00, 0x0e, 0x73, 0x98, 0x63, 0x1c, 0xe3, 0x80, 0x38, 0x1c, 0x73, 0x8c, 0xc3, 0x3c, 0xf3, 0xff, 54 0x00, 0x0e, 0x73, 0x9c, 0x63, 0x1c, 0xe3, 0x80, 0x38, 0x1c, 0x71, 0x8c, 0x7f, 0x1c, 0xf3, 0xff, 55 0x00, 0x0e, 0x73, 0x9f, 0x63, 0x1c, 0x7f, 0x00, 0xf8, 0x1c, 0x70, 0x1c, 0x3f, 0x0c, 0xc3, 0xff, 56 0x00, 0x0e, 0x73, 0x8f, 0x63, 0x1c, 0x7f, 0x00, 0xf0, 0x1c, 0x78, 0x1e, 0x1f, 0x8c, 0xc7, 0xff, 57 0x00, 0x0e, 0x73, 0x87, 0x63, 0x1c, 0x1c, 0x00, 0xe0, 0x1c, 0x7c, 0x7f, 0x0f, 0xcc, 0xcf, 0xff, 58 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 59 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 60 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 61 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 62 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 63 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 64 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 65 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 66 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 67 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 68 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 69}; 70 71// 'Marios_ideas', 128x32px 72const unsigned char Logo1 [] PROGMEM = { 73 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 74 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 75 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 76 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 77 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 78 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 79 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 80 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 81 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 82 0xff, 0xfc, 0x31, 0xff, 0xff, 0xe1, 0xff, 0xfb, 0xff, 0xe3, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 83 0xff, 0xf8, 0x00, 0xff, 0xff, 0xf3, 0xff, 0xf1, 0xff, 0xe3, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 84 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xe3, 0x80, 0x70, 0x00, 0x00, 0x00, 0x00, 85 0xff, 0xf1, 0x8c, 0x78, 0x7e, 0x23, 0xe1, 0xf7, 0xf3, 0xe3, 0x83, 0x70, 0xf0, 0x3c, 0x03, 0x00, 86 0xff, 0xf1, 0x8c, 0x70, 0x3c, 0x23, 0x80, 0xff, 0xe3, 0xe3, 0x87, 0x71, 0xf8, 0x7e, 0x07, 0x00, 87 0xff, 0xf1, 0x8c, 0x60, 0x1c, 0x63, 0x80, 0xff, 0xc3, 0xe3, 0x8f, 0x73, 0xfc, 0xff, 0x0f, 0x00, 88 0xff, 0xf1, 0x8c, 0x63, 0x9c, 0xe3, 0x1c, 0x7f, 0xc3, 0xe3, 0x8e, 0x73, 0x9c, 0xe3, 0x0f, 0x00, 89 0xff, 0xf1, 0x8c, 0x67, 0x9c, 0xe3, 0x1c, 0x7f, 0xc7, 0xe3, 0x8c, 0x73, 0x3c, 0xc3, 0x0c, 0x00, 90 0xff, 0xf1, 0x8c, 0x63, 0x9c, 0xe3, 0x1c, 0x7f, 0xc7, 0xe3, 0x8e, 0x73, 0x80, 0xe3, 0x0c, 0x00, 91 0xff, 0xf1, 0x8c, 0x60, 0x9c, 0xe3, 0x80, 0xff, 0x07, 0xe3, 0x8f, 0xe3, 0xc0, 0xf3, 0x3c, 0x00, 92 0xff, 0xf1, 0x8c, 0x70, 0x9c, 0xe3, 0x80, 0xff, 0x0f, 0xe3, 0x87, 0xe1, 0xe0, 0x73, 0x38, 0x00, 93 0xff, 0xf1, 0x8c, 0x78, 0x9c, 0xe3, 0xe3, 0xff, 0x1f, 0xe3, 0x83, 0x80, 0xf0, 0x33, 0x30, 0x00, 94 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 95 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 96 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 97 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 98 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 99 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 100 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 101 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 102 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 103 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 104 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 105}; 106 107// 'Bell1', 58x32px 108const unsigned char Bell1 [] PROGMEM = { 109 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xc0, 110 0xff, 0xff, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x99, 0xff, 0xff, 0xff, 0xc0, 111 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xc0, 112 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0xc0, 113 0xff, 0xff, 0xf8, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xc0, 114 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xc0, 115 0xff, 0xff, 0xe0, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 116 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 117 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 118 0xff, 0xff, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xc0, 119 0xff, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0xc0, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 120 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 121 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 122 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 123 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xc0, 124 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0 125}; 126// 'Bell2', 58x32px 127const unsigned char Bell2 [] PROGMEM = { 128 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xc0, 129 0xff, 0xff, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x99, 0xff, 0xff, 0xff, 0xc0, 130 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xc0, 131 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0xc0, 132 0xff, 0xff, 0xf8, 0x00, 0x0f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xf0, 0x00, 0x0f, 0xff, 0xff, 0xc0, 133 0xff, 0xfb, 0xf0, 0x00, 0x0f, 0xdf, 0xff, 0xc0, 0xff, 0xfb, 0xf0, 0x00, 0x0f, 0xdf, 0xff, 0xc0, 134 0xff, 0xf3, 0xe0, 0x00, 0x0f, 0xcf, 0xff, 0xc0, 0xff, 0xf3, 0xe0, 0x00, 0x07, 0xcf, 0xff, 0xc0, 135 0xff, 0xf3, 0xe0, 0x00, 0x07, 0xcf, 0xff, 0xc0, 0xff, 0xfb, 0xe0, 0x00, 0x07, 0xdf, 0xff, 0xc0, 136 0xff, 0xfb, 0xe0, 0x00, 0x07, 0xdf, 0xff, 0xc0, 0xff, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xc0, 137 0xff, 0xff, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xc0, 138 0xff, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0xc0, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 139 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 140 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 141 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 142 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xc0, 143 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0 144}; 145// 'Bell3', 58x32px 146const unsigned char Bell3 [] PROGMEM = { 147 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xc0, 148 0xff, 0xff, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x99, 0xff, 0xff, 0xff, 0xc0, 149 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xc0, 150 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0xff, 0xc0, 0xff, 0xdf, 0xf8, 0x00, 0x1f, 0xfb, 0xff, 0xc0, 151 0xff, 0x9f, 0xf8, 0x00, 0x0f, 0xf9, 0xff, 0xc0, 0xff, 0x1f, 0xf0, 0x00, 0x0f, 0xf8, 0xff, 0xc0, 152 0xfe, 0x3b, 0xf0, 0x00, 0x0f, 0xdc, 0x7f, 0xc0, 0xfe, 0x3b, 0xf0, 0x00, 0x0f, 0xdc, 0x7f, 0xc0, 153 0xfe, 0x73, 0xe0, 0x00, 0x0f, 0xce, 0x7f, 0xc0, 0xfe, 0x73, 0xe0, 0x00, 0x07, 0xce, 0x7f, 0xc0, 154 0xfe, 0x73, 0xe0, 0x00, 0x07, 0xce, 0x7f, 0xc0, 0xfe, 0x7b, 0xe0, 0x00, 0x07, 0xde, 0x7f, 0xc0, 155 0xfe, 0x3b, 0xe0, 0x00, 0x07, 0xdc, 0x7f, 0xc0, 0xff, 0x3f, 0xe0, 0x00, 0x07, 0xfc, 0xff, 0xc0, 156 0xff, 0x9f, 0xc0, 0x00, 0x03, 0xf9, 0xff, 0xc0, 0xff, 0x9f, 0xc0, 0x00, 0x03, 0xf9, 0xff, 0xc0, 157 0xff, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff, 0xc0, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 158 0xff, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 159 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 160 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 161 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xc0, 162 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0 163}; 164// 'Bell4', 58x32px 165const unsigned char Bell4 [] PROGMEM = { 166 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xc0, 167 0xff, 0xff, 0xff, 0xdb, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x99, 0xff, 0xff, 0xff, 0xc0, 168 0xfd, 0xff, 0xff, 0x00, 0xff, 0xff, 0xbf, 0xc0, 0xf8, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0x1f, 0xc0, 169 0xf1, 0xff, 0xf8, 0x00, 0x1f, 0xff, 0x8f, 0xc0, 0xf3, 0xdf, 0xf8, 0x00, 0x1f, 0xfb, 0xcf, 0xc0, 170 0xe3, 0x9f, 0xf8, 0x00, 0x0f, 0xf9, 0xc7, 0xc0, 0xe7, 0x1f, 0xf0, 0x00, 0x0f, 0xf8, 0xe7, 0xc0, 171 0xc6, 0x3b, 0xf0, 0x00, 0x0f, 0xdc, 0x63, 0xc0, 0xc6, 0x3b, 0xf0, 0x00, 0x0f, 0xdc, 0x63, 0xc0, 172 0xc6, 0x73, 0xe0, 0x00, 0x0f, 0xce, 0x63, 0xc0, 0xc6, 0x73, 0xe0, 0x00, 0x07, 0xce, 0x63, 0xc0, 173 0xc6, 0x73, 0xe0, 0x00, 0x07, 0xce, 0x63, 0xc0, 0xc6, 0x7b, 0xe0, 0x00, 0x07, 0xde, 0x63, 0xc0, 174 0xc6, 0x3b, 0xe0, 0x00, 0x07, 0xdc, 0x63, 0xc0, 0xe7, 0x3f, 0xe0, 0x00, 0x07, 0xfc, 0xe7, 0xc0, 175 0xe3, 0x9f, 0xc0, 0x00, 0x03, 0xf9, 0xc7, 0xc0, 0xf3, 0x9f, 0xc0, 0x00, 0x03, 0xf9, 0xcf, 0xc0, 176 0xf1, 0xff, 0x80, 0x00, 0x01, 0xff, 0x8f, 0xc0, 0xf8, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0x1f, 0xc0, 177 0xfd, 0xfe, 0x00, 0x00, 0x00, 0x7f, 0xbf, 0xc0, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 178 0xff, 0xfc, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 179 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 180 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0x81, 0xff, 0xff, 0xff, 0xc0, 181 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0 182}; 183 184void Press_A_Button(){ 185 if (millis() - Timestamp_Button_Pressed>200){ 186 if (State==0) minutes = minutes+1; 187 Timestamp_Button_Pressed=millis(); 188 } 189} 190 191void Press_B_Button(){ 192 if (millis() - Timestamp_Button_Pressed>200){ 193 if (State==0){ 194 Countdown_start=millis(); 195 State=1; 196 } 197 else{ 198 State=0; 199 minutes =0; 200 } 201 } 202} 203 204void setup() { 205 attachInterrupt(digitalPinToInterrupt(2), Press_A_Button,RISING); 206 attachInterrupt(digitalPinToInterrupt(3), Press_B_Button,RISING); 207 208 Timestamp_Button_Pressed=millis(); 209 210 pinMode(Buzzer, OUTPUT); 211 digitalWrite(Buzzer,LOW); 212 213 // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally 214 if(!display.begin(SSD1306_SWITCHCAPVCC)) { 215 Serial.println(F("SSD1306 allocation failed")); 216 for(;;); // Don't proceed, loop forever 217 } 218 Serial.begin(9600); 219 // Show initial display buffer contents on the screen -- 220 // the library initializes this with an Adafruit splash screen. 221 display.display(); 222 delay(2000); // Pause for 2 seconds 223 224 // Displaying My Channel Logo 225 // Displaying 4x Positive and Negative of the Channel Logo in sequence 226 227 for (int i=1 ; i<5; i++){ 228 display.clearDisplay(); 229 display.drawBitmap(0,0,Logo, 128, 32, 1); 230 display.display(); 231 delay(500); 232 display.clearDisplay(); 233 display.drawBitmap(0,0,Logo1, 128, 32, 1); 234 display.display(); 235 delay(500); 236 } 237 display.clearDisplay(); 238 display.setTextSize(2); 239 display.setCursor(5,0); 240 display.setTextColor(SSD1306_WHITE); 241 display.println((String)minutes+" min"); 242 display.display(); 243} 244 245void Ring_Bell(int Frame){ 246 display.clearDisplay(); 247 display.fillRect(0, 0, 30, 32, SSD1306_WHITE); 248 display.fillRect(88, 0, 30, 32, SSD1306_WHITE); 249 if (Frame==1)display.drawBitmap(30,0,Bell1, 58, 32, 1); 250 if (Frame==2)display.drawBitmap(30,0,Bell2, 58, 32, 1); 251 if (Frame==3)display.drawBitmap(30,0,Bell3, 58, 32, 1); 252 if (Frame==4)display.drawBitmap(30,0,Bell4, 58, 32, 1); 253 display.display(); 254 if (Frame>1){ 255 delay(200); 256 digitalWrite(Buzzer,HIGH); 257 } 258 else { 259 digitalWrite(Buzzer,LOW); 260 delay(1000); 261 } 262} 263 264String TimeLeft(unsigned long MsLeft){ 265 String Result; 266 int M; 267 int S; 268 M=(long)MsLeft/60000; 269 Serial.print(MsLeft); 270 Serial.print(";"); 271 Serial.println(M); 272 if (M<10) Result=(String)"0"+ M + ":";else Result=(String)M+":"; 273 S=(long)((MsLeft-M*60000)/1000); 274 if (S<10) Result=(String)Result + "0"+ S ;else Result=(String)Result +S; 275 return Result; 276 277} 278 279void loop() { 280 281 if (State==0 ){ 282 digitalWrite(Buzzer,LOW); 283 display.clearDisplay(); 284 display.setTextSize(2); 285 display.setCursor(5,0); 286 display.setTextColor(SSD1306_WHITE); 287 display.println((String)minutes+" min"); 288 display.display(); 289 } 290 if(State==1){ 291 if(minutes*60000 >(millis()-Countdown_start)){ 292 display.clearDisplay(); 293 display.setCursor(5,0); 294 display.setTextSize(4); 295 display.setTextColor(SSD1306_WHITE); 296 display.println(TimeLeft((minutes*60000-(millis()-Countdown_start)))); 297 display.display(); 298 } 299 else { 300 Ring_Bell(Current_Frame); 301 Current_Frame=Current_Frame+1; 302 if (Current_Frame==5) Current_Frame=1; 303 } 304 } 305}
Downloadable files
Schematics
Schematics

Comments
Only logged in users can leave comments