Yeah welcome back in this page
hahaha, now saya akan memposting project yang sebenernya sudah saya buat cukup
lama tentang jam digital but jam digital yang sekarang saya buat ini ada
penambahan dari segi update programnya yang terbaru V2 ada penambahan fitur
alarmnya bisa bunyi gitu deh akan tetapi masih ada beberapa kekurangan dari
segi programnya agar bisa dikatakan sempurna, tapi untuk saat ini sudah bisa
saya bilang cukup memuaskan dilihat dari segi fungsinya sebagai jam. Before
saya melanjutkannya lebih deep saya akan memperlihatkan skematik rangkaian dari
jam ini yang terdiri dari rangkaian control dan rangkaian segmentnya. Untuk
rangkaian segmentnya saya menyusunnya sendiri dengan menggunakan butiran LED
yang tersusun membentuk seven segment cadazzz.....
Rangkaian kontrol
menggunakan ATMega238
Rangkaian Seven
Segmentnya
Sebenernya kalian bisa juga
mengganti seven segment yang saya buat ini dengan sevensegment pabrikan yang
ukurannya besar juga, tapi saya pribadi lebih puas kalo project yang saya buat
itu semua full handmade ada kesan tersendiri gitu deh.. wkwkw dan kalo jadi
kaya gini ntar
Nah untuk listing programnya sebagai berikut disimak dengan baik baik ya...
/* Program Jam Digital
* Dibuat oleh Dhimas
Prayoga
* www.projectsolderku.blogspot.com
* IG :
@projectsolderku
*/
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;
#define D1 8
#define D2 9
#define D3 10
#define D4 11
#define D5 12
#define aPin 0
#define bPin 1
#define cPin 2
#define dPin 3
#define ePin 4
#define fPin 5
#define gPin 6
#define pPin 7
#define buzzer 13
int angka1;
int angka2;
int angka3;
int angka4;
void setup() {
Wire.begin();
RTC.begin();
if (!
RTC.isrunning()) {
RTC.adjust(DateTime(__DATE__, __TIME__));
}
pinMode(aPin,
OUTPUT);
pinMode(bPin,
OUTPUT);
pinMode(cPin,
OUTPUT);
pinMode(dPin,
OUTPUT);
pinMode(ePin,
OUTPUT);
pinMode(fPin,
OUTPUT);
pinMode(gPin,
OUTPUT);
pinMode(pPin,
OUTPUT);
pinMode(D1,OUTPUT);
pinMode(D2,OUTPUT);
pinMode(D3,OUTPUT);
pinMode(D4,OUTPUT);
pinMode(D5,OUTPUT);
pinMode(buzzer,OUTPUT);
tone(buzzer,2500);
delay(200);
noTone(buzzer);
delay(200);
tone(buzzer,2500);
delay(200);
noTone(buzzer);
delay(200);
digitalWrite(D5,HIGH);
}
void loop(){
DateTime now =
RTC.now();
int jam=now.hour();
int
menit=now.minute();
int
detik=now.second() % 2;
if ( jam == 7
&& menit == 55 && detik <= 2 ) { // alarm setting jam x yang
diinginkan selama +- 1 menit
for (int i=0;
i<=15; i++){
tone(buzzer,2500); digitalWrite(pPin,HIGH); delay(200);
noTone(buzzer);digitalWrite(pPin,LOW); delay(200);
}
}
angka1= jam / 10;
angka2= jam % 10;
angka3= menit / 10;
angka4= menit % 10;
Number(1,angka1);
delay(2);
bersih();
delay(1);
Number(2,angka2);
delay(2);
bersih();
delay(1);
Number(3,angka3);
delay(2);
bersih();
delay(1);
Number(4,angka4);
delay(2);
bersih();
delay(1);
digitalWrite(D5,HIGH);
if (detik == 0) {
digitalWrite(pPin,HIGH);
delay(1);
}
if (detik =! 0) {
digitalWrite(pPin,LOW);
delay(1);
}
}
void Number(int digit,int angka){
switch (digit) {
case 1:
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
digitalWrite(D3,LOW);
digitalWrite(D4,LOW);
digitalWrite(D5,LOW);
break;
case 2:
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
digitalWrite(D3,LOW);
digitalWrite(D4,LOW);
digitalWrite(D5,LOW);
break;
case 3:
digitalWrite(D1,LOW);
digitalWrite(D2,LOW);
digitalWrite(D3,HIGH);
digitalWrite(D4,LOW);
digitalWrite(D5,LOW);
break;
case 4:
digitalWrite(D1,LOW);
digitalWrite(D2,LOW);
digitalWrite(D3,LOW);
digitalWrite(D4,HIGH);
digitalWrite(D5,LOW);
break;
}
switch (angka){
case 0:
digitalWrite( aPin, HIGH);
digitalWrite( bPin, HIGH);
digitalWrite( cPin, HIGH);
digitalWrite( dPin, HIGH);
digitalWrite( ePin, HIGH);
digitalWrite( fPin, HIGH);
digitalWrite(
gPin, LOW);//
break;
case 1:
digitalWrite( aPin, LOW);
digitalWrite( bPin, HIGH);//
digitalWrite( cPin, HIGH);//
digitalWrite( dPin, LOW);
digitalWrite( ePin, LOW);
digitalWrite( fPin, LOW);
digitalWrite( gPin, LOW);
break;
case 2:
digitalWrite( aPin, HIGH);
digitalWrite( bPin, HIGH);
digitalWrite( cPin, LOW);//
digitalWrite( dPin, HIGH);
digitalWrite( ePin, HIGH);
digitalWrite( fPin, LOW);//
digitalWrite( gPin, HIGH);
break;
case 3:
digitalWrite( aPin, HIGH);
digitalWrite( bPin, HIGH);
digitalWrite( cPin, HIGH);
digitalWrite(
dPin, HIGH);
digitalWrite( ePin, LOW);//
digitalWrite( fPin, LOW);//
digitalWrite( gPin, HIGH);
break;
case 4:
digitalWrite( aPin, LOW);
digitalWrite( bPin, HIGH);
digitalWrite( cPin, HIGH);
digitalWrite( dPin, LOW);//
digitalWrite( ePin, LOW);//
digitalWrite( fPin, HIGH);
digitalWrite( gPin, HIGH);
break;
case 5:
digitalWrite( aPin, HIGH);
digitalWrite( bPin, LOW);//
digitalWrite( cPin, HIGH);
digitalWrite( dPin, HIGH);
digitalWrite( ePin, LOW);//
digitalWrite( fPin, HIGH);
digitalWrite( gPin, HIGH);
break;
case 6:
digitalWrite(
aPin, HIGH);
digitalWrite( bPin, LOW);//
digitalWrite( cPin, HIGH);
digitalWrite( dPin, HIGH);
digitalWrite( ePin, HIGH);
digitalWrite( fPin, HIGH);
digitalWrite( gPin, HIGH);
break;
case 7:
digitalWrite( aPin, HIGH);
digitalWrite( bPin, HIGH);
digitalWrite( cPin, HIGH);
digitalWrite( dPin, LOW);
digitalWrite( ePin, LOW);
digitalWrite( fPin, LOW);
digitalWrite( gPin, LOW);
break;
case 8:
digitalWrite( aPin, HIGH);
digitalWrite( bPin, HIGH);
digitalWrite( cPin, HIGH);
digitalWrite( dPin, HIGH);
digitalWrite( ePin, HIGH);
digitalWrite( fPin, HIGH);
digitalWrite( gPin, HIGH);
break;
case 9:
digitalWrite( aPin, HIGH);
digitalWrite( bPin, HIGH);
digitalWrite( cPin, HIGH);
digitalWrite( dPin, HIGH);
digitalWrite(
ePin, LOW);
digitalWrite( fPin, HIGH);
digitalWrite( gPin, HIGH);
break;
}
}
void bersih() {
digitalWrite( aPin, LOW);
digitalWrite( bPin, LOW);//
digitalWrite( cPin, LOW);//
digitalWrite( dPin, LOW);
digitalWrite( ePin, LOW);
digitalWrite( fPin, LOW);
digitalWrite( gPin, LOW);
//digitalWrite( pPin, LOW);
}
Nah itu dia full project jam
digital dengan seven segment yang saya buat, buat kalian yang mau buat project
like saya ini tenang saja kalian tinggal download saja disini semua file sudah
saya lampirkan.
Akhir kata saya ucapkan tenkqiu
bagi para pembaca semoga tulisan saya dapat bermanfaat dan ini video demonya, see you next project :D
Komentar
Posting Komentar