Digital Watch with Seven Segments Using Arduino UNO

on Thursday 16 January 2014
Assalamualaikum .... 
udah lama nggak nongol di blog. Bukan karna sombong, tapi perkara banyak tugas jadinya jarang online hahaha. Saya mau ngebagi ilmu yang sudah saya plajari dari senior-senior saya :) tentang jam digital seven segments. 
oke langsung saja. ini dia langkah-langkah untuk membuat jam digital seven segments.

Tujuan 

  • Mampu mempergunakan fitur timer pada mikrokontroller untuk membuat jam digital yang sederhana.
  • Menyelesaikan project mikrokontroller

Peralatan

Arduino UNO



Resistor 12K
Single Seven Segment Anoda
PCB Polos

Pin Header Female nd Male
Percobaan
Pada  proyek  ini  akan  dibuat  program  sederhana  yang  berfungsi sebagai  jam  digital  dengan memanfaatkan  fitur  timer.one pada mikrokontroller. Timer.one  akan  dikonfigurasi  sehingga  terjadi overflow  setiap  1  detik.  Tiap timer  terjadi  overflow,  variable  detik,  menit,  dan  jam  akan  di-update nilainya. Nilai variable tsb akan ditampilkan pada seven segments.

Prosedur
1.  Rangkailah rangkaian pada gambar  dibawah ini dengan menggunakan aplikasi ISIS.
Rangkaian Jam digitalSeven Segments
2. Tuliskan  sintaks  program  berikut  ini,kemudian upload program ke system minimum arduino.
//#include <SoftwareSerial.h>
#include <TimerOne.h>

//SoftwareSerial mySerial(9, 8); // RX, TX
 //Dgfedcba
char angka[10]={0b11000000,0b11111001,0b10100100,0b10110000,0b10011001,0b10010010,0b10000011,0b11111000,0b10000000,0b10010000}; // konfigurasi angka 0-9
long int x;
int jam,menit,detik;
int q,w,e,r,t,y ;

void setup()
{
  DDRD=0xff;
  DDRC=0x3f;
  PORTD=0xff;
  Timer1.initialize(200000); // hitung conter setiap 0.02 ms
  Timer1.attachInterrupt(hitungCounter);
//  mySerial.begin(9600);
  delay(20);
}

void loop()
{
//  if (mySerial.available())
  {
//    q=mySerial.read(); w=mySerial.read();
//    e=mySerial.read(); r=mySerial.read();
//    t=mySerial.read(); y=mySerial.read();
    
  //  mySerial.write(q); mySerial.write(w);
  //  mySerial.write(e); mySerial.write(r);
  //  mySerial.write(t); mySerial.write(y);
   // mySerial.end();
    //  mySerial.begin(9600); 
  }
    
  jam=x/3600; // mySerial.print(jam);mySerial.print("aku");
  menit=(x%3600)/60;  //mySerial.print(menit);mySerial.print("mau");
  detik=(x%3600)%60; //mySerial.println(detik);mySerial.print("itu");
  sevensegment();

}

void hitungCounter()
{
  x++;
  if(x==86400)x=0;
}

void sevensegment()
{
 PORTD=angka[detik/10]; digitalWrite(A5,1);delay(1);digitalWrite(A5,0); // tampil puluhan
  PORTD=angka[detik%10]; digitalWrite(A4,1);delay(1);digitalWrite(A4,0); //menampilkan satuan
  
  PORTD=angka[menit/10]; digitalWrite(A2,1);delay(1);digitalWrite(A2,0);  //
  PORTD=angka[menit%10]; digitalWrite(A3,1);delay(1);digitalWrite(A3,0);  //
  
  PORTD=angka[jam/10]; digitalWrite(A1,1);delay(1);digitalWrite(A1,0);   //
  PORTD=angka[jam%10]; digitalWrite(A0,1);delay(1);digitalWrite(A0,0);   //
}

3. Setelah mengupload program diatas dn rangkaian pada ISIS running, maka selanjutnya rangkailah rangkaian diatas pada aplikasi EAGLE.
berikut scemathic dan board yang telah saya buat:
Scemathic jam digital seves segments
.
Board jam digital Seven Segments

4. kemudian board yang telah jadi di-convert ke PDF creator. seperti gambar dibawah ini.
Board yang Telah di-Convert
5. Next, printlah gambar tersebut dengan menggunakan kertas art-paper.

6. kertas yang telah diprint, selanjutnya disetrika dengan papan PCB polos sampai bener2 gambar yang ada pada kertas itu pindah ke papan tersebut.

7. Selanjutnya letakkanlah PCB yang telah disetrika kedalam wadah yang berisi air. diamkan selama 3 sampai 5 menit. Setelah itu lepaskanlah kertas yang menempel pada papan PCB tsb pelan-pelan agar tidak ada jalur yang putus.

8. Keringkan PCB. Setelah kering periksalah jalur jalur nya , jika ada yang putus maka sambungkanlah dengan spidol bermata kecil. usahakan jangan meluber saat menggarisnya.

9. Kemudian, masukkan PCB ke dalam wadah yang berisi larutan fericloride. Goyangkan pelan-pelan wadah tersebut sampai tembaga yang ada pada PCB tersebut hilang.

10. Next, Cucilah PCB yang telah dilarutkan dengan menggunakkan amplas halus agar sisa sisa kertas yang masih menempel dan spidol hilang.

11. setelah bersih,  maka Bor lah PCB tersebut sesuai dengan ukuran kaki kaki kompoen. 

12. Selanjutnya, solder komponen-komponen tersebut dari komponen yang paling rendah, misal pertama jumper, kedua resistror, dan bla bla. Oh ya sebelum di solder papan PCB nya di oleskan terlebih dahulu menggunakan pastanya.

13. Setelah semuanya selesai, ujilah alat yang telah dibuat. jika seven segmentnya menyala dan running. maka alat tersebut berhasil, jika tidak wassalam :P hahaha .. 

Berikut gambar dari jam digital seven segment yang telah saya buat :





Ohya ada yang mau saya smpaikan, Dalam membuat proyek ini sudah ada 2 kali reject alat yang saya buat. Ternyata kesalahan nya itu adalah kakianoda seven segment hanya digunakan satu saja tidak kedua-duanya. 6 seven segments berarti 6 kaki anoda yang dipasangkan ke A0 s/d A5. 
Gambar rangkaian scemathic dan board nya yang di bawah ini masih salah. kaki anoda kedua-duanya masih dipakai. rangkaian yang benar tak saya buat dikarenakan waktu yang tidak ckup.
Alat saya bisa jalan karna kaki anoda yang tidak dipakai saya putuskan jalur nya. jadinya satu aja deh yang digunakan.:) 

terima kasih telah membaca materi ini, dan maaf bila terjadi kesalahan dalam penjelasan saya :)
Wassalamualaikum wr. wb.
#NHS