嗨,大家好,在以前的帖子中,我们讨论过TFT显示屏的使用方法,以及如何在Arduino项目中连接和使用它们。在本篇文章,我们将研究如何在Arduino开发板上使用1.44英寸TFT显示屏(ILI9163C)。
基于ILI9163C的1.44英寸彩色TFT显示屏是基于SPI协议的显示屏,分辨率为128 x 128像素。它可以显示多达262,000种不同的颜色。该模块可以说是1.8英寸TFT显示屏的同级产品,但与1.8英寸TFT显示屏相比,该模块速度更快且具有更好的整体性价比。显示器的某些功能如下: √ 尺寸:1.44英寸 √ 接口:SPI √ 分辨率:128 * 128像素 √ 视觉区域:1:1正方形 √ TFT彩色屏幕,效果远胜于其他小型CSTN屏幕 √ 驱动器IC:ILI9163 √ 完全兼容且可替代5110接口 √ 板载LDO ,支持5V / 3.3V输入电压,LED背光,3.3V输入
在本篇文章中,我们将重点演示如何将此显示屏与Arduino一起使用以显示文本、形状和图像。
所需的组件 本文需要以下组件: ● 1.44英寸TFT显示屏 ● Arduino Uno开发板 ● 面包板 ● 跳线
原理图 如前所述,TFT显示屏通过SPI与微控制器通信,因此要使用它,我们需要将其连接到Arduino的SPI引脚,如下图所示。
请注意,本教程使用的显示屏版本在原理图使用的软件fritzing上不可用,因此请遵循下面的引脚连接列表以进一步了解TFT显示器的每个引脚应如何连接到Arduino。 1.44“ TFT引脚 | Arduino引脚 | VCC | 5V | GND | GND | CS | D10 | RST | D9 | A0 | D8 | SDA | D11 | SCK | D13 | LED | 3.3V |
连接显示屏时,在将其直接连接至Arduino的5v逻辑电平之前,请确保具有稳压器(如下图所示)。这是因为如果您使用的显示屏版本没有稳压器,则可能会损坏显示屏;如果显示屏没有稳压器,则可以在显示器和Arduino之间使用逻辑电平转换器。
再次确认连接,以确保所有组件均已正确连接,然后再继续进行下一部分。
代码 为了允许Arduino与显示屏配合使用,我们需要两个Arduino库;可从此链接下载的sumotoy TFT ILI9163C Arduino库以及我们在多个教程中广泛使用的流行的Adafruit GFX Arduino库。下载这些库并将它们安装在Arduino IDE中。 对于今天的教程,我们将使用bigtest示例,该示例是sumotoy ILI9163C Arduino库随附的示例代码之一,以展示如何使用TFT显示屏。转到File–>Examples–>TFT_ILI9163c–>bigtest 打开,如下图所示。应当指出的是,只有在安装了sumotoy库之后才能使用。
与往常一样,要做的第一件事是包括代码所需的所有库。 - #include <SPI.h>
- #include <Adafruit_GFX.h>
- #include <TFT_ILI9163C.h>
复制代码接下来,我们定义将与相应的十六进制值一起使用的一些颜色。如果您阅读过使用Adafruit GFX库的任何以前的教程,您会发现该代码包含GFX库中的很多内容,应该更容易理解。 - // Color definitions
- #define BLACK 0x0000
- #define BLUE 0x001F
- #define RED 0xF800
- #define GREEN 0x07E0
- #define CYAN 0x07FF
- #define MAGENTA 0xF81F
- #define YELLOW 0xFFE0
- #define WHITE 0xFFFF
复制代码接下来,声明与TFT显示屏的CS和DC引脚相连的Arduino引脚。 - #define __CS 10
- #define __DC 9
复制代码接下来,使用CS和DC参数作为输入创建了名为“ display”的ILI9163c库的对象,但是由于所使用的显示类型不同,我们需要包括Arduino的引脚,TFT显示器的A0引脚位于该引脚上。连接的是D8。 - TFT_ILI9163C display = TFT_ILI9163C(__CS,8, __DC);
复制代码
完成此操作后,我们介绍void setup()函数。在此函数中,我们发出用于初始化显示的命令,然后创建由millis更新的时间变量,此后,我们发出命令以清除屏幕并在屏幕上显示一些随机文本。 - void setup(void) {
- display.begin();
- uint16_t time = millis();
- time = millis() - time;
- // lcdTestPattern();
- // delay(1000);
- display.clearScreen();
- display.setCursor(0,0);
- display.print("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur adipiscing ante sed nibh tincidunt feugiat. Maecenas enim massa");
- delay(1000);
复制代码
然后,在执行某些函数(包括显示快速线,绘制矩形等)之后,每个函数将调用延迟,以使文本或图形在屏幕上停留足够长的时间以使其可见。 - tftPrintTest();
- delay(2000);
- //a single pixel
- display.drawPixel(display.width()/2, display.height()/2, GREEN);
- delay(500);
- // line draw test
- testlines(YELLOW);
- delay(500);
- // optimized lines
- testfastlines(RED, BLUE);
- delay(500);
- testdrawrects(GREEN);
- delay(1000);
- testfillrects(BLUE, YELLOW);
- delay(1000);
- randomRect(0);
- delay(100);
- randomCircles(0);
- delay(100);
- randomLines();
- delay(100);
- randomPoints();
- delay(500);
-
- display.clearScreen();
- testfillcircles(10, BLUE);
- testdrawcircles(10, WHITE);
- delay(1000);
- testroundrects();
- delay(500);
- testtriangles();
- delay(500);
复制代码
接下来是void loop()函数。 loop函数还调用在void setup()函数下调用的某些相同函数,以显示圆形、矩形等,其中包括上用于测试屏幕的testline函数。 - void loop() {
- testlines(random(0x0010,0xFFFF));
- randomLines();
- //randomCircles(1);
- randomCircles(0);
- randomRect(1);
- randomRect(1);
- randomRect(1);
- randomRect(1);
- randomRect(1);
- randomRect(0);
- randomRect(0);
- randomRect(0);
- randomRect(0);
- randomRect(0);
- randomRect(0);
- randomPoints();
- }
复制代码
其余代码用于已调用的函数,并不难理解。以下是此项目的完整代码:
main.rar
(2.12 KB, 下载次数: 32)
演示 安装完库后,打开Arduino IDE的实例,打开最初描述的示例,别忘了对代码进行A0引脚(D8)校正,然后上传到Arduino开发板上。 您应该会在屏幕上看到不同种类的文本和图形。 我截取了运行中的屏幕,其图像如下图所示。
是不是觉得很棒? 如果您对本文有任何疑问,请随时在下面进行回复。 |