• 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 5 PCIe to M.2 Multi Function Adapter Board Supports Dual 4K HDMI Output Arduino 0.96inch RGB OLED Raspberry Pi Pico 2 RP2350 2 inch LCD Capacitive TouchScreen Development Board 240x320 Display QMI8658 6-Axis /OV5640 Camera /SD /Battery Port Luckfox PicoKVM KVM NanoKVM RV1106 Pico Remote Control /Power /Desktop Maintenance Server HDMI USB For PiKVM Raspberry Pi How to Use Product ROS2 RP2040 Camera 1.46inch LCD TouchScreen Display 412×412 SPD2010 For Arduino /Raspberry Pi /ESP32 /Pico /STM32 ESP32-S3 AI RLCD Total Reflection Screen 4.2 inch Development Board Deepseek Computer AI Deepseek Mechanical Voice Keyboard Linux 10x0.85inch LCD Screen Customize keys + 2.01 inch Secondary Display Modbus RTU X1002 Raspberry Pi 5 PCIe to M.2 NVMe SSD Adapter Board HAT Pi5 2280 Raspberry Pi 7 inch CAPLCD 1280x800 Capacitive TouchScreen HDMI/Type C Display Monitor For Computer mini PC LuckFox Pico Raspberry Pi 5 SSD ESP32 S3 Development Board 2.1 inch Round Rotary Knob LCD Smart Screen 2.1inch Display 480x480 LVGL for Arduino 128x128 ESP32 S3 AI Voice Chat Robot Mini Development Board DeepSeek USB IR Infrared Thermal Imaging Camera C 45°/88° 160x120 For Phone/PC High Temp Warning/Take Photo /Recording video Raspberry Pi 5 PCIe to SATA Expansion Board with EEPROM HAT+ ESP32 MLX90640