Ook altijd naar opzoek geweest ? In deze kleine Demo zie je een overzicht van alle Lettertypes die in de AdaFruit GFX library zitten !
Het Overzicht van de gebruikte lettertypes, boven de 24 pt zijn niet gebruikt daar deze te groot zijn voor deze display.
#include <Fonts/kongtext4pt7b.h>
#include <Fonts/Picopixel.h>
#include <Fonts/TomThumb.h>
#include <FreeMono12pt7b.h>
#include <FreeSansBoldOblique12pt7b.h>
#include <FreeMono18pt7b.h>
#include <FreeSansBoldOblique18pt7b.h>
#include <FreeMono9pt7b.h>
#include <FreeSansBoldOblique9pt7b.h>
#include <FreeMonoBold12pt7b.h>
#include <FreeSansOblique12pt7b.h>
#include <FreeMonoBold18pt7b.h>
#include <FreeSansOblique18pt7b.h>
#include <FreeMonoBold9pt7b.h>
#include <FreeSansOblique9pt7b.h>
#include <FreeMonoBoldOblique12pt7b.h>
#include <FreeSerif12pt7b.h>
#include <FreeMonoBoldOblique18pt7b.h>
#include <FreeSerif18pt7b.h>
#include <FreeMonoBoldOblique9pt7b.h>
#include <FreeSerif9pt7b.h>
#include <FreeMonoOblique12pt7b.h>
#include <FreeSerifBold12pt7b.h>
#include <FreeMonoOblique18pt7b.h>
#include <FreeSerifBold18pt7b.h>
#include <FreeMonoOblique9pt7b.h>
#include <FreeSerifBold9pt7b.h>
#include <FreeSans12pt7b.h>
#include <FreeSerifBoldItalic12pt7b.h>
#include <FreeSans18pt7b.h>
#include <FreeSerifBoldItalic18pt7b.h>
#include <FreeSans9pt7b.h>
#include <FreeSerifBoldItalic9pt7b.h>
#include <FreeSansBold12pt7b.h>
#include <FreeSerifItalic12pt7b.h>
#include <FreeSansBold18pt7b.h>
#include <FreeSerifItalic18pt7b.h>
#include <FreeSansBold9pt7b.h>
#include <FreeSerifItalic9pt7b.h>
#include <PxMatrix.h>
#include "Arduino.h"
#include <ESP8266WiFi.h>
#include "EspMQTTClient.h"
#include <Adafruit_GFX.h>
#include <Adafruit_SPITFT.h>
#include <Adafruit_SPITFT_Macros.h>
#include <gfxfont.h>
#include <Fonts/kongtext4pt7b.h>
#include <Fonts/Picopixel.h>
#include <Fonts/TomThumb.h>
#include <FreeMono12pt7b.h>
#include <FreeSansBoldOblique12pt7b.h>
#include <FreeMono18pt7b.h>
#include <FreeSansBoldOblique18pt7b.h>
#include <FreeMono9pt7b.h>
#include <FreeSansBoldOblique9pt7b.h>
#include <FreeMonoBold12pt7b.h>
#include <FreeSansOblique12pt7b.h>
#include <FreeMonoBold18pt7b.h>
#include <FreeSansOblique18pt7b.h>
#include <FreeMonoBold9pt7b.h>
#include <FreeSansOblique9pt7b.h>
#include <FreeMonoBoldOblique12pt7b.h>
#include <FreeSerif12pt7b.h>
#include <FreeMonoBoldOblique18pt7b.h>
#include <FreeSerif18pt7b.h>
#include <FreeMonoBoldOblique9pt7b.h>
#include <FreeSerif9pt7b.h>
#include <FreeMonoOblique12pt7b.h>
#include <FreeSerifBold12pt7b.h>
#include <FreeMonoOblique18pt7b.h>
#include <FreeSerifBold18pt7b.h>
#include <FreeMonoOblique9pt7b.h>
#include <FreeSerifBold9pt7b.h>
#include <FreeSans12pt7b.h>
#include <FreeSerifBoldItalic12pt7b.h>
#include <FreeSans18pt7b.h>
#include <FreeSerifBoldItalic18pt7b.h>
#include <FreeSans9pt7b.h>
#include <FreeSerifBoldItalic9pt7b.h>
#include <FreeSansBold12pt7b.h>
#include <FreeSerifItalic12pt7b.h>
#include <FreeSansBold18pt7b.h>
#include <FreeSerifItalic18pt7b.h>
#include <FreeSansBold9pt7b.h>
#include <FreeSerifItalic9pt7b.h>
// Pins for LED MATRIX
#include <Ticker.h>
Ticker display_ticker;
#define P_LAT 16
#define P_A 5
#define P_B 4
#define P_C 15
#define P_D 12
#define P_OE 2
#define matrix_width 64
#define matrix_height 32
// This defines the 'on' time of the display is us. The larger this number,
// the brighter the display. If too large the ESP will crash
uint8_t display_draw_time=10; //30-70 is usually fine
//PxMATRIX display(32,16,P_LAT, P_OE,P_A,P_B,P_C);
PxMATRIX display(64,32,P_LAT, P_OE,P_A,P_B,P_C,P_D);
//PxMATRIX display(64,64,P_LAT, P_OE,P_A,P_B,P_C,P_D,P_E);
// Some standard colors
uint16_t myRED = display.color565(255, 0, 0);
uint16_t myGREEN = display.color565(0, 255, 0);
uint16_t myBLUE = display.color565(0, 0, 255);
uint16_t myWHITE = display.color565(255, 255, 255);
uint16_t myYELLOW = display.color565(255, 255, 0);
uint16_t myCYAN = display.color565(0, 255, 255);
uint16_t myMAGENTA = display.color565(255, 0, 255);
uint16_t myBLACK = display.color565(0, 0, 0);
uint16_t myCOLORS[8]={myRED,myGREEN,myBLUE,myWHITE,myYELLOW,myCYAN,myMAGENTA,myBLACK};
//#ifdef ESP8266
// ISR for display refresh
void display_updater()
{
display.display(display_draw_time);
}
void display_update_enable(bool is_enable)
{
#ifdef ESP8266
if (is_enable)
display_ticker.attach(0.004, display_updater);
else
display_ticker.detach();
#endif
#ifdef ESP32
if (is_enable)
{
timer = timerBegin(0, 80, true);
timerAttachInterrupt(timer, &display_updater, true);
timerAlarmWrite(timer, 4000, true);
timerAlarmEnable(timer);
}
else
{
timerDetachInterrupt(timer);
timerAlarmDisable(timer);
}
#endif
}
void setup() {
Serial.begin(9600);
// Define your display layout here, e.g. 1/8 step, and optional SPI pins begin(row_pattern, CLK, MOSI, MISO, SS)
display.begin(16);
//display.begin(8, 14, 13, 12, 4);
// Define multiplex implemention here {BINARY, STRAIGHT} (default is BINARY)
//display.setMuxPattern(BINARY);
// Set the multiplex pattern {LINE, ZIGZAG,ZZAGG, ZAGGIZ, WZAGZIG, VZAG, ZAGZIG} (default is LINE)
//display.setScanPattern(LINE);
// Rotate display
//display.setRotate(true);
// Flip display
//display.setFlip(true);
// Control the minimum color values that result in an active pixel
//display.setColorOffset(5, 5,5);
// Set the multiplex implemention {BINARY, STRAIGHT} (default is BINARY)
//display.setMuxPattern(BINARY);
// Set the color order {RRGGBB, RRBBGG, GGRRBB, GGBBRR, BBRRGG, BBGGRR} (default is RRGGBB)
//display.setColorOrder(RRGGBB);
// Set the time in microseconds that we pause after selecting each mux channel
// (May help if some rows are missing / the mux chip is too slow)
//display.setMuxDelay(0,1,0,0,0);
// Set the number of panels that make up the display area width (default is 1)
//display.setPanelsWidth(2);
// Set the brightness of the panels (default is 255)
//display.setBrightness(20);
// Set driver chip type
//display.setDriverChip(FM6124);
display.clearDisplay();
display.setTextColor(myCYAN);
display.setCursor(0,8);
display.setFont(&kongtext4pt7b);
display.print("Pixel");
display.setTextColor(myMAGENTA);
display.setCursor(16,16);
display.print("Time");
display_update_enable(true);
delay(3000);
display.clearDisplay();
}
union single_double{
uint8_t two[2];
uint16_t one;
} this_single_double;
void scroll_text(uint8_t ypos, unsigned long scroll_delay, String text, uint8_t colorR, uint8_t colorG, uint8_t colorB)
{
uint16_t text_length = text.length();
display.setTextWrap(false); // we don't wrap text so it scrolls nicely
display.setTextSize(1);
display.setRotation(0);
display.setTextColor(display.color565(colorR,colorG,colorB));
// Asuming 5 pixel average character width
for (int xpos=matrix_width; xpos>-(matrix_width+text_length*5); xpos--)
{
display.setTextColor(display.color565(colorR,colorG,colorB));
display.clearDisplay();
display.setCursor(xpos,ypos);
display.println(text);
delay(scroll_delay);
yield();
// This might smooth the transition a bit if we go slow
// display.setTextColor(display.color565(colorR/4,colorG/4,colorB/4));
// display.setCursor(xpos-1,ypos);
// display.println(text);
delay(scroll_delay/5);
yield();
}
}
uint8_t icon_index=0;
void loop() {
display.setFont(&FreeMonoBold12pt7b);
scroll_text(26,20,"MonoBold12pt7b",96,96,220);
display.setFont(&kongtext4pt7b);
scroll_text(26,20,"kongtext4pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&Picopixel);
scroll_text(26,20,"Picopixel",96,96,220);
display.setCursor(10, 24);
display.setFont(&TomThumb);
scroll_text(26,20,"TomThumb",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSansBoldOblique12pt7b);
scroll_text(26,20,"SansBoldOblique12pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeMono18pt7b);
scroll_text(26,20,"Mono18pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeMono9pt7b);
scroll_text(26,20,"Mono9pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSansBoldOblique9pt7b);
scroll_text(26,20,"SansBoldOblique9pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeMonoBold12pt7b);
scroll_text(26,20,"MonoBold12pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSansOblique12pt7b);
scroll_text(26,20,"SansOblique12pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeMonoBold18pt7b);
scroll_text(26,20,"MonoBold18pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeMonoBold9pt7b);
scroll_text(26,20,"MonoBold9pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSansOblique9pt7b);
scroll_text(26,20,"SansOblique9pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeMonoBoldOblique12pt7b);
scroll_text(26,20,"MonoBoldOblique12pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSerif12pt7b);
scroll_text(26,20,"Serif12pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeMonoBoldOblique18pt7b);
scroll_text(26,20,"MonoBoldOblique18pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSerif18pt7b);
scroll_text(26,20,"Serif18pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeMonoBoldOblique9pt7b);
scroll_text(26,20,"MonoBoldOblique9pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSerif9pt7b);
scroll_text(26,20,"Serif9pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeMonoOblique12pt7b);
scroll_text(26,20,"MonoOblique12pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSerifBold12pt7b);
scroll_text(26,20,"SerifBold12pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeMonoOblique9pt7b);
scroll_text(26,20,"MonoOblique9pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSerifBold9pt7b);
scroll_text(26,20,"SerifBold9pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSans12pt7b);
scroll_text(26,20,"Sans12pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSerifBoldItalic12pt7b);
scroll_text(26,20,"SerifBoldItalic12pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSans18pt7b);
scroll_text(26,20,"Sans18pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSerifBoldItalic18pt7b);
scroll_text(26,20,"SerifBoldItalic18pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSans9pt7b);
scroll_text(26,20,"Sans9pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSerifBoldItalic9pt7b);
scroll_text(26,20,"SerifBoldItalic9pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSansBold12pt7b);
scroll_text(26,20,"SansBold12pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSerifItalic12pt7b);
scroll_text(26,20,"SerifItalic12pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSansBold18pt7b);
scroll_text(26,20,"SansBold18pt7b.h",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSerifItalic18pt7b);
scroll_text(26,20,"SerifItalic18pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSansBold9pt7b);
scroll_text(26,20,"SansBold9pt7b",96,96,220);
display.setCursor(10, 24);
display.setFont(&FreeSerifItalic9pt7b);
scroll_text(26,20,"SerifItalic9pt7b",96,96,220);
display.setCursor(10, 24);
delay(1000);
//display.clearDisplay();
display.setCursor(10, 24);
display.setFont(&TomThumb);
display.setTextColor(myWHITE);
display.fillRect(0, 10, 60, 15, display.color565(0, 0, 0));
display.print("spiketech.be");
delay(1000);
}