Introduction: Talking Clock Bilingual (EN+PT)

The Talking Clock 2 (Bilingual) is the new version of Talking Clock I have published some time ago.

The code was updated to support two languages (English/Portuguese) and new features were introduced into the code:

  • Mode 1: Set the time (hour & minute)
  • Mode 2: The clock talks every minute
  • Mode 3: The clock talks every hour
  • Mode 4: The clock speaks the time when a button is pressed
  • Mode 5: Set the language for English or Portuguese

Note: The language status is stored in Arduino - EEPROM to keep this information even when it is restarted or turned on.

It was introduced as optional a mini amplifier PAM8403 (3W + 3W) for better control of the sound level in the speaker.

I am using only one speaker (one sound channel), but you can add another if you want.

Step 1: Components

  • Arduino UNO R3
  • DFPlayer Mini MP3 Player
  • Display TM1637
  • PAM8403 - Mini Audio Aplifier (3W+3W) - This is optional
  • SD mini - Memory Card
  • Pushbutton Switch
  • Resistor 1k Ohm
  • Speaker 3W
  • Breadboard
  • Jumpers

Note: Details of DFPlayer Mini on:

Step 2: Schematics

Important: It is not recommended to use the USB port as a power source in this project. Connect the Arduino to an external power source of 9V x 1A (or higher) because there are power surges when the speaker is working, causing Arduino instability.

Step 3: The Code & MP3 Files

A SD card must be formatted for FAT32 and a folder named "MP3" must be created.

In MP3 folder are stored all files of voices (74 in total) in English and Portuguese.

In mode 3, when the clock speaks every hour, there is a "church bell" sound that only works between 08:00 and 18:00. This sound is repeated as many times as the hour of that moment.

Note: All files must be named according to pattern "nnnn.mp3", starting in "0000.mp3".

Step 4: DFPlayerMini Library

The library "DFRobotDFPlayerMini" can be found at:

Step 5: Setup

There are 3 push buttons used for the operation with following functions:


Moves to the next operational mode.


Adjust the hour in Setup Mode

Speaks the time in Press Button Mode

Set to Portuguese in Language Mode.


Adjust the minute in Setup Mode

Speaks the time in Press Button Mode

Set to English in Language Mode.

Note: To move to next mode, press the button #1 until the next speech starts (blue LED of DFPlayer is on in this moment).

Epilog Challenge 9

Participated in the
Epilog Challenge 9