Annexure 12
Annexure 12
Annexure 1:
Micro-Project Proposal
1
[Type here] [Type here] [Type here]
2
[Type here] [Type here] [Type here]
4) Action Plan:
2. Pallavi
lomte
3. nandani
patil
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
6
[Type here] [Type here] [Type here]
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.
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] = "";
{
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")
};
return(psz);
10
[Type here] [Type here] [Type here]
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);
}
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.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]
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.displayReset(0);
16
[Type here] [Type here] [Type here]
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]
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.
Contribution:
19
[Type here] [Type here] [Type here]
The matrix will show the current time in HH:MM format (like 12:45), and
depending on your setup, it may:
20
[Type here] [Type here] [Type here]
21
[Type here] [Type here] [Type here]
22
[Type here] [Type here] [Type here]
23