Changes between Version 2 and Version 3 of wade/embedded/arduino/example/example_3-2


Ignore:
Timestamp:
Feb 10, 2010, 6:03:56 PM (15 years ago)
Author:
wade
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • wade/embedded/arduino/example/example_3-2

    v2 v3  
    11{{{
    22/*
    3  * 由 12 個 digital pins 控制 5*7 矩陣式 LED Matrix,col:掃描,row:data
     3 * 由 12 個 digital pins 控制 5*7 矩陣式 LED Matrix,col:掃描,row:data :載入 5x7 字形。
    44 */
    55
    6 #define lpin0 2             // 定義 LED 負極腳位
    7 #define lpin1 3             // 定義 LED 負極腳位
    8 #define lpin2 4             // 定義 LED 負極腳位
    9 #define lpin3 5             // 定義 LED 負極腳位
    10 #define lpin4 6             // 定義 LED 負極腳位
    11 #define lpin5 7             // 定義 LED 負極腳位
    12 #define lpin6 8             // 定義 LED 負極腳位
    13 #define hpin0 9             // 定義 LED 正極腳位
    14 #define hpin1 10             // 定義 LED 正極腳位
    15 #define hpin2 11            // 定義 LED 正極腳位
    16 #define hpin3 12            // 定義 LED 正極腳位
    17 #define hpin4 13            // 定義 LED 正極腳位
     6#define lpin0 7             // 定義 LED 負極腳位
     7#define lpin1 8             // 定義 LED 負極腳位
     8#define lpin2 9             // 定義 LED 負極腳位
     9#define lpin3 10             // 定義 LED 負極腳位
     10#define lpin4 11             // 定義 LED 負極腳位
     11#define lpin5 12             // 定義 LED 負極腳位
     12#define lpin6 13             // 定義 LED 負極腳位
     13#define hpin0 2             // 定義 LED 正極腳位
     14#define hpin1 3             // 定義 LED 正極腳位
     15#define hpin2 4            // 定義 LED 正極腳位
     16#define hpin3 5            // 定義 LED 正極腳位
     17#define hpin4 6            // 定義 LED 正極腳位
    1818#define row_size 7          // 定義 Matrix row 大小
    1919#define col_size 5          // 定義 Matrix colum 小
    20 #define delay_time 100      // 延遲時間
     20#define delay_time 1000      // 延遲時間
    2121
    2222#define data_A {1, 0, 0, 0, 0,\
     
    2727                0, 0, 0, 1, 0,\
    2828                0, 0, 0, 0, 1}
    29 
    30 
     29// 0 的字型。
     30byte data_0[5]={0x03E, 0x051, 0x049, 0x045, 0x03E};
    3131// 所有要顯示字的 array
    3232boolean word_array[4][row_size][col_size] = {data_A};
     
    4444    pinMode(i , OUTPUT);
    4545  clear_led();
     46 Serial.begin(9600);
     47 // for (int j = 0x01; j<=0x80; j <<= 1)
     48 //   if ((data_0[1] & j) == j)
     49 //     Serial.println(data_0[0], HEX);
     50 //     Serial.println(data_0[1], HEX);
     51     
    4652}
    4753
     
    4955void loop()
    5056{
     57 
    5158  // HEX 000
     59
     60  // 將第一個 word 讀入 led
    5261  clear_led();
    53  
    54   // 將第一個 word 讀入 led
    55   word_to_led(0);
    56   display_led(led, 1000);
     62  hex_word_to_led();
    5763  /*
    5864  word_to_led(1);
     
    6369  display_led(led, 1000);
    6470  */
    65   delay(delay_time);
     71  //delay(delay_time);
    6672
     73}
     74
     75void hex_word_to_led()
     76{
     77
     78  for(int k = 0; k < col_size; k++)
     79  {
     80    int j=0;
     81  digitalWrite(col_pin[k], HIGH);
     82  for (byte i = 1; i != 0; i <<= 1)
     83  {
     84    if ((data_0[k] & i) == i)
     85    {
     86      digitalWrite(row_pin[j++], LOW);
     87    }else
     88    {j++;}
     89  }
     90  //delay(1);
     91  clear_led();
     92  }
    6793}
    6894
     
    7399      led[i][j] = word_array[n][i][j];
    74100}
     101
    75102
    76103// 將 led 全關
     
    83110}
    84111
     112// 顯示led
    85113void display_led(byte led[row_size][col_size], int continue_time)
    86114{