arduino:displays_for_classic_arduinos:1.8_and_1.44_tft_displays_and_classic_arduinos
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
arduino:displays_for_classic_arduinos:1.8_and_1.44_tft_displays_and_classic_arduinos [2018/01/28 01:52] – mithat | arduino:displays_for_classic_arduinos:1.8_and_1.44_tft_displays_and_classic_arduinos [2018/01/28 01:56] – [Adafruit ST7735 Library] mithat | ||
---|---|---|---|
Line 48: | Line 48: | ||
{{youtube> | {{youtube> | ||
- | <file c++ display_st7735_1.44_TFT.ino> | + | [[display_st7735_1.44_TFT.ino |
- | /* | + | |
- | * display_st7735_1.44_TFT.ino | + | |
- | | + | |
- | * Test screen update speed with large solid fonts on | + | |
- | * a 128x128 TFT screen that uses the ST7735 chip. | + | |
- | | + | |
- | * Consumes 26% of program storage space and | + | |
- | * 5% of dynamic memory on a Pro Mini. | + | |
- | * | + | |
- | * Mithat Konar | + | |
- | */ | + | |
- | #include < | ||
- | #include < | ||
- | |||
- | /* | ||
- | * Pin assignments: | ||
- | * RST: 8 | ||
- | * CE/CS/SCE: 10 | ||
- | * DC/" | ||
- | * DIN/ | ||
- | * CLK/ | ||
- | * VCC: 3.3V | ||
- | * LIGHT/LED: ground through 1 ohm resistor (yields about 20mA) | ||
- | * GND: ground | ||
- | */ | ||
- | |||
- | const unsigned int CLOCK_PIN = 13, | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | const unsigned int LEFT_MARGIN = 32; // number of pixels you need to shift for 128x128 screen | ||
- | |||
- | |||
- | TFT TFTscreen = TFT(CS_PIN, DC_PIN, RESET_PIN); | ||
- | char dispStr[4]; | ||
- | unsigned int counter = 80; | ||
- | |||
- | void setup() { | ||
- | TFTscreen.begin(); | ||
- | TFTscreen.background(0, | ||
- | |||
- | TFTscreen.stroke(255, | ||
- | TFTscreen.setTextSize(1); | ||
- | TFTscreen.text(" | ||
- | | ||
- | TFTscreen.setTextSize(7); | ||
- | } | ||
- | |||
- | void loop() { | ||
- | // draw over what you wrote last time | ||
- | TFTscreen.stroke(0, | ||
- | String(counter).toCharArray(dispStr, | ||
- | TFTscreen.text(dispStr, | ||
- | |||
- | // update and draw something new | ||
- | counter++; | ||
- | |||
- | TFTscreen.stroke(255, | ||
- | String(counter).toCharArray(dispStr, | ||
- | TFTscreen.text(dispStr, | ||
- | |||
- | // inherent frame rate of this loop is about 15 fps w/o added delay (8 MHz processor). | ||
- | delay(500); | ||
- | } | ||
- | |||
- | </ | ||
==== Adafruit ST7735 Library ==== | ==== Adafruit ST7735 Library ==== | ||
Line 129: | Line 61: | ||
FIXME video | FIXME video | ||
- | <file c++ display_st7735_1.44_adafruit_st7735.ino> | + | [[display_st7735_1.44_adafruit_st7735.ino |
- | /* | + | |
- | * display_st7735_1.44_adafruit_st7735.ino | + | |
- | | + | |
- | * Test screen update speed with large default fonts on | + | |
- | * a 128x128 TFT screen that uses the ST7735 chip. | + | |
- | * | + | |
- | * Consumes 26% of program storage space and | + | |
- | * 6% of dynamic memory on a Pro Mini. | + | |
- | * | + | |
- | * Mithat Konar | + | |
- | */ | + | |
- | + | ||
- | #include < | + | |
- | #include < | + | |
- | #include < | + | |
- | + | ||
- | /* | + | |
- | * Pin assignments: | + | |
- | * RST: 8 | + | |
- | * CE/CS/SCE: 10 | + | |
- | * DC/" | + | |
- | * DIN/ | + | |
- | * CLK/ | + | |
- | * VCC: 3.3V | + | |
- | * LIGHT/LED: ground through 1 ohm resistor (yields about 20mA) | + | |
- | * GND: ground | + | |
- | */ | + | |
- | + | ||
- | const unsigned int CLOCK_PIN = 13, | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | + | ||
- | const unsigned int TOP_MARGIN = 32; // number of pixels you need to shift for 128x128 screen | + | |
- | + | ||
- | // Use hardware SPI. | + | |
- | Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, | + | |
- | unsigned int counter = 80; | + | |
- | + | ||
- | void setup(void) { | + | |
- | // mfk note: neither initializer below works for the 128x128 | + | |
- | tft.initR(INITR_BLACKTAB); | + | |
- | // tft.initR(INITR_144GREENTAB); | + | |
- | + | ||
- | tft.fillScreen(ST7735_BLACK); | + | |
- | tft.setTextWrap(false); | + | |
- | + | ||
- | tft.setCursor(0, | + | |
- | tft.setTextSize(1); | + | |
- | tft.setTextColor(ST7735_WHITE); | + | |
- | tft.setTextWrap(true); | + | |
- | tft.print(" | + | |
- | } | + | |
- | + | ||
- | void loop() { | + | |
- | tft.setTextSize(7); | + | |
- | + | ||
- | // draw over what you wrote last time | + | |
- | tft.setCursor(0, | + | |
- | tft.setTextColor(ST7735_BLACK); | + | |
- | tft.print(counter); | + | |
- | + | ||
- | // update and draw something new | + | |
- | counter++; | + | |
- | tft.setCursor(0, | + | |
- | tft.setTextColor(ST7735_WHITE); | + | |
- | tft.print(counter); | + | |
- | + | ||
- | // inherent frame rate of this loop is about 15 fps w/o added delay (8 MHz processor). | + | |
- | delay(500); | + | |
- | } | + | |
- | + | ||
- | </ | + | |
=== Fancy large font === | === Fancy large font === | ||
Line 211: | Line 69: | ||
FIXME video | FIXME video | ||
- | <file c++ display_st7735_1.44_adafruit_st7735_fonts.ino> | + | [[display_st7735_1.44_adafruit_st7735_fonts.ino |
- | /* | + | |
- | * display_st7735_1.44_adafruit_st7735_fonts.ino | + | |
- | | + | |
- | * Test screen update speed with large fancy font on | + | |
- | * a 128x128 TFT screen that uses the ST7735 chip. | + | |
- | * | + | |
- | * Consumes 53% of program storage space and | + | |
- | * 6% of dynamic memory on a Pro Mini. | + | |
- | * | + | |
- | * Mithat Konar | + | |
- | */ | + | |
- | + | ||
- | #include < | + | |
- | #include < | + | |
- | #include < | + | |
- | #include < | + | |
- | + | ||
- | /* | + | |
- | * Pin assignments: | + | |
- | * RST: 8 | + | |
- | * CE/CS/SCE: 10 | + | |
- | * DC/" | + | |
- | * DIN/ | + | |
- | * CLK/ | + | |
- | * VCC: 3.3V | + | |
- | * LIGHT/LED: ground through 1 ohm resistor (yields about 20mA) | + | |
- | * GND: ground | + | |
- | */ | + | |
- | + | ||
- | const unsigned int CLOCK_PIN = 13, | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | + | ||
- | const unsigned int TOP_MARGIN = 32; // number of pixels you need to shift for 128x128 screen | + | |
- | + | ||
- | // Use hardware SPI. | + | |
- | Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, | + | |
- | unsigned int counter = 80; | + | |
- | + | ||
- | void setup(void) { | + | |
- | // mfk note: neither initializer below works for the 128x128 | + | |
- | tft.initR(INITR_BLACKTAB); | + | |
- | // tft.initR(INITR_144GREENTAB); | + | |
- | + | ||
- | tft.fillScreen(ST7735_BLACK); | + | |
- | tft.setTextWrap(false); | + | |
- | + | ||
- | tft.setCursor(0, | + | |
- | tft.setTextSize(1); | + | |
- | tft.setTextColor(ST7735_WHITE); | + | |
- | tft.setTextWrap(true); | + | |
- | tft.print(" | + | |
- | + | ||
- | tft.setFont(& | + | |
- | } | + | |
- | + | ||
- | void loop() { | + | |
- | // draw over what you wrote last time | + | |
- | tft.setCursor(0, | + | |
- | tft.setTextColor(ST7735_BLACK); | + | |
- | tft.print(counter); | + | |
- | + | ||
- | // update and draw something new | + | |
- | counter++; | + | |
- | tft.setCursor(0, | + | |
- | tft.setTextColor(ST7735_WHITE); | + | |
- | tft.print(counter); | + | |
- | + | ||
- | // inherent frame rate of this loop is about 2.5 fps w/o added delay (8 MHz processor). | + | |
- | delay(500); | + | |
- | } | + | |
- | </ |
arduino/displays_for_classic_arduinos/1.8_and_1.44_tft_displays_and_classic_arduinos.txt · Last modified: 2018/01/31 04:55 by mithat