RTC Clock Bangla Tutorial | Easily Make Real-Time Clock with Arduino and DS3231 RTC Module
Easily Make Real-Time Clock with Arduino and DS3231 RTC Module | RTC Clock Bangla Tutorial
📌JLCPCB $2 for 5 pcs 2layer pcb prototype/ 4 layer pcb prototype : https://jlcpcb.com
The PCB board will be needed to make the trainer board like the picture above. According to the above circuit, you can build a trainer on the Vero board. I made my PCB board from http://www.jlcpcb.com. Gerber file is required to order on this website. If you want to get the Gerber file of this PCB, enter this link https://youtu.be/tpIZDV5NqpI. And if you want to design a PCB yourself, then go. at http://easyeda.com.
In this blog, I am going to share with you How to make an RTC Digital Clock using Atmega328p IC or Arduino Uno Board.
The Major Topics Covered in This Video: ------------------------------------------------------------------ 🔥 How do I make an Arduino digital clock? 🔥 How do you make a digital clock? 🔥 What is the Arduino clock? 🔥 Does Arduino have a built-in clock?
Arduino Programming Code
_____________________________________________________________________________________________________________________________________________________________________
// include the library
#include <LiquidCrystal.h>
// initialize the interface pins
LiquidCrystal lcd(2,3,4,5,6,7);
int s,m,h,a,d,state,state1,state2,dg,cnt;
// the 8 arrays that form each segment of the custom numbers
byte bar1[8] =
{
B11100,
B11110,
B11110,
B11110,
B11110,
B11110,
B11110,
B11100
};
byte bar2[8] =
{
B00111,
B01111,
B01111,
B01111,
B01111,
B01111,
B01111,
B00111
};
byte bar3[8] =
{
B11111,
B11111,
B00000,
B00000,
B00000,
B00000,
B11111,
B11111
};
byte bar4[8] =
{
B11110,
B11100,
B00000,
B00000,
B00000,
B00000,
B11000,
B11100
};
byte bar5[8] =
{
B01111,
B00111,
B00000,
B00000,
B00000,
B00000,
B00011,
B00111
};
byte bar6[8] =
{
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B11111,
B11111
};
byte bar7[8] =
{
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00111,
B01111
};
byte bar8[8] =
{
B11111,
B11111,
B00000,
B00000,
B00000,
B00000,
B00000,
B00000
};
void setup()
{
// assignes each segment a write number
lcd.createChar(1,bar1);
lcd.createChar(2,bar2);
lcd.createChar(3,bar3);
lcd.createChar(4,bar4);
lcd.createChar(5,bar5);
lcd.createChar(6,bar6);
lcd.createChar(7,bar7);
lcd.createChar(8,bar8);
state=1;
state1=1;
state2=1;
// sets the LCD's rows and colums:
lcd.begin(16, 2);
pinMode(8,INPUT_PULLUP);
pinMode(9,INPUT_PULLUP);
pinMode(10,INPUT_PULLUP);
s=0;
m=0;
h=0;
a=0;
}
void custom0(int col)
{ // uses segments to build the number 0
lcd.setCursor(col, 0);
lcd.write(2);
lcd.write(8);
lcd.write(1);
lcd.setCursor(col, 1);
lcd.write(2);
lcd.write(6);
lcd.write(1);
}
void custom1(int col)
{
lcd.setCursor(col,0);
lcd.write(32);
lcd.write(32);
lcd.write(1);
lcd.setCursor(col,1);
lcd.write(32);
lcd.write(32);
lcd.write(1);
}
void custom2(int col)
{
lcd.setCursor(col,0);
lcd.write(5);
lcd.write(3);
lcd.write(1);
lcd.setCursor(col, 1);
lcd.write(2);
lcd.write(6);
lcd.write(6);
}
void custom3(int col)
{
lcd.setCursor(col,0);
lcd.write(5);
lcd.write(3);
lcd.write(1);
lcd.setCursor(col, 1);
lcd.write(7);
lcd.write(6);
lcd.write(1);
}
void custom4(int col)
{
lcd.setCursor(col,0);
lcd.write(2);
lcd.write(6);
lcd.write(1);
lcd.setCursor(col, 1);
lcd.write(32);
lcd.write(32);
lcd.write(1);
}
void custom5(int col)
{
lcd.setCursor(col,0);
lcd.write(2);
lcd.write(3);
lcd.write(4);
lcd.setCursor(col, 1);
lcd.write(7);
lcd.write(6);
lcd.write(1);
}
void custom6(int col)
{
lcd.setCursor(col,0);
lcd.write(2);
lcd.write(3);
lcd.write(4);
lcd.setCursor(col, 1);
lcd.write(2);
lcd.write(6);
lcd.write(1);
}
void custom7(int col)
{
lcd.setCursor(col,0);
lcd.write(2);
lcd.write(8);
lcd.write(1);
lcd.setCursor(col, 1);
lcd.write(32);
lcd.write(32);
lcd.write(1);
}
void custom8(int col)
{
lcd.setCursor(col, 0);
lcd.write(2);
lcd.write(3);
lcd.write(1);
lcd.setCursor(col, 1);
lcd.write(2);
lcd.write(6);
lcd.write(1);
}
void custom9(int col)
{
lcd.setCursor(col, 0);
lcd.write(2);
lcd.write(3);
lcd.write(1);
lcd.setCursor(col, 1);
lcd.write(7);
lcd.write(6);
lcd.write(1);
}
void printNumber(int value, int col) {
if (value == 0) {
custom0(col);
} if (value == 1) {
custom1(col);
} if (value == 2) {
custom2(col);
} if (value == 3) {
custom3(col);
} if (value == 4) {
custom4(col);
} if (value == 5) {
custom5(col);
} if (value == 6) {
custom6(col);
} if (value == 7) {
custom7(col);
} if (value == 8) {
custom8(col);
} if (value == 9) {
custom9(col);
}
}
void loop()
{
if(!digitalRead(8)&state==1){
cnt++;
state=0;
if(cnt>3){
cnt=0;
}
}else if(digitalRead(8)&state==0){
state=1;
}
if(!digitalRead(9)&&state1==1){
dg=1;
state1=0;
}else if(digitalRead(9)&state1==0){
state1=1;
}
if(!digitalRead(10)&&state2==1){
dg=-1;
state2=0;
}else if(digitalRead(10)&state2==0){
state2=1;
}
switch(cnt){
case 1:
m=m+dg;
dg=0; if(m>59){
m=59;}
if(m<0){
m=0;}
break;
case 2:
h=h+dg;
dg=0;if(h>11){
h=11;}
if(h<0){
h=0;}
break;
case 3:
if(dg==1){
a=1;
dg=0;}
if(dg==-1){
a=0;
dg=0;}
break;
}
if(s>59){
s=0;
m++;
if(m>59){
m=0;
h++;
if(h>11){
h=0;
a=!a;
}
}
}
d=h%10;
printNumber(d, 3);
d=h/10;
printNumber(d, 0);
d=m%10;
printNumber(d, 10);
d=m/10;
printNumber(d, 7);
lcd.setCursor(14, 0);
if(a){
lcd.print("AM");
}else{
lcd.print("PM");
}
if(cnt==0){
s++;
lcd.setCursor(6, 0);
lcd.print(" ");
lcd.setCursor(6, 1);
lcd.print(" ");
delay(500);
lcd.setCursor(6, 0);
lcd.print(".");
lcd.setCursor(6, 1);
lcd.print(".");
delay(500);
}
}
----------------------------------------------------------------------------------------------------------
🇧🇩 🔥🔥Visit My Programming Tutorial Channel: https://youtube.com/channel/UCeVGeehSnnf-X_FpAsIF3OQ Please subscribe to my channel. Subscription link here: https://goo.gl/JDjNeq 🔥 All Documents Download Link: https://drive.google.com/drive/folders/1znhORU69oAL1jmnRtnVFKBXxo9uijdo8?usp=sharing All social link Facebook: https://bit.ly/2SAbptO Instagram: https://bit.ly/2MWRobw Estiak Khan Jhuman Facebook Link: https://bit.ly/2MVL1oM Youtube Link: https://bit.ly/2US5spz
Nice post. I will try
ReplyDeleteVisit for all technology news!