// simple project using Arduino UNO and Matrix LED Display MAX7219 with u8g2 library
// to create a counter for example for counting youtube subscribers
// created by upir, 2023
// youtube channel: https://www.youtube.com/upir_upir
// YOUTUBE VIDEO: https://youtu.be/jlhcDzS17vU
// links from the video:
// LED Matrix display: https://s.click.aliexpress.com/e/_DlnFAYz
// Arduino UNO: https://s.click.aliexpress.com/e/_AXDw1h
// Arduino UNO MINI: https://store.arduino.cc/products/uno-mini-le
// Arduino breadboard prototyping shield: https://s.click.aliexpress.com/e/_ApbCwx
// Photopea (online Photoshop-like tool): https://www.photopea.com/
// image2cpp (convert images into C code): https://javl.github.io/image2cpp/
// Starting sketch: https://github.com/olikraus/u8g2/blob/master/sys/arduino/u8g2_full_buffer/MAX7219_U8g2/MAX7219_U8g2.ino
// WOKWI display documentation: https://docs.wokwi.com/parts/wokwi-max7219-matrix
// U8g2 + Matrix display screenshot: https://github.com/olikraus/u8g2/wiki/gallery#28-may-2017-max7219-32x8-led-matrix
// U8g2 fonts: https://github.com/olikraus/u8g2/wiki/fntlist8#7-pixel-height
// Desmos online graphs: https://www.desmos.com/calculator?lang=en
// LCD Image converter: https://lcd-image-converter.riuson.com/en/about/
// Related videos with similar dot matrix displays:
// 51 years old display! - https://youtu.be/PBaL9w5w-2c
// 1 DISPLAY 3 SENSORS - https://youtu.be/lj_7UmM0EPY
// DIY Battery Indicator - https://youtu.be/Mq0WBPKGRew
// Smooth Arduino 16x2 Gauge - https://youtu.be/cx9CoGqpsfg
// Arduino Gauge in 11 Minutes - https://youtu.be/upE17NHrdPc
#include <Arduino.h>
#include <U8g2lib.h>
U8G2_MAX7219_64X8_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 11, /* data=*/ 12, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ U8X8_PIN_NONE);
int i = 1;
void setup(void) {
u8g2.begin(); // begin function is required for u8g2 library
u8g2.setContrast(10*16); // set display contrast 0-255
pinMode(7, INPUT_PULLUP);
}
void loop(void) {
u8g2.clearBuffer(); // clear the internal u8g2 memory
// u8g2.setFont(u8g2_font_minuteconsole_tr); // choose a suitable font with digits 3px wide
u8g2.setFont(u8g2_font_t0_12b_te); // choose a suitable font with digits 3px wide
//u8g2.drawBitmap(0, 0, 8/8, 7, youtube_logo_bitmap); // draw youtube logo on top left corner
if(i == 1){
u8g2.drawStr(0, 8, "12");
u8g2.drawStr(11, 6, ":");
u8g2.drawStr(17, 8, "12");
// u8g2.setFont(u8g2_font_t0_11_tr); //best large
// u8g2.setFont(u8g2_font_04b_03b_tr);
// u8g2.setFont(u8g2_font_tiny5_tr);
// u8g2.setFont(u8g2_font_torussansbold8_8r);
// u8g2.setFont(u8g2_font_micro_tr); //the best
// u8g2.setFont(u8g2_font_squeezed_r6_tr); //second best
u8g2.drawStr(29, 6, "am pm");
// u8g2.drawStr(31, 7, "a");
// u8g2.drawStr(36, 7, "m");
// u8g2.drawStr(42, 6, "p");
// u8g2.drawStr(47, 6, "m");
u8g2.sendBuffer(); // transfer internal memory to the display
}
i = 0;
// u8g2.drawStr(0, 7, "12345678910");
}