Arduino 範例 ST7735 TFT 全彩LCD 入門篇
購買1.8吋ST7735 LCD:https://jason080.easy.co/products/st7735-18
我們這次是用Arduino Uno來接ST7735,其實能選的函式庫並不多,傑森選的是最多人用的Adafruit函式庫。除了要安裝Adafruit ST7735函式庫,還要安裝Adafruit GFX函式庫,因為不管是OLED或是LCD,Adafruit有關顯示的處理,都是透過這個函式庫的。
再來就是接線了,ST7735款式還不少,基本上會有兩種針腳的款式:8針、10針,我們這次是用8針的,至於10針的其實是多了兩個NC腳,不用接線的,其它只是順序不同而已。
- MOSI(SDA) >> PIN 11
- SCK(SCL) >> PIN 13
- CS >> PIN10
- DC(A0、RS) >>
- RST >> PIN9
- LED >> 3.3V
- VCC >> 5V
- GND >> GND
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <Adafruit_ST7789.h>
#include <Fonts/FreeSerif12pt7b.h>
#include <Fonts/FreeSansBold9pt7b.h>
#include <Fonts/FreeSans9pt7b.h>
#include <SPI.h>
#define TFT_CS 10 // TFT LCD的CS PIN腳
#define TFT_DC 8 // TFT DC(A0、RS)
#define TFT_RST 9 // TFT Reset
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
void setup(void) {
// 1.8" 用這行
tft.initR(INITR_BLACKTAB); // Init ST7735S chip, black tab
// 1.44" TFT:
//tft.initR(INITR_144GREENTAB); // Init ST7735R chip, green tab
tft.setRotation(1); //螢幕轉向
tft.fillScreen(ST77XX_BLACK); //填滿黑色
tft.setCursor(10, 30); //設定文字游標點
tft.setTextColor(ST77XX_WHITE); //設定文字顏色
tft.setFont(&FreeSerif12pt7b); //字型
tft.print("Hello World !"); //顯示文字
tft.setCursor(0, 60);
tft.setTextColor(ST77XX_RED);
tft.setFont(&FreeSansBold9pt7b);
tft.print("JMaker Workshop");
tft.setCursor(0, 80);
tft.setTextColor(ST77XX_YELLOW);
tft.setFont(&FreeSans9pt7b);
tft.print("www.jmaker.com.tw");
showIcons(); //繪制幾何圖形
}
void showIcons() {
tft.fillRoundRect(30, 95, 30, 30, 5, ST77XX_MAGENTA); //圓角矩形x,y,w,h,radius,color
tft.fillCircle(80, 110, 15, ST77XX_BLUE); //圓形 x,y,radius
tft.drawRect(105, 95, 30, 30,ST77XX_GREEN); //矩形外框 x,y,width,height
delay(500);
}
void loop() {
}
文字的處理就是以下這段:
tft.setRotation(1); //螢幕轉向
tft.fillScreen(ST77XX_BLACK); //填滿黑色
tft.setCursor(10, 30); //設定文字游標點
tft.setTextColor(ST77XX_WHITE); //設定文字顏色
tft.setFont(&FreeSerif12pt7b); //字型
tft.print("Hello World !"); //顯示文字
比較要注意的,就是字型要預先載入哦!像這個例子就用到了3個字型。
#include <Fonts/FreeSerif12pt7b.h>
#include <Fonts/FreeSansBold9pt7b.h>
#include <Fonts/FreeSans9pt7b.h>
另外我們還加了繪製3個幾何圖形:圓角矩形、圓形、矩形外框,都只要一行程式就完成了。
tft.fillRoundRect(30, 95, 30, 30, 5, ST77XX_MAGENTA); //圓角矩形x,y,w,h,radius,color
tft.fillCircle(80, 110, 15, ST77XX_BLUE); //圓形 x,y,radius
tft.drawRect(105, 95, 30, 30,ST77XX_GREEN); //矩形外框 x,y,width,height
沒有留言:
張貼留言