0% found this document useful (0 votes)
21 views23 pages

Annexure 12

The micro-project aims to design and build a digital LED clock using an Arduino Nano, enhancing skills in microcontroller programming and real-time applications. The project involves defining specifications, studying components, circuit design, coding, and testing, with a structured action plan and team responsibilities outlined. Expected outcomes include improved practical electronics skills, teamwork, and the potential for future automation applications.

Uploaded by

Niyati Khandare
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views23 pages

Annexure 12

The micro-project aims to design and build a digital LED clock using an Arduino Nano, enhancing skills in microcontroller programming and real-time applications. The project involves defining specifications, studying components, circuit design, coding, and testing, with a structured action plan and team responsibilities outlined. Expected outcomes include improved practical electronics skills, teamwork, and the potential for future automation applications.

Uploaded by

Niyati Khandare
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

[Type here] [Type here] [Type here]

Annexure 1:
 Micro-Project Proposal

1) Aims/Benefits of the Micro-Project (30-50 words):


The aim of this micro-project is to design and build a digital LED clock using an
Arduino Nano microcontroller. This project will enhance understanding of
timekeeping modules, microcontroller programming, and interfacing with LED
displays. It also helps in developing hands-on skills with embedded systems
and real-time applications.

2) Course Outcomes Addressed:


a) Understand and apply the fundamentals of microcontrollers and their
programming.
b) Interface electronic components with microcontrollers.
c) Develop real-time embedded system applications.
d) Work effectively in a team and manage project execution from planning to
reporting.

1
[Type here] [Type here] [Type here]

3) Proposed Methodology (100–200 words):


The project will begin with defining the specifications of the LED clock, such as
displaying hours, minutes, and seconds in 24-hour format. We will study the
Arduino Nano microcontroller and its compatibility with real-time clock (RTC)
modules like DS3231 and 7-segment LED displays. Next, we will create a circuit
diagram and write a program using Arduino IDE to control the display of time
in real-time. The Arduino Nano will fetch time data from the RTC module and
update the LED display accordingly. After coding and wiring, the prototype will
be tested and calibrated for accuracy. The final version will be assembled on a
PCB or breadboard for demonstration. Team responsibilities will be divided
among research, programming, circuit assembly, and documentation.

2
[Type here] [Type here] [Type here]

4) Action Plan:

Sr.no Details of Planned Planned Name of


activity start date finish date responsible
team
members
1.
Project selection, 23/02/2025 01/03/2025
and component 1.sandhya
list preparation Deshmukh

2. Pallavi
lomte

3. nandani
patil

Study of Arduino 05/03/2025 11/03/2025 1.sandhya


2. nano, Rtc Deshmukh
module,and LED
display
2. Pallavi
lomte

3. nandani
patil

3
[Type here] [Type here] [Type here]

1.sandhya
Circuit design 15/03/2025 21/03/2025 Deshmukh
3. and code
development
2. Pallavi
lomte

3. nandani
patil

1.sandhya
Prototype 23/03/2025 29/03/2025 Deshmukh
4. building and
initial testing
2. Pallavi
lomte

3. nandani
patil

1.sandhya
Deshmukh
Debugging and 30/03/2025 03/04/2025
refinement
5.
2. Pallavi
lomte

3. nandani
patil

4
[Type here] [Type here] [Type here]

1.sandhya
Deshmukh
Final 04/04/2025 09/04/2025
demonstration
6.
and 2. Pallavi
documentation lomte
preparations

3. nandani
patil

5
[Type here] [Type here] [Type here]

5. resources required

.no Sr Resources Resistors quantity


required
1. Arduino Nano ATmega 328p-
based
microcontroller 1
board
2. RTC module DS3231 RTC 1
module
3. Matrix module 8*8 led display 1
4. Jumper wires - 10
5. Laptop with For coading and 1
Arduino IDE uploading the
program

6
[Type here] [Type here] [Type here]

Names of Team Members with Roll Nos.

1.Sandhya Deshmukh 3211


2. Pallavi lomte 3220
3. Nandani patil 3222

Name of guide
M.R .Shaikh

7
[Type here] [Type here] [Type here]

Annexure-II

Title of Micro-Project:
LED Clock using Arduino Nano

1) Rationale:
The project demonstrates a practical application of microcontrollers and real-
time systems. It helps in understanding the basics of digital electronics,
embedded programming, and hardware-software integration through the
creation of a functional LED clock.

2) Aims/Benefits of the Micro-Project:

 Develop an understanding of real-time clocks and digital displays.

 Learn how to program and interface Arduino with external modules.

 Improve practical electronics assembly and testing skills.

 Strengthen teamwork, documentation, and presentation abilities.

8
[Type here] [Type here] [Type here]

Code:

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include "Font_Data.h"
#include <DS3231.h>
#include <Wire.h>
DS3231 Clock;

bool Century=false;
bool h12;
bool PM;
byte dd,mm,yyy;
uint16_t h, m, s;

#define MAX_DEVICES 4
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
MD_Parola P = MD_Parola(HARDWARE_TYPE,CS_PIN,
MAX_DEVICES);
#define SPEED_TIME 75
#define PAUSE_TIME 0

9
[Type here] [Type here] [Type here]

#define MAX_MESG 20

char szTime[9];
char szMesg[MAX_MESG+1] = "";

uint8_t degC[] = { 6, 3, 3, 56, 68, 68, 68 };


uint8_t degF[] = { 6, 3, 3, 124, 20, 20, 4 };

char *mon2str(uint8_t mon, char *psz, uint8_t len)

{
static const __FlashStringHelper* str[] =
{
F("Jan"), F("Feb"), F("Mar"), F("Apr"),
F("May"), F("Jun"), F("Jul"), F("Aug"),
F("Sep"), F("Oct"), F("Nov"), F("Dec")
};

strncpy_P(psz, (const char PROGMEM *)str[mon-1], len);


psz[len] = '\0';

return(psz);

10
[Type here] [Type here] [Type here]

char *dow2str(uint8_t code, char *psz, uint8_t len)


{
static const __FlashStringHelper* str[] =
{
F("Sunday"), F("Monday"), F("Tuesday"),
F("Wednesday"), F("Thursday"), F("Friday"),
F("Saturday"), F("Sunday")
};

strncpy_P(psz, (const char PROGMEM *)str[code-1], len);


psz[len] = '\0';

return(psz);
}
void getTime(char *psz, bool f = true)
{
s = Clock.getSecond();
m = Clock.getMinute();
sprintf(psz, "%02d%c%02d", h, (f ? ':' : ' '), m);
if (Clock.getHour(h12,PM)>=13 || Clock.getHour(h12,PM)==0)
{
h = Clock.getHour(h12,PM) - 12;

11
[Type here] [Type here] [Type here]

}
else
{
h = Clock.getHour(h12,PM);
}

void getDate(char *psz)


{
char szBuf[10];

dd=Clock.getDate();
mm=Clock.getMonth(Century);
yyy=Clock.getYear();
sprintf(psz, "%d %s %04d",dd , mon2str(mm, szBuf, sizeof(szBuf)-
1),(yyy + 2000));
}

void setup(void)
{
P.begin(2);
P.setInvert(false);
Wire.begin();
12
[Type here] [Type here] [Type here]

P.setZone(0, MAX_DEVICES-4, MAX_DEVICES-1);

P.setZone(1, MAX_DEVICES-4, MAX_DEVICES-1);


P.displayZoneText(1, szTime, PA_CENTER, SPEED_TIME,
PAUSE_TIME, PA_PRINT, PA_NO_EFFECT);

P.displayZoneText(0, szMesg, PA_CENTER, SPEED_TIME,


0,PA_PRINT , PA_NO_EFFECT);

P.addChar('$', degC);
P.addChar('&', degF);

}
void loop(void)
{
static uint32_t lastTime = 0;
static uint8_t display = 0;
static bool flasher = false;

P.displayAnimate();

if (P.getZoneStatus(0))
{
switch (display)

13
[Type here] [Type here] [Type here]

{
case 0:
P.setPause(0,1000);
P.setTextEffect(0, PA_MESH, PA_BLINDS);
display++;
dtostrf(Clock.getTemperature(), 3, 1, szMesg);
strcat(szMesg, "$");

break;

case 1:
P.setTextEffect(0, PA_OPENING, PA_GROW_DOWN);
display++;
dtostrf((1.8 *Clock.getTemperature() )+32, 3, 1, szMesg);
strcat(szMesg, "&");

break;

case 2:

P.setFont(0, numeric7Seg);

14
[Type here] [Type here] [Type here]

P.setTextEffect(0, PA_PRINT, PA_NO_EFFECT);


P.setPause(0,0);

if (millis() - lastTime >= 1000)


{
lastTime = millis();
getTime(szMesg, flasher);
flasher = !flasher;
}
if(s==00&& s<=30){
display++;
P.setTextEffect(0, PA_PRINT, PA_SCROLL_UP);
}

break;

case 3:

P.setFont(0,nullptr);
P.setTextEffect(0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
display++;
dow2str(Clock.getDoW()+1, szMesg, MAX_MESG); // Added +1
or +2 to get correct Day of Week
15
[Type here] [Type here] [Type here]

break;
default:

P.setTextEffect(0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);


display = 0;
getDate(szMesg);
break;
}

P.displayReset(0);

16
[Type here] [Type here] [Type here]

3) Course Outcomes Addressed:


a) Gain hands-on experience with microcontroller-based systems.
b) Learn interfacing of components like LED displays and RTC modules.
c) Design and develop real-time embedded applications.
d) Present and document technical work effectively.

4) Literature Review:
We referred to official Arduino Nano documentation, tutorials on interfacing
DS3231 RTC modules, and open-source projects on LED clocks. We also studied
the working principles of 7-segment displays and time libraries like RTCLib.

17
[Type here] [Type here] [Type here]

Actual Methodology Followed:

1. Finalized the project idea and researched required components.

2. Created a schematic and sourced Arduino Nano, RTC, and LED display.

3. Wrote and uploaded Arduino code using RTCLib to fetch and display time.

4. Assembled the components on a breadboard and tested the circuit.

5. Debugged issues in code and wiring for consistent time display.

6. Documented findings, results, and prepared final presentation.

Contribution:

Member 1: Hardware assembly and documentation


Pallavi lomte
18
[Type here] [Type here] [Type here]

Member 2: Coding and RTC interfacing


Sandhya deshmukh
Member 3: Testing, debugging, and presentation design
Nandini patiil
6) Actual Resources Used

.no Sr Resources Resistors quantity


required
1. Arduino Nano ATmega 328p-
based
microcontroller 1
board
2. RTC module DS3231 RTC 1
module
3. Matrix module 8*8 led display 1
4. Jumper wires - 10
5. Laptop with For coading and 1
Arduino IDE uploading the
program

19
[Type here] [Type here] [Type here]

7) Outputs of the Micro-Projects:

What You’ll See on the LED Matrix Display:

The matrix will show the current time in HH:MM format (like 12:45), and
depending on your setup, it may:

Scroll the time across the display

Show it statically (and update every second/minute)

Display a blinking colon (:) between hours and minutes

20
[Type here] [Type here] [Type here]

8) Skill Developed / Learning Outcome:

Interfacing and programming Arduino Nano

Working with RTC and LED display modules

Circuit debugging and testing

Project management and collaboration

9) Applications of this Micro-Project:

Can be used in classrooms, homes, or offices as a low-cost digital clock

Educational tool for teaching embedded systems

Base concept for future automation or smart home projects

21
[Type here] [Type here] [Type here]

22
[Type here] [Type here] [Type here]

23

You might also like