【Arduino電子工作】4x4x4個のLEDを使ったイルミネーションキューブの作り方
konan0119 konan0119
2.31K subscribers
255 views
5

 Published On Feb 3, 2024

LEDのイルミネーションキューブを作ってみました。
プログラム次第で色々な点灯ができます。
興味あれば製作してみてください。
キレイですよ。
サンプルプログラムを載せておきます。


VOICEVOX:「四国めたん」
BGM:Youtube オーディオライブラリ

※不等号記号は半角にしてください。
(YOUTUBEの仕様で半角記載できないため)

// 4x4x4 LED Cube sample program 2024.01.30
// konan0119 presents

//各ピンを配列にセット
int layer[4]={A3,A2,A1,A0}; //(+)電源ピン
int column[16]={13,12,11,10,9,8,7,6,5,4,3,2,1,0,A5,A4}; //(-)電源ピン
int time = 200;

void setup() {
for(int i = 0; i<16; i++) {
pinMode(column[i], OUTPUT); // column各ピンの出力設定
}
for(int i = 0; i<4; i++) {
pinMode(layer[i], OUTPUT); // layer各ピンの出力設定
}
}

void loop() {
led_allOff(); //全消灯
one_led_On(); //上段から順に点灯
led_allOn(); //全点灯
delay(500);
led_allOff(); //全消灯
delay(1000);
vertical(); //縦列LEDの点灯・消灯

}

void one_led_On() { //上段から順に点滅
//初期値 j=0でA3、i=0で13端子に電流が流れLEDが点灯開始・消灯
//次に  j=0でA3、i=1で12端子に電流が流れLEDが点灯開始・消灯、以下for文を繰り返す
for(int j = 0; j<4; j++) {
for(int i = 0; i<16; i++) {
digitalWrite(column[i], 0); //(-)電源ピンLOW on
digitalWrite(layer[j], 1); //(+)電源ピンHIGH on
delay(100);
digitalWrite(column[i], 1); //(-)電源ピンLOW off 点灯したLEDを消灯
}
digitalWrite(layer[j], 0); //(+)電源ピンHIGH off 上段から下段を消灯していく
}
}

void led_allOn() { //全点灯
for(int i = 0; i<16; i++) {
digitalWrite(column[i], 0); //(-)電源ピンLOW on
}
for(int i = 0; i<4; i++) {
digitalWrite(layer[i], 1); //(+)電源ピンHIGH on
}
}

void led_allOff() { //全消灯
for(int i = 0; i<16; i++) {
digitalWrite(column[i], 1); //(-)電源ピンHIGH off
}
for(int i = 0; i<4; i++) {
digitalWrite(layer[i], 0); //(+)電源ピンLOW off
}
}

void vertical() { //縦列LED点灯・消灯
int x = 100;
led_allOff();
//縦列LED点灯動作
for(int i = 0; i<4; i++) {
digitalWrite(layer[i], 1);// layer各ピンをHIGH on
}
for(int i = 0; i<4; i++) {
digitalWrite(column[i], 0);//column、0-3ピンをLOW on
delay(x);
}
for(int i = 4; i<8; i++) {
digitalWrite(column[i], 0);//column、4-7ピンをLOW on
delay(x);
}
for(int i = 8; i<12; i++) {
digitalWrite(column[i], 0);//column、8-11ピンをLOW on
delay(x);
}
for(int i = 12; i<16; i++) {
digitalWrite(column[i], 0);//column、12-15ピンをLOW on
delay(x);
}

//縦列LED消灯動作
for(int i = 0; i<4; i++) {
digitalWrite(column[i], 1);//column、0-3ピンをHIGH off
delay(x);
}
for(int i = 4; i<8; i++) {
digitalWrite(column[i], 1);//column、4-7ピンをHIGH off
delay(x);
}
for(int i = 8; i<12; i++) {
digitalWrite(column[i], 1);//column、8-11ピンをHIGH off
delay(x);
}
for(int i = 12; i<16; i++) {
digitalWrite(column[i], 1);//column、12-15ピンをHIGH off
delay(x);
}
}
//end of list

show more

Share/Embed