esp8266点亮1.8寸st7735S(2022-10-14)

news/2025/1/24 18:42:52/

文章目录

    • 1.接线和效果
    • 2.代码和库

1.接线和效果

在这里插入图片描述
在这里插入图片描述

2.代码和库

/**************************************************************************This is a library for several Adafruit displays based on ST77* drivers.Works with the Adafruit 1.8" TFT Breakout w/SD card----> http://www.adafruit.com/products/358The 1.8" TFT shield----> https://www.adafruit.com/product/802The 1.44" TFT breakout----> https://www.adafruit.com/product/2088The 1.14" TFT breakout----> https://www.adafruit.com/product/4383The 1.3" TFT breakout----> https://www.adafruit.com/product/4313The 1.54" TFT breakout----> https://www.adafruit.com/product/3787The 1.69" TFT breakout----> https://www.adafruit.com/product/5206The 2.0" TFT breakout----> https://www.adafruit.com/product/4311as well as Adafruit raw 1.8" TFT display----> http://www.adafruit.com/products/618Check out the links above for our tutorials and wiring diagrams.These displays use SPI to communicate, 4 or 5 pins are required tointerface (RST is optional).Adafruit invests time and resources providing this open source code,please support Adafruit and open-source hardware by purchasingproducts from Adafruit!Written by Limor Fried/Ladyada for Adafruit Industries.MIT license, all text above must be included in any redistribution**************************************************************************/#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library for ST7735
#include <Adafruit_ST7789.h> // Hardware-specific library for ST7789
#include <SPI.h>#if defined(ARDUINO_FEATHER_ESP32) // Feather Huzzah32#define TFT_CS         14#define TFT_RST        15#define TFT_DC         32#elif defined(ESP8266)#define TFT_CS        5#define TFT_RST        2                                            #define TFT_DC         16#else// For the breakout board, you can use any 2 or 3 pins.// These pins will also work for the 1.8" TFT shield.#define TFT_CS        10#define TFT_RST        9 // Or set to -1 and connect to Arduino RESET pin#define TFT_DC         8
#endif// OPTION 1 (recommended) is to use the HARDWARE SPI pins, which are unique
// to each board and not reassignable. For Arduino Uno: MOSI = pin 11 and
// SCLK = pin 13. This is the fastest mode of operation and is required if
// using the breakout board's microSD card.// For 1.44" and 1.8" TFT with ST7735 use:
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);// For 1.14", 1.3", 1.54", 1.69", and 2.0" TFT with ST7789:
//Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);// OPTION 2 lets you interface the display using ANY TWO or THREE PINS,
// tradeoff being that performance is not as fast as hardware SPI above.
//#define TFT_MOSI 11  // Data out
//#define TFT_SCLK 13  // Clock out// For ST7735-based displays, we will use this call
//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);// OR for the ST7789-based displays, we will use this call
//Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);float p = 3.1415926;void setup(void) {Serial.begin(9600);Serial.print(F("Hello! ST77xx TFT Test"));// Use this initializer if using a 1.8" TFT screen:tft.initR(INITR_BLACKTAB);      // Init ST7735S chip, black tab// OR use this initializer if using a 1.8" TFT screen with offset such as WaveShare:// tft.initR(INITR_GREENTAB);      // Init ST7735S chip, green tab// OR use this initializer (uncomment) if using a 1.44" TFT://tft.initR(INITR_144GREENTAB); // Init ST7735R chip, green tab// OR use this initializer (uncomment) if using a 0.96" 160x80 TFT://tft.initR(INITR_MINI160x80);  // Init ST7735S mini display// OR use this initializer (uncomment) if using a 1.3" or 1.54" 240x240 TFT://tft.init(240, 240);           // Init ST7789 240x240// OR use this initializer (uncomment) if using a 1.69" 280x240 TFT://tft.init(240, 280);           // Init ST7789 280x240// OR use this initializer (uncomment) if using a 2.0" 320x240 TFT://tft.init(240, 320);           // Init ST7789 320x240// OR use this initializer (uncomment) if using a 1.14" 240x135 TFT://tft.init(135, 240);           // Init ST7789 240x135// OR use this initializer (uncomment) if using a 1.47" 172x320 TFT://tft.init(172, 320);           // Init ST7789 172x320// SPI speed defaults to SPI_DEFAULT_FREQ defined in the library, you can override it here// Note that speed allowable depends on chip and quality of wiring, if you go too fast, you// may end up with a black screen some times, or all the time.//tft.setSPISpeed(40000000);Serial.println(F("Initialized"));uint16_t time = millis();tft.fillScreen(ST77XX_BLACK);time = millis() - time;Serial.println(time, DEC);delay(500);// large block of text// tft print function!tftPrintTest();delay(4000);// a single pixeltft.drawPixel(tft.width()/2, tft.height()/2, ST77XX_GREEN);delay(500);// line draw testtestlines(ST77XX_YELLOW);delay(500);// optimized linestestfastlines(ST77XX_RED, ST77XX_BLUE);delay(500);testdrawrects(ST77XX_GREEN);delay(500);testfillrects(ST77XX_YELLOW, ST77XX_MAGENTA);delay(500);tft.fillScreen(ST77XX_BLACK);testfillcircles(10, ST77XX_BLUE);testdrawcircles(10, ST77XX_WHITE);delay(500);testroundrects();delay(500);testtriangles();delay(500);mediabuttons();delay(500);Serial.println("done");delay(1000);
}void loop() {tft.invertDisplay(true);delay(500);tft.invertDisplay(false);delay(500);
}void testlines(uint16_t color) {tft.fillScreen(ST77XX_BLACK);for (int16_t x=0; x < tft.width(); x+=6) {tft.drawLine(0, 0, x, tft.height()-1, color);delay(0);}for (int16_t y=0; y < tft.height(); y+=6) {tft.drawLine(0, 0, tft.width()-1, y, color);delay(0);}tft.fillScreen(ST77XX_BLACK);for (int16_t x=0; x < tft.width(); x+=6) {tft.drawLine(tft.width()-1, 0, x, tft.height()-1, color);delay(0);}for (int16_t y=0; y < tft.height(); y+=6) {tft.drawLine(tft.width()-1, 0, 0, y, color);delay(0);}tft.fillScreen(ST77XX_BLACK);for (int16_t x=0; x < tft.width(); x+=6) {tft.drawLine(0, tft.height()-1, x, 0, color);delay(0);}for (int16_t y=0; y < tft.height(); y+=6) {tft.drawLine(0, tft.height()-1, tft.width()-1, y, color);delay(0);}tft.fillScreen(ST77XX_BLACK);for (int16_t x=0; x < tft.width(); x+=6) {tft.drawLine(tft.width()-1, tft.height()-1, x, 0, color);delay(0);}for (int16_t y=0; y < tft.height(); y+=6) {tft.drawLine(tft.width()-1, tft.height()-1, 0, y, color);delay(0);}
}void testdrawtext(char *text, uint16_t color) {tft.setCursor(0, 0);tft.setTextColor(color);tft.setTextWrap(true);tft.print(text);
}void testfastlines(uint16_t color1, uint16_t color2) {tft.fillScreen(ST77XX_BLACK);for (int16_t y=0; y < tft.height(); y+=5) {tft.drawFastHLine(0, y, tft.width(), color1);}for (int16_t x=0; x < tft.width(); x+=5) {tft.drawFastVLine(x, 0, tft.height(), color2);}
}void testdrawrects(uint16_t color) {tft.fillScreen(ST77XX_BLACK);for (int16_t x=0; x < tft.width(); x+=6) {tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color);}
}void testfillrects(uint16_t color1, uint16_t color2) {tft.fillScreen(ST77XX_BLACK);for (int16_t x=tft.width()-1; x > 6; x-=6) {tft.fillRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color1);tft.drawRect(tft.width()/2 -x/2, tft.height()/2 -x/2 , x, x, color2);}
}void testfillcircles(uint8_t radius, uint16_t color) {for (int16_t x=radius; x < tft.width(); x+=radius*2) {for (int16_t y=radius; y < tft.height(); y+=radius*2) {tft.fillCircle(x, y, radius, color);}}
}void testdrawcircles(uint8_t radius, uint16_t color) {for (int16_t x=0; x < tft.width()+radius; x+=radius*2) {for (int16_t y=0; y < tft.height()+radius; y+=radius*2) {tft.drawCircle(x, y, radius, color);}}
}void testtriangles() {tft.fillScreen(ST77XX_BLACK);uint16_t color = 0xF800;int t;int w = tft.width()/2;int x = tft.height()-1;int y = 0;int z = tft.width();for(t = 0 ; t <= 15; t++) {tft.drawTriangle(w, y, y, x, z, x, color);x-=4;y+=4;z-=4;color+=100;}
}void testroundrects() {tft.fillScreen(ST77XX_BLACK);uint16_t color = 100;int i;int t;for(t = 0 ; t <= 4; t+=1) {int x = 0;int y = 0;int w = tft.width()-2;int h = tft.height()-2;for(i = 0 ; i <= 16; i+=1) {tft.drawRoundRect(x, y, w, h, 5, color);x+=2;y+=3;w-=4;h-=6;color+=1100;}color+=100;}
}void tftPrintTest() {tft.setTextWrap(false);tft.fillScreen(ST77XX_BLACK);tft.setCursor(0, 30);tft.setTextColor(ST77XX_RED);tft.setTextSize(1);tft.println("Hello World!");tft.setTextColor(ST77XX_YELLOW);tft.setTextSize(2);tft.println("Hello World!");tft.setTextColor(ST77XX_GREEN);tft.setTextSize(3);tft.println("Hello World!");tft.setTextColor(ST77XX_BLUE);tft.setTextSize(4);tft.print(1234.567);delay(1500);tft.setCursor(0, 0);tft.fillScreen(ST77XX_BLACK);tft.setTextColor(ST77XX_WHITE);tft.setTextSize(0);tft.println("Hello World!");tft.setTextSize(1);tft.setTextColor(ST77XX_GREEN);tft.print(p, 6);tft.println(" Want pi?");tft.println(" ");tft.print(8675309, HEX); // print 8,675,309 out in HEX!tft.println(" Print HEX!");tft.println(" ");tft.setTextColor(ST77XX_WHITE);tft.println("Sketch has been");tft.println("running for: ");tft.setTextColor(ST77XX_MAGENTA);tft.print(millis() / 1000);tft.setTextColor(ST77XX_WHITE);tft.print(" seconds.");
}void mediabuttons() {// playtft.fillScreen(ST77XX_BLACK);tft.fillRoundRect(25, 10, 78, 60, 8, ST77XX_WHITE);tft.fillTriangle(42, 20, 42, 60, 90, 40, ST77XX_RED);delay(500);// pausetft.fillRoundRect(25, 90, 78, 60, 8, ST77XX_WHITE);tft.fillRoundRect(39, 98, 20, 45, 5, ST77XX_GREEN);tft.fillRoundRect(69, 98, 20, 45, 5, ST77XX_GREEN);delay(500);// play colortft.fillTriangle(42, 20, 42, 60, 90, 40, ST77XX_BLUE);delay(50);// pause colortft.fillRoundRect(39, 98, 20, 45, 5, ST77XX_RED);tft.fillRoundRect(69, 98, 20, 45, 5, ST77XX_RED);// play colortft.fillTriangle(42, 20, 42, 60, 90, 40, ST77XX_GREEN);
}

在这里插入图片描述
还有一个链接可以参考

文章来源:https://blog.csdn.net/weixin_51397215/article/details/127328099
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/news/118425.html

相关文章

sg函数2023.5.31

SG函数是用于解决博弈论中公平组合游戏&#xff08;Impartial Combinatorial Games&#xff0c;ICG&#xff09;问题的一种方法。 一. ICG: 有两名玩家 两名玩家轮流操作&#xff0c;在一个有限集合内任选一个进行操作&#xff0c;改变游戏当前局面 一个局面的合法操作&#xf…

Android S CTS STS 常见的 fail 项

此文章只是一篇总结&#xff0c;针对 MTK 平台近期的 CTS STS 做个简单的整理回顾&#xff0c;后期不断扩展 CTS 专区 CtsLocationPrivilegedTestCases android.location.cts.privileged.GnssMeasurementValuesTest#testListenForGnssMeasurements junit.framework.AssertionFa…

Lenovo X240/250锁定 Fn 键时 End 键工作不正常

Lenovo ThinkPadX240和X250&#xff0c;这两个机型的End键有点与众不同&#xff1a;在默认Fn键锁定的情况下&#xff0c;在普遍的编辑文档时&#xff0c;按Home键能正常返回行首&#xff0c;而End却并不会跑到行尾&#xff0c;只有取消Fn锁定才会有正常的效果。 Fn键锁定时&…

ThinkPad X240 Ubuntu 14.10 LTS 系统找不到wifi网络的解决方案 / 手动安装无线网卡驱动

笔记本型号&#xff1a;ThinkPad X240 系统&#xff1a;Ubuntu 14.10 LTS 问题&#xff1a;搜索不到无线wifi网络 原因&#xff1a;系统缺少无线网卡的驱动 解决问题的心路历程&#xff1a; 百度“ubuntu安装无线网卡驱动”&#xff0c;会有很多帖子告诉我这么做&#xff1…

wemos d1 r1点亮st7735s屏幕(Z180SN019)

使用wemos d1 r1点亮st7735s屏幕 wemos d1 r1是一个价格美丽但是资料很乱的板子&#xff0c;买来后闲置了很久&#xff0c;因为从淘宝入手了一块屏幕所以想用它点亮一下。 屏幕型号是Z180SN019。 板子&#xff1a; 屏幕引脚定义 库安装 打开arduino IDE&#xff0c;转到 文…

Linux下禁用T440s,X240的一体化触摸板(touchpad)

自打1月买了Thinkpad T440s就一直很火大&#xff0c;其中最让人恼火的莫过于触摸板。 Thinkpad的经典就包括用了小红点(TrackPoint)。但是小红点只能定位&#xff0c;还是需要鼠标的左右键的。但是自打T440s等开始启用了一体化触摸板&#xff0c;不再有实体的按键了。问题是要是…

联想thinkpad bios密码破解,t440,450,460,x240,250,260,x1c,yoga,y70,y50。。。。软件解密

联想thinkpad bios密码破解&#xff0c;t440&#xff0c;450&#xff0c;460&#xff0c;x240&#xff0c;250&#xff0c;260&#xff0c;x1c&#xff0c;yoga&#xff0c;y70&#xff0c;y50。。。。&#xff0c;软件解密&#xff0c;不需动主板。

thinkpad x240 (二)

开始量产出售了。官网有售&#xff0c;现在只有1366*768分辨率的屏。 12.5" HD (1366 x 768) 12.5" HD IPS (1366 x 768) 可能要到年底才有高分屏。 内存最大可上到8G&#xff0c; 硬盘类型可选。 HDD: 500GB / 1TB (5400 rpm) HDD: 500GB (7200 rpm) SSD: 128GB /…