Rabu, 10 April 2019

Membuat LED Dadu Elektronik - Electronic LED Dice


Proyek ini merupakan proyek sederhana dimana dalam pembuatannya baik rangkaian, layout maupun kode programnya tentunya sangat mudah dibuat.

LED Dadu Elektronik - Electronic LED Dice
Electronic LED Dice.   

Dalam praktek kali ini pun saya hanya membuat PCB untuk mata dadunya saja sedangkan mikrokontroller saya menggunakan minimum sistem yang telah saya buat sebelumnya dengan sambungan kabel hanya empat dan satu jalur bersama.

skema LED Dadu Elektronik - Electronic LED Dice
Skema dadu elektronik.

layout LED Dadu Elektronik - Electronic LED Dice
Layout dadu elektronik.

bottom layout LED Dadu Elektronik - Electronic LED Dice
Bottom Layout dadu elektronik. 

DOWNLOAD layout siap cetak format PDF.


3d LED Dadu Elektronik - Electronic LED Dice
3D electronic led dice. 

Program untuk LED dadu elektronik ini sangat sederhana sehingga hanya memerlukan sedikit flash memori mikrokontroller untuk itu cukup hanya menggunakan mikrokontroller Atmega8.

Baca juga : Membuat Sendiri LED Cube 4x4x4 dengan Mudah

Cara kerja LED dadu elektronik ini yaitu tekan tombol sekali untuk rolling/mengacak nilai(mata dadu), LED dadu akan berkedip tiga kali sebelum rolling, selanjutnya tekan sekali lagi untuk mengambil nilai(mata dadu) maka pengacakan nilai mulai berhenti perlahan sampai menunjukkan nilai hasil.

Seperti inilah tampilannya :



Berikut ini adalah sketch/kode programnya :

/*
Electronic Led Dice By Fareed Read
*/
//pin output
#define com 8 //Common
#define out1 9
#define out2 10
#define out3 11
#define out4 12
//speed rolling
#define s 30
//button stop
int button = 2;

void setup() {
  // put your setup code here, to run once:
  pinMode(com, OUTPUT);
  pinMode(out1, OUTPUT);
  pinMode(out2, OUTPUT);
  pinMode(out3, OUTPUT);
  pinMode(out4, OUTPUT);
  pinMode(button, INPUT_PULLUP);
}
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(com, LOW);
  for (int a = 0; a < 6; a++) {
    diceNumber(a);
    delay(s);
    if (digitalRead(button) == LOW) {
      int x = s;
      for (int b = 0; b < 15; b++) {
        a++;
        if (a == 6) {
          a = 0;
        }
        delay(x);
        digitalWrite(out1, LOW);
        digitalWrite(out2, LOW);
        digitalWrite(out3, LOW);
        digitalWrite(out4, LOW);
        delay(x);
        x += 5;
        diceNumber(a);
      }
      while (digitalRead(button) == HIGH) {} //Tahan keadaan saat ini, ketika keadaan false maka kedip 3x dan lanjut rolling
      for (int c = 0; c < 3; c++) {
        digitalWrite(com, HIGH);
        delay(80);
        digitalWrite(com, LOW);
        delay(80);
      }
    }
    digitalWrite(out1, LOW);
    digitalWrite(out2, LOW);
    digitalWrite(out3, LOW);
    digitalWrite(out4, LOW);
    delay(s);
  }
}
void diceNumber(int n) {
  /*
    susunan led output
     1 = out1
     2 = out2
     3 = out1 + out4
     4 = out2 + out4
     5 = out1 + out2 + out4
     6 = out3 + out2 + out4
  */
  switch (n) {
    case 0:
      digitalWrite(out1, HIGH);
      break;
    case 1:
      digitalWrite(out2, HIGH);
      break;
    case 2:
      digitalWrite(out1, HIGH);
      digitalWrite(out4, HIGH);
      break;
    case 3:
      digitalWrite(out2, HIGH);
      digitalWrite(out4, HIGH);
      break;
    case 4:
      digitalWrite(out1, HIGH);
      digitalWrite(out2, HIGH);
      digitalWrite(out4, HIGH);
      break;
    case 5:
      digitalWrite(out2, HIGH);
      digitalWrite(out3, HIGH);
      digitalWrite(out4, HIGH);
      break;
  }
}

DOWNLOAD sketch/kode program led dadu elektronik berkas arduino.

DOWNLOAD sketch/kode program led dadu elektronik berkas hex.

DOWNLOAD sketch/kode program led dadu elektronik berkas hex dengan bootlader arduino. 


EmoticonEmoticon