使用RP2040-Zero和GC9A01的演示项目来向每个屏幕发送不同的图像
扫描二维码
随时随地手机看文章
RP2040-2x GC9A01显示在共享SPI显示位图眼睛和绘制眼睛绘制仪表使用多语言和符号字体
这个使用RP2040-Zero和两个GC9A01显示器的演示项目侧重于向每个屏幕发送不同的图像。通过利用SPI端口的共享使用,两个显示器都连接到RP2040-Zero,允许有效的通信。建立连接后,使用适当的代码将不同的数据发送到每个屏幕。这允许您在一个屏幕上显示时间和日期信息,同时在另一个屏幕上显示彩色图形或动画。这个项目是一个令人印象深刻的例子,突出了RP2040-Zero的灵活性和功能,以及使用共享SPI端口的效率。
使用Ardunio_GFX_Library绘制眼部图形
绘制Gauge样本(Ms CoPilot帮助完成)
下一步尝试显示空格字符,天气符号和土耳其字符。
代码
/*******************************************************************************
* 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