Led Romb

それは夕方でした、何もすることはありませんでした。 (c)







それは約3年前です。 単一のビデオLEDキューブ8x8x8のデモに偶然出会ったのですが、正直言って感動しました。 当時、私の手はそのようなものを作るために長い間何かをひっかいていました。 それから私はArduinoが何であるかを知りませんでした、そして、一般的に私はLEDを正しく接続する方法さえ曖昧な概念を持っていました。 勇気を得て、私はインターネットに行きました。そこで、そのようなキューブを組み立てる方法のアイデアとスキーム、そしてコンポーネントを購入できる店をすぐに見つけました。 最初の実験の最適なオプションとして、4x4x4キューブを選択しました。





少しの理論と一連の思考:

LEDを点灯させる方法は?

電圧を印加し、アースを接続します。 電源5V-抵抗が必要です。

個別に点火する機能を備えた16個のダイオードを点灯するにはどうすればよいですか?

電圧を供給するには16個のキーが必要です。

4x4x4マトリックスからダイオードを点灯する方法は?

「フロア」4〜4にマトリックスをレイアウトします。「フロア」で地球を開くために、「ポール」+ 4の電圧に対して16個のキーを取得します。



特定のマイクロコントローラーの合計20の制御出力が必要です。

私は、経験のないマイクロコントローラをゼロからストラップとプログラムをはんだ付けすることを敢えてせず、Arduino、またはむしろFreeduinoのアナログを選択しました。

Freeduino Nano v5

マイクロコントローラー:ATmega328

デジタルI / Oポート:14ポート(そのうち6つはPWM信号付き)

アナログ入力ポート:8ポート



論理ユニットを備えた+ 5Vの電圧を持つ22のプログラム可能な入力/出力が必要です。



材料:

LED 64個

抵抗器20個

バイポーラトランジスタ4個

MK:Freeduino Nano v5

配線、スイッチ、コネクタ、ブレッドボードなど。

LEDとFreeduinoは最寄りの店舗で購入し、残りは最寄りの電源からはんだ付けするか、他の場所で見つけました。



そこで、次の手順に進みます。

辺を5mm x 5mmの正方形にマークします-これはLEDの短い脚の長さです。





カソードを90度曲げます-チェーンにはんだ付けし、「床」を受け取り、以前に取得したテンプレートマトリックスに美しく露出させます。





次に、わずかな角度でアノード(長い脚)を曲げます。 これは、「床」を便利にはんだ付けするために必要です。









そしてすべてを一緒にはんだ付けします。



テストする時間です。

なぜなら LEDは青色で、青色のループを見つけて消しました。





すべてが喜びのブレッドボードで機能したとき、礼拝堂はありませんでした。



台座を収集します。

たまたま64個の​​LEDを購入しましたが、1個が失われました。 途中で買える店はなく、ダイオードが1つしかないので配達を注文するのは非常に奇妙です。 解決策はそれ自体で見つかりました-切り取られたエッジにキューブを配置する! そして、オリジナルと外観のみが勝ちます。 ディスクからの箱はちょうどサイズに合います。 信頼性とトリップの可能性のために、アースを遮断するスイッチが融合されています。





次は既に更新されたバージョンの写真です。 収集された最初の立方体は、地元の大変動の犠牲となり、基地を除いて取り返しのつかないほど失われました。 更新されたバージョンを収集するために、私はもう足を曲げません。 それらは非常に柔らかく、しっかりと保持されません。私はそれらをほとんど根元まで切断し、金物屋からの0.9 mm鋼線で接続しました。 大騒ぎはもっと判明しましたが、結果はずっと良くなりました。 エッジがより滑らかになり、構造の剛性が向上しました。 私はすでに中国からダイオードを取り、完全な4x4x4キューブを組み立てました。





中身は何ですか:





そして結果:





5Vの電源を使用します。 ほとんどの場合、USBポートに接続されます。 プログラミングの場合、キューブが光らないようにオフにする必要があります。 なぜなら 出力0と1が使用され、これらはコントローラーのプログラムにも使用されます。 イルミネーションをオンにしてプログラムを実行すると、出力に電流が流れ、新しいスケッチがアップロードされた場合の90%で障害が発生します。



Arduino IDEについては書いておらず、コードを引用していません。 単純なサイクル-興味深いことは何もありませんし、インターネットにはすでに多くの例があります。

誰かが興味を持ったら、コードを追加してビデオを撮影します。



ダイヤモンドのスケッチ
/* Rombik Arduino. Created by Azurius */ int i,z,x,c,v,b,a,s,d; int dt = 100; int dts = 2; int nprog =1; int tmp1=0, tmp2=0, tmp3=0; int timeb=0, timew=0; int LEDM[4][4] = { 4,5,6,7, 8,9,10,11, 16,17,18,19, 15,14,12,13}; int LEDF[4] = { 3,2,0,1}; int ma[12]={ 4,5,6,7,11,19,13,12,14,15,16,8}; int mas[4]={ 0,3,12,15}; void setup() { for (i=0;i<4;i++){ for (z=0;z<4;z++){ pinMode(LEDM[i][z], OUTPUT); } } for (i=0;i<4;i++){ pinMode(LEDF[i], OUTPUT); } LedOFFAll(); //tushim vse pered nachalom } void LedON(int pin){ digitalWrite(pin, HIGH); } void LedOFF(int pin){ digitalWrite(pin, LOW); } void DotON(int kx, int ky, int kz){ LedON(LEDM[kx][ky]); LedON(LEDF[kz]); } void DotOFF(int kx,int ky, int kz){ LedOFF(LEDM[kx][ky]); LedOFF(LEDF[kz]); } void LedOFFAll(){ for (i=0;i<4;i++){ for (z=0;z<4;z++){ LedOFF(LEDM[i][z]); } LedOFF(LEDF[i]); } } void change(){ timew=millis(); if ((timew-timeb)>=10000){nprog++;timeb=millis();dt=70;} if (nprog==10) nprog=1; } void loop() { change(); //nprog = 0; //##########[## Prog 0 ############## // ALL ON if (nprog==0){ // ON begin for (c=0;c<4;c++){ LedON(LEDF[c]); for (i=0;i<4;i++){ for (z=0;z<4;z++){ LedON(LEDM[i][z]); delay(300); LedOFF(LEDM[i][z]); } } LedOFF(LEDF[c]); } } // end nprog 0 //############ Prog 1 ############## // zajigaet po ocheredi tochkami if (nprog==1){ // ON begin for (c=0;c<4;c++){ for (i=0;i<4;i++){ for (z=0;z<4;z++){ DotON(i,z,c); delay(dt); DotOFF(i,z,c); } } } } // end nprog 1 //############ Prog 2 ############## // zajigaem stolbiki po ocheredi if (nprog==2){ // ON begin for (c=0;c<4;c++){ LedON(LEDF[c]); } for (i=0;i<4;i++){ for (z=0;z<4;z++){ LedON(LEDM[i][z]); delay(dt); } } for (i=0;i<4;i++){ for (z=0;z<4;z++){ delay(dt); LedOFF(LEDM[i][z]); } } } // end nprog 2 //############ Prog 3 ############## // zajigaem etaji po ocheredi if (nprog==3) { // ON begin for (i=0;i<4;i++){ for (z=0;z<4;z++){ //LedON(LEDF[c]); LedON(LEDM[i][z]); } } for (c=0;c<4;c++){ LedON(LEDF[c]); delay(dt); LedOFF(LEDF[c]); } LedOFFAll(); } //end nprog 3 //############ Prog 4 ############## // Zmeyka po granyam if (nprog ==4){ dt=30; while(1){ x=v; v=random(0,3); if(x!=v){break;} } if(v==0){if(i==0){ for(b=0;b<4;b++){i=b;DotON(i,z,c); delay(dt); DotOFF(i,z,c);}} else{ for(b=3;b>-1;b--){i=b;DotON(i,z,c); delay(dt); DotOFF(i,z,c);}} } if(v==1){if(z==0){ for(b=0;b<4;b++){z=b;DotON(i,z,c); delay(dt); DotOFF(i,z,c);}} else{ for(b=3;b>-1;b--){z=b;DotON(i,z,c); delay(dt); DotOFF(i,z,c);}} } if(v==2){if(c==0){ for(b=0;b<4;b++){c=b;DotON(i,z,c); delay(dt); DotOFF(i,z,c);}} else{ for(b=3;b>-1;b--){c=b;DotON(i,z,c); delay(dt); DotOFF(i,z,c);}} } } //end nprog 4 //############ Prog 5 ############## // goryashie grani if (nprog == 5){ for (c=0;c<4;c++){ LedON(LEDF[c]); for (i=0;i<12;i++){ LedON(ma[i]); if (c==1 | c==2){ i=i+2; } } delay(dts); LedOFF(LEDF[c]); for (i=0;i<12;i++){ LedOFF(ma[i]); } } }// end nprog 5 //############ 6 ########### // ploskosti po ocheredi if (nprog==6){ // ON begin for (i=0;i<4;i++){ LedON(LEDM[i][0]); LedON(LEDM[i][3]); LedON(LEDF[i]); } delay(1000); LedOFFAll(); for (i=0;i<4;i++){ LedON(LEDM[0][i]); LedON(LEDM[3][i]); LedON(LEDF[i]); } delay(1000); LedOFFAll(); } //end nprog 6 //############ 7 ########### if (nprog==7){ i=random(0,4); z=random(0,4); c=random(0,4); DotON(i,z,c); delay(dt); DotOFF(i,z,c); } //end nprog 7 //############ 8 ########### if (nprog==8){ //random up i=random(0,4); z=random(0,4); v=random(0,4); b=random(0,4); a=random(0,4); s=random(0,4); LedON(LEDM[i][z]); LedON(LEDM[v][b]); LedON(LEDM[a][s]); for (c=0;c<4;c++){ LedON(LEDF[c]); delay(dt); LedOFF(LEDF[c]); } LedOFF(LEDM[i][z]); LedOFF(LEDM[v][b]); LedOFF(LEDM[a][s]); } //end nprog 8 //############ 8 ########### if (nprog==9){ //obhod po krugu LedOFFAll(); for(c=0;c<4;c++){ LedON(LEDF[c]); } for(i=0;i<12;i++){ LedON(ma[i]); delay(dt); if(i>1){LedOFF(ma[i-2]);} } } //end nprog 9 } // end loop
      
      







Led Romb





ご清聴ありがとうございました。



Z.Y. 出版前に記事を確認すると、カップホルダーの端が見えました。 「マグカップの下に何があるの?」という質問を感じます。

ここに:



グルーガンで接着します。








All Articles