• sales

    +86-0755-88291180

ESP32 C3 0.42LCD gif_01 Graphics Test

1、 Create a project folder

2、 Open the arduino IDE

3、 Select Chip

3.1. Click on tools

3.2. Click on board

3.3. Click on esp32 and select esp32-c3

4、 Configure required files

4.1Save, save the file in the folder you created

4.2Place this (sprial_72x40. h file link) file in the folder of the engineering project.


5、Burn Code

#include<Wire.h>

#include<OneBitDisplay.h>

#include<AnimatedGIF.h>

// Compile the GIF file animation into FLASH with the code

#include"spiral_72x40.h"

ONE_BIT_DISPLAY obd;

AnimatedGIF gif;

staticuint8_t*pBuffer;// holds current frame for OLED

#defineDISPLAY_WIDTH72

#defineDISPLAY_HEIGHT40

#ifdefARDUINO_ARCH_MBED

#defineSDA_PIN22

#defineSCL_PIN23

externMbedI2C *pWire;

#else

externTwoWire *pWire;

#defineSDA_PIN5

#defineSCL_PIN6

#endif

voidDrawPixel(intx,inty,uint8_tucColor)

{

uint8_tucMask;

intindex;

if(x >= DISPLAY_WIDTH || y >= DISPLAY_HEIGHT)

return;

ucMask =1<<(y &7);

index = x +((y >>3)* DISPLAY_WIDTH);

if(ucColor)

pBuffer[index] |= ucMask;// set the pixel (white)

else

pBuffer[index] &= ~ucMask;// clear the pixel (black)

}

//

// Called once per scanline as the GIF is decoded

//

voidGIFDraw(GIFDRAW*pDraw)

{

uint8_t*s;

intx, y, iWidth;

staticuint8_tucPalette[256];// thresholded palette

if(pDraw->y==0)// first line, convert palette to 0/1

{

for(x =0; x <256; x++)

{

uint16_tusColor =pDraw->pPalette[x];

intgray =(usColor & 0xf800)>>8;// red

gray +=((usColor & 0x7e0)>>2);// plus green*2

gray +=((usColor & 0x1f)<<3);// plus blue

ucPalette[x] =(gray >>9);// 0->511 = 0, 512->1023 = 1

}

}

y =pDraw->iY+pDraw->y;// current line

iWidth =pDraw->iWidth;

if(iWidth > DISPLAY_WIDTH)

iWidth = DISPLAY_WIDTH;

s =pDraw->pPixels;

if(pDraw->ucDisposalMethod==2)// restore to background color

{

for(x=0; x<iWidth; x++)

{

if(s[x] ==pDraw->ucTransparent)

s[x] =pDraw->ucBackground;

}

pDraw->ucHasTransparency=0;

}

// Apply the new pixels to the main image

if(pDraw->ucHasTransparency)// if transparency used

{

uint8_tc, ucTransparent =pDraw->ucTransparent;

intx;

for(x=0; x < iWidth; x++)

{

c = *s++;

if(c != ucTransparent)

DrawPixel(pDraw->iX+ x, y,ucPalette[c]);

}

}

else

{

s =pDraw->pPixels;

// Translate the 8-bit pixels through the RGB565 palette (already byte reversed)

for(x=0; x<pDraw->iWidth; x++)

DrawPixel(pDraw->iX+ x, y,ucPalette[*s++]);

}

if(pDraw->y==pDraw->iHeight-1)// last line, render it to the display

obd.display();

}/* GIFDraw() */

voidsetup(){

obd.setI2CPins(SDA_PIN, SCL_PIN);

obd.I2Cbegin(OLED_72x40);

obd.allocBuffer();

pBuffer =(uint8_t*)obd.getBuffer();

obd.fillScreen(0);

obd.setFont(FONT_8x8);

//obd.setContrast(40);

obd.print("GIF Demo");

obd.display();

delay(2000);

gif.begin(LITTLE_ENDIAN_PIXELS);

}/* setup() */

voidloop(){

// Loop continuously over the animated sequence

if(gif.open((uint8_t*)spiral_72x40, sizeof(spiral_72x40), GIFDraw))// play the GIF from FLASH storage

{

//    Serial.printf("Successfully opened GIF; Canvas size = %d x %d\n", gif.getCanvasWidth(), gif.getCanvasHeight());

while(gif.playFrame(false,NULL))

{

}

gif.close();

}

}/* loop() */


6.1. Copy the code into the Arduino IDE

6.2. Use a type-c cable to connect the computer to the ESP 32-c3 development board. After successful connection, the serial port will be displayed in the computer management window

6.3Click on Tools in the Arduino IDE, then click on Port and select the serial port Adafruit QT ESP32-C3

6.4Click on Verify

6.5.Click on upload

6.6.The test results are as follows


TAG: Raspberry-Pi-1.54inch-LCD-Display-Touchscreen-configuration-Bookworm-Lite For Pi5 Raspberry Pi Pico 2 RP2350 1.8 inch AMOLED Development Board Display 368×448 TouchScreen Programmable Watch QSPI Changeable Photo Frames Raspberry Pi 24.5 inch Type C/HDMI 2K Display 24.5inch Screen 2560x1440 Computer PC Phone For Xbox/PS4/Switch LCD Screen RV1106 Raspberry Pi Transparent Screen Raspberry Pi 5 RTC charge Raspberry Pi 500 (US) refined personal computer.built into a high-quality Keyboard Industrial Modbus RTU RS485 8-ch 30A High Current Relay Module (E) With Digital Input Raspberry Pi Buzzer MPS2280D Raspberry Pi 5 PCIe to M.2 NVMe Dual SSD Adapter Board HAT Pi5 Double 2280 DeepSeek AI Voice Chat ESP32-S3 Box N16R8 AUDIO Board Support External LCD/Camera AI deepseek Arduino Thermal imaging ESP32-S3 SpotPear Raspberry Pi LCD X1201 Raspberry Pi 5 UPS Board Uninterruptible Power Supply For 18650-Li-Battery (NOT includ) 0.85inch Screen DeepSeek XiaoZhi AI Chat Robot ESP32-S3 1.54 inch LCD N16R8 MUMA Development Board Display Screen Wifi Weather Station TimeClock