Skip to content
โ† Back to Electronics
โšก electronics July 25, 2026 by Nitvi ๐Ÿ“– 3 min read

Arduino LED Matrix Emojis โ€” Heart โค๏ธ and Smile ๐Ÿ˜Š!

Show emoji pictures on the Arduino UNO R4 WiFi built-in LED matrix. No extra components needed!

Arduino LED Matrix Emojis โ€” Heart โค๏ธ and Smile ๐Ÿ˜Š!

My Arduino UNO R4 WiFi has a built-in 12ร—8 LED matrix. Today I used it to show two of my favorite emojis:

โค๏ธ Heart ๐Ÿ˜Š Smiley face

They blink one after another, like a tiny digital locket! ๐Ÿ’

What you need

  • Arduino UNO R4 WiFi
  • USB cable

Still zero extra components! ๐Ÿ™Œ

The code

/*
  Arduino UNO R4 WiFi LED Matrix โ€” Heart and Smile
  Shows a heart emoji (โค๏ธ) and a smiley face (๐Ÿ˜Š) on the built-in 12x8 LED matrix.
*/

#include "Arduino_LED_Matrix.h"

ArduinoLEDMatrix matrix;

// 8 rows x 12 columns, values: 0 = off, 255 = full brightness
uint8_t frame[8][12];

// Heart shape frame
uint8_t heart[8][12] = {
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 0},
  {0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0},
  {0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0},
  {0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0},
  {0, 0, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 255, 255, 0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
};

// Smiley face frame
uint8_t smiley[8][12] = {
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 0},
  {0, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  {0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0},
  {0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0},
  {0, 0, 0, 255, 255, 255, 255, 255, 255, 0, 0, 0},
  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
};

void setup() {
  Serial.begin(9600);
  matrix.begin();
  Serial.println("Heart and Smile LED Matrix started!");
}

void loop() {
  // Show heart for 1.5 seconds
  memcpy(frame, heart, sizeof(heart));
  matrix.loadPixels(&frame[0][0], 8 * 12);
  delay(1500);

  // Show smiley for 1.5 seconds
  memcpy(frame, smiley, sizeof(smiley));
  matrix.loadPixels(&frame[0][0], 8 * 12);
  delay(1500);
}

How I uploaded it

arduino-cli board list
arduino-cli compile --fqbn arduino:renesas_uno:unor4wifi MatrixEmoji
arduino-cli upload -p /dev/cu.usbmodem9888E00970202 --fqbn arduino:renesas_uno:unor4wifi MatrixEmoji

On Windows, your port will look like COM3 or COM4.

How it works

PartWhat it does
matrix.begin()Starts the LED matrix
heart[8][12]Stores the heart picture as 96 brightness values
smiley[8][12]Stores the smiley picture as 96 brightness values
memcpy(frame, heart, ...)Copies the picture into the active frame
matrix.loadPixels(&frame[0][0], 8 * 12)Sends the picture to the matrix

Try changing it!

  • Swap the emojis โ€” show a star โญ or music note ๐ŸŽต
  • Make them fade in and out using PWM-style brightness values
  • Add a third emoji like a thumbs up ๐Ÿ‘
  • Make the heart beat faster by changing the delay times

Whatโ€™s next?

I want to try scrolling text next โ€” maybe my name โ€œNITVIโ€ moving across the matrix! Or maybe a tiny reaction meter that shows different emojis based on sensor input.

See my other LED matrix post:

Share this post: ๐• Share f Share