Jam Digital Seven Segment Dengan Alarm


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