工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

7×7×7 LEDキューブの製作:Arduinoステップバイステップガイド

部品と材料

Arduino UNO×1
74HC574×7
74HC138×1
抵抗 220Ω×49
16MHz 水晶発振子×1

必要な工具と機械

プロジェクト概要

私は常に自分でLEDキューブを作りたいと思っていました。今回、そのプロジェクトを皆さんと共有します。

ステップ1:LEDマトリックスの作成

最初に行うことはLEDマトリックスの作成です。今回は7×7のLEDマトリックスを7層作成しました。

アノードとカソードを分け、それぞれを行と列にはんだ付けしました。最終的に各LEDマトリックスには7つのアノードと7つのカソードがあります。

ステップ2:ハードウェアの準備

LEDキューブを制御するために必要なハードウェアを用意します。電子工作に詳しくない場合、これが最も難しい部分です。できるだけわかりやすく説明します。

74HC574を7個使用します。 これは8ビットD型フリップフロップ、つまり8ビットのメモリです。これにより、ビットを読み込んでキューブ上に画像を表示できます。7層のLEDマトリックスがあるため、7個必要です。

また、どの層を点灯させるかを決めるために7個のNPNトランジスタも必要です。マルチプレクス技術を使って、キューブ全体に画像を表示します。

さらに74LS138(3-8ラインエンコーダ/デマルチプレクサ)も必要です。これで3ビットだけで全フリップフロップを制御できます(データを保存するためのパルスも必要です)。

ハードウェアのブロック図は以下の通りです。

私は回路を自作し、ArduinoのATmega328Pをスタンドアロンで使用しました。完全な回路図は以下をご覧ください。

ステップ3:構造の製作

ハードウェアとLEDキューブのための構造体が必要です。木材のパーツを使って作りました。

その後、すべてを組み立てます。各LEDマトリックスは互いに向き合うように配置し、各層のカソードを同じトランジスタに接続します。

ステップ4:プログラミング

最後に、キューブを点灯させるコードを書きます。上記のブロック図がコード作成の助けになります。

この部分はかなり複雑ですが、練習すれば簡単になります。

以下のコードは最も簡単なアニメーションを表しています。他のアニメーションは長すぎますが、少しの想像力で何でも作れます。

コード

// LEDキューブ用の最も簡単なアニメーション
int temp = 50, cont = 0;

// キューブ全体を読み込む関数
void load_all(void) {
  // layer 1
  digitalWrite(A2, LOW); digitalWrite(A1, LOW); digitalWrite(A0, LOW); delay(1);
  // layer 2
  digitalWrite(A2, HIGH); digitalWrite(A1, LOW); digitalWrite(A0, LOW); delay(1);
  // layer 3
  digitalWrite(A2, LOW); digitalWrite(A1, HIGH); digitalWrite(A0, LOW); delay(1);
  // layer 4
  digitalWrite(A2, HIGH); digitalWrite(A1, HIGH); digitalWrite(A0, LOW); delay(1);
  // layer 5
  digitalWrite(A2, LOW); digitalWrite(A1, LOW); digitalWrite(A0, HIGH); delay(1);
  // layer 6
  digitalWrite(A2, HIGH); digitalWrite(A1, LOW); digitalWrite(A0, HIGH); delay(1);
  // layer 7
  digitalWrite(A2, LOW); digitalWrite(A1, HIGH); digitalWrite(A0, HIGH); delay(1);
  // layer 8
  digitalWrite(A2, HIGH); digitalWrite(A1, HIGH); digitalWrite(A0, HIGH); delay(1);
}

// 各層を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);
}

// 1層ずつ点灯し、速度を上げていくアニメーション
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();
}

カスタムパーツとエンクロージャ

gestione_mankWMoVhz.sch

回路図

部品配置用の画像を使用しています。

製造プロセス

  1. ルービックキューブ:発明から現代のパズルへ
  2. 発光ダイオード(LED):誕生から100年寿命へ
  3. Arduino Nanoで37LEDルーレットゲームを自作:ヨーロピアンスタイル完全再現
  4. Arduinoで「棺桶ダンス」メロディーを再現するプロジェクト
  5. Arduino Megaで作る美しい5x5x5 LEDキューブ
  6. 古いリモコンを再利用:ArduinoでDIYスマートデバイスを構築
  7. ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
  8. 音声反応型 8 LED ライトディスプレイ
  9. スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
  10. Arduino RGB LEDカラーミキサー:初心者向けDIYプロジェクト
  11. Arduino Unoと1Sheeldで作る4x4x4 LEDキューブ – インタラクティブLEDプロジェクト