Membuat Kubus LED 7x7x7: Proyek Arduino Langkah demi Langkah
Komponen dan Perlengkapan
- Arduino UNO – 1 unit
- 74hc574 – 7 unit
- 74hc138 – 1 unit
- Resistor 220 ohm – 49 unit
- Kristal 16 MHz – 1 unit
Alat dan Mesin yang Diperlukan
Tentang Proyek Ini
Saya selalu ingin membuat kubus LED sendiri, dan sekarang saya berbagi proyek ini dengan Anda.
Langkah 1: Matriks LED
Hal pertama yang harus dilakukan adalah membuat matriks LED.
Dalam hal ini, saya telah membuat tujuh matriks LED 7x7.
Saya telah membagi anoda dan katoda dan memasangnya dengan las dalam baris dan kolom, jadi pada akhirnya saya memiliki 7 anoda dan 7 katoda untuk setiap matriks LED.
Langkah 2: Hardware
Sekarang Anda memerlukan hardware yang diperlukan untuk menggunakan kubus LED.
Ini adalah bagian yang paling sulit jika Anda tidak cukup mengerti elektronika.
Namun, saya mencoba menjelaskan bagian ini dengan jelas.
Saya telah menggunakan tujuh 74HC574.
IC ini adalah D Flip Flop 8-bit, yaitu memori 8 bit. Dengan cara ini saya dapat memuat beberapa bit padanya untuk melihat gambar pada kubus. Saya memerlukan tujuh 74HC574 karena terdapat tujuh matriks LED.
Saya juga memerlukan 7 transistor NPN untuk menentukan lapisan mana yang menyala.
Dengan cara ini dengan teknik multiplexer saya dapat memvisualisasikan gambar pada seluruh kubus.
Terakhir, saya juga memerlukan 74LS138, yaitu pem-dekoder demultiplexer 3 ke 8 garis, jadi dengan itu saya dapat mengontrol semua Flip Flop dengan hanya 3 bit karena mereka juga memerlukan pulsa untuk menyimpan data.
Ini adalah diagram blok hardware:
Langkah 3: Struktur
Anda juga memerlukan struktur untuk hardware dan kubus LED. Saya telah menggunakan beberapa potongan kayu untuk membuatnya.
Setelah itu Anda dapat merakit semuanya, setiap matriks LED harus ditempatkan di depan yang lain dan katoda setiap lapisan terhubung ke transistor yang sama.
Langkah 4: Kode
Terakhir, Anda dapat menulis kode untuk menyala-kan kubus, diagram blok di atas dapat membantu Anda menulis kode.
Bagian ini dapat sangat membingungkan tetapi dengan beberapa latihan akan menjadi lebih mudah.
Kode di bawah ini mewakili animasi terkemudian karena yang lain terlalu panjang tetapi dengan sedikit fantasi Anda dapat melakukan apa pun yang Anda inginkan.
Kode
Animasi
// Kode ini mewakili animasi termudah untuk KUBUS LED
int temp = 50, cont = 0;
void load_all(void) {
// lapisan 1
digitalWrite(A2, LOW); digitalWrite(A1, LOW); digitalWrite(A0, LOW); delay(1);
// lapisan 2
digitalWrite(A2, HIGH); digitalWrite(A1, LOW); digitalWrite(A0, LOW); delay(1);
// lapisan 3
digitalWrite(A2, LOW); digitalWrite(A1, HIGH); digitalWrite(A0, LOW); delay(1);
// lapisan 4
digitalWrite(A2, HIGH); digitalWrite(A1, HIGH); digitalWrite(A0, LOW); delay(1);
// lapisan 5
digitalWrite(A2, LOW); digitalWrite(A1, LOW); digitalWrite(A0, HIGH); delay(1);
// lapisan 6
digitalWrite(A2, HIGH); digitalWrite(A1, LOW); digitalWrite(A0, HIGH); delay(1);
// lapisan 7
digitalWrite(A2, LOW); digitalWrite(A1, HIGH); digitalWrite(A0, HIGH); delay(1);
// lapisan 8
digitalWrite(A2, HIGH); digitalWrite(A1, HIGH); digitalWrite(A0, HIGH); delay(1);
}
void scrolling(int t) {
PORTB = 0x00;
digitalWrite(7, HIGH); delay(t); digitalWrite(7, LOW);
digitalWrite(8, HIGH); delay(t); digitalWrite(8, LOW);
digitalWrite(9, HIGH); delay(t); digitalWrite(9, LOW);
digitalWrite(10, HIGH); delay(t); digitalWrite(10, LOW);
digitalWrite(11, HIGH); delay(t); digitalWrite(11, LOW);
digitalWrite(12, HIGH); delay(t); digitalWrite(12, LOW);
digitalWrite(13, HIGH); delay(t); digitalWrite(13, LOW);
}
void one(void) {
PORTD = 0xff; load_all();
while (1) {
scrolling(temp);
temp = temp - 2;
if (temp <= 0) {
temp = 1; cont++;
if (cont == 1000) { cont = 0; temp = 100; }
}
}
}
void setup() {
DDRD = 0xff; DDRB = 0xff; DDRC = 0xff;
}
void loop() { one(); }
Bagian Custom dan Enclosure
File: gestione_mankWMoVhz.sch
Skematik
Saya menggunakan gambar untuk pengaturan komponen.