使用RP2040-Zero和GC9A01的演示項(xiàng)目來(lái)向每個(gè)屏幕發(fā)送不同的圖像
RP2040-2x GC9A01顯示在共享SPI顯示位圖眼睛和繪制眼睛繪制儀表使用多語(yǔ)言和符號(hào)字體
這個(gè)使用RP2040-Zero和兩個(gè)GC9A01顯示器的演示項(xiàng)目側(cè)重于向每個(gè)屏幕發(fā)送不同的圖像。通過(guò)利用SPI端口的共享使用,兩個(gè)顯示器都連接到RP2040-Zero,允許有效的通信。建立連接后,使用適當(dāng)?shù)拇a將不同的數(shù)據(jù)發(fā)送到每個(gè)屏幕。這允許您在一個(gè)屏幕上顯示時(shí)間和日期信息,同時(shí)在另一個(gè)屏幕上顯示彩色圖形或動(dòng)畫(huà)。這個(gè)項(xiàng)目是一個(gè)令人印象深刻的例子,突出了RP2040-Zero的靈活性和功能,以及使用共享SPI端口的效率。
使用Ardunio_GFX_Library繪制眼部圖形
繪制Gauge樣本(Ms CoPilot幫助完成)
下一步嘗試顯示空格字符,天氣符號(hào)和土耳其字符。
代碼
/*******************************************************************************
* Start of Arduino_GFX setting
*
* Arduino_GFX try to find the settings depends on selected board in Arduino IDE
* Or you can define the display dev kit not in the board list
* Defalult pin list for non display dev kit:
* Arduino Nano, Micro and more: CS: 9, DC: 8, RST: 7, BL: 6, SCK: 13, MOSI: 11, MISO: 12
* ESP32 various dev board : CS: 5, DC: 27, RST: 33, BL: 22, SCK: 18, MOSI: 23, MISO: nil
* ESP32-C3 various dev board : CS: 7, DC: 2, RST: 1, BL: 3, SCK: 4, MOSI: 6, MISO: nil
* ESP32-S2 various dev board : CS: 34, DC: 38, RST: 33, BL: 21, SCK: 36, MOSI: 35, MISO: nil
* ESP32-S3 various dev board : CS: 40, DC: 41, RST: 42, BL: 48, SCK: 36, MOSI: 35, MISO: nil
* ESP8266 various dev board : CS: 15, DC: 4, RST: 2, BL: 5, SCK: 14, MOSI: 13, MISO: 12
* Raspberry Pi Pico dev board : CS: 17, DC: 27, RST: 26, BL: 28, SCK: 18, MOSI: 19, MISO: 16
* RTL8720 BW16 old patch core : CS: 18, DC: 17, RST: 2, BL: 23, SCK: 19, MOSI: 21, MISO: 20
* RTL8720_BW16 Official core : CS: 9, DC: 8, RST: 6, BL: 3, SCK: 10, MOSI: 12, MISO: 11
* RTL8722 dev board : CS: 18, DC: 17, RST: 22, BL: 23, SCK: 13, MOSI: 11, MISO: 12
* RTL8722_mini dev board : CS: 12, DC: 14, RST: 15, BL: 13, SCK: 11, MOSI: 9, MISO: 10
* Seeeduino XIAO dev board : CS: 3, DC: 2, RST: 1, BL: 0, SCK: 8, MOSI: 10, MISO: 9
* Teensy 4.1 dev board : CS: 39, DC: 41, RST: 40, BL: 22, SCK: 13, MOSI: 11, MISO: 12
******************************************************************************/
#include
#include
#include "hardware/adc.h"
Arduino_DataBus *bus = new Arduino_RPiPicoSPI(8 /* DC */, 9 /* CS */, 10 /* SCK */, 11 /* MOSI */, 12 /* MISO */, spi1 /* spi */);
Arduino_GFX *gfx = new Arduino_GC9A01(bus, 28 /* RST */, 0 /* rotation */, true /* IPS */, 240 /* width */, 240 /* height */);
// kinci ekran tanmlamalar
Arduino_DataBus *bus2 = new Arduino_RPiPicoSPI(12 /* DC */, 14 /* CS */, 10 /* SCK */, 11 /* MOSI */, 17 /* MISO */, spi1 /* spi */);
Arduino_GFX *gfx2 = new Arduino_GC9A01(bus2, 29 /* RST */, 0 /* rotation */, true /* IPS */, 240 /* width */, 240 /* height */);
/* More dev device declaration: https://github.com/moononournation/Arduino_GFX/wiki/Dev-Device-Declaration */
/*******************************************************************************
* End of Arduino_GFX setting
******************************************************************************/
void setup(void)
{
#ifdef DEV_DEVICE_INIT
DEV_DEVICE_INIT();
#endif
// Init Display
if (!gfx->begin())
{
Serial.println("gfx->begin() failed!");
}
if (!gfx2->begin())
{
Serial.println("gfx2->begin() failed!");
}
gfx->fillScreen(RGB565_BLACK);
gfx2->fillScreen(RGB565_BLACK);
#ifdef GFX_BL
pinMode(GFX_BL, OUTPUT);
digitalWrite(GFX_BL, HIGH);
#endif
gfx->setCursor(20, 20);
gfx->setTextColor(RGB565_BLACK);
gfx->println("Hello World!");
gfx2->setCursor(25, 25);
gfx2->setTextColor(RGB565_BLACK);
gfx2->println("Merhaba Dunya!");
delay(5000); // 5 seconds
}
void loop()
{
gfx->setCursor(random(gfx->width()), random(gfx->height()));
gfx->setTextColor(random(0xffff), random(0xffff));
gfx->setTextSize(random(6) /* x scale */, random(6) /* y scale */, random(2) /* pixel_margin */);
gfx->println("Helloo!");
gfx2->setCursor(random(gfx2->width()), random(gfx2->height()));
gfx2->setTextColor(random(0xffff), random(0xffff));
gfx2->setTextSize(random(6) /* x scale */, random(6) /* y scale */, random(2) /* pixel_margin */);
gfx2->println("Merhaba!");
delay(2000);
}
本文編譯自hackster.io