• 追加された行はこの色です。
  • 削除された行はこの色です。
[[FrontPage]]
*2017年 [#xa6643d6]
**7/6(木)マイコンぺ3 [#qcb4bc29]
トランジスタ使い方(STA472A)~
1 or 10はVCCにつなぐ~
2,4,6,8はArduino側、3,5,7,9はLED側につなぐが、このトランジスタにはベース抵抗が入っていないのでArduino側に1kΩの抵抗を挟む~

半田付けについて~
まず半田付けをする前に回路図を紙に書くなり、ブレッドボードの写真を撮っておくなりすること~


**6/28(水)マイコンぺ2 [#qcb4bc29]
マトリクスLEDを使うにあたって、libraryを作成した~
まず、マトリクスLEDのpin番号とArduinoの番号を対応させる(なるべくわかりやすく)~
pixelは配列で考えた方がわかりやすいのでpixcel[8][8]というのを作って、pixelの色は0-7で表す~
RGBを二進数で表現することで考えやすくなる~
  color 0 1 2 3 4 5 6 7
     R    0 1 0 1 0 1 0 1
     G    0 0 1 1 0 0 1 1
     B    0 0 0 0 1 1 1 1

マトリクスLEDを制御するのにDisplayMatorixという関数を定義する~
0(LOW)のとき光って、1(HIGH)のとき消える~
例えばpixel[0][0]が光っていたとする。~
pixel[1][1]を光らせたいとなった時に、まず2行目を全て1にする(PinRow[1]をHIGH)~
次に1列目から8列目まで順番に見ていく。~
pixel[1][1]と001の論理積が1ならPinColR[1]をLOW、0ならPinColR[1]をHIGH~
pixel[1][1]と010の論理積が1ならPinColG[1]をLOW、0ならPinColG[1]をHIGH~
pixel[1][1]と100の論理積が1ならPinColB[1]をLOW、0ならPinColB[1]をHIGH~
そしてPinRow[1]をLOWにする~
最後にrowに1足して同じことを繰り返す。~
このDisplayMatorix関数はMsTimer2を使って5msごとに呼び出す~


 #include "MsTimer2.h"
 ArduinoMega Pin Assignments
         1  2  3  4  5  6  7  8
 Row     20 21 22 23 24 25 26 27
 Col(R)  28 29 30 31 32 33 34 35
 Col(G)  36 37 38 39 40 41 42 43
 Col(B)  44 45 46 47 48 49 50 51
 int PinRow[] = {20, 21, 22, 23, 24, 25, 26, 27};
 int PinColR[] = {28, 29, 30, 31, 32, 33, 34, 35};
 int PinColG[] = {36, 37, 38, 39, 40, 41, 42, 43};
 int PinColB[] = {44, 45, 46, 47, 48, 49, 50, 51};
 char pixel[8][8]; // each pixel's color (0-7)
 color 0 1 2 3 4 5 6 7
   R   0 1 0 1 0 1 0 1
   G   0 0 1 1 0 0 1 1
   B   0 0 0 0 1 1 1 1
 int row;
 void setup() {                
  int i;
  for (i = 20; i <= 51; i++) pinMode(i, OUTPUT); 
  row = 0;
  pixel[0][0] = 7;
  pixel[3][3] = 4;
  MsTimer2::set(5, DisplayMatrix);
  MsTimer2::start();
 }
 void loop()
 {
 //  DisplayMatrix();
 //  delay(5);
 }
 // function for controling matrix LED, called every 5ms
 void DisplayMatrix()
 {
   int x, y;
   for (y = 0; y < 8; y++) digitalWrite(PinRow[y], HIGH);
   // digitalWrite(PinRow[row], LOW); // will make illusion
  for (x = 0; x < 8; x++){
    if (pixel[x][row] & 0x01) digitalWrite(PinColR[x], LOW); else digitalWrite(PinColR[x], HIGH);
    if (pixel[x][row] & 0x02) digitalWrite(PinColG[x], LOW); else digitalWrite(PinColG[x], HIGH);
    if (pixel[x][row] & 0x04) digitalWrite(PinColB[x], LOW); else digitalWrite(PinColB[x], HIGH);
  }
  digitalWrite(PinRow[row], LOW);
  //  row = row + 1; if (row == 8) row = 0;
  row = (row + 1) % 8;
 }



-

**6/27(火) マイコンぺ [#qcb4bc29]
フルカラーマトリクスLEDを使用~
(COL)1-8R,9-16G,21-28B (ROW)17-20,29-32~
ROW側はたくさん電流(1列にRGB 8×3 )を流さなければいけないのでトランジスタアレイ(ダーリントン)を入れる。~
入れないと壊れる可能性あり。~
COL側は24個の抵抗を入れる。~
ピン番号は左下から反時計回りに数える~
トランジスタアレイは内部抵抗をもつので、トランジスタアレイを入れたところすなわちROW側には抵抗を入れなくて良い~

-

**4/12(水)研究室顔合わせ [#qcb4bc29]
研究室初めての顔合わせでした~
研究室内の配線をごちゃごちゃ動かしました~
まさか床下があんなことになっているとは~
先輩方も先生もとてもいい人たちなので、これからの研究室生活楽しみです~

-