Arduino 計時器實習

學習如何學習!

MAX7219 模組

設備與材料

個人電腦 × 1
arduino Uno × 1
麵包板 × 1
8×8 LED Matrix MAX7219 模組 × 1
連接線 若干

實體接線圖

參考程式

//自動計數  00-09

//引用 MAX7219 函式庫
#include <LedControl.h>

//宣告 LedControl 物件 
LedControl lc = LedControl(12, 11, 10, 1);  //設定接腳

// 0-9 字型碼
byte font[] = { 
                B01111100, B10000010, B10000010, B01111100, //0
                B00000000, B01000010, B11111110, B00000010, //1
                B01000110, B10001010, B10010010, B01100010, //2
                B01000100, B10010010, B10010010, B01101100, //3
                B00111000, B01001000, B11111110, B00001000, //4
                B11110100, B10010010, B10010010, B10001100, //5
                B01111100, B10010010, B10010010, B01001100, //6
                B11000000, B10000000, B10000000, B11111110, //7
                B01101100, B10010010, B10010010, B01101100, //8
                B01100100, B10010010, B10010010, B01111100  //9
               };
//宣告全域變數 sec
int sec=0;               
//請自行加上 按鍵輸入接腳宣告 

void setup() {
  //8x8 MAX7219 初始化
  lc.shutdown(0, false); // 關閉省電模式
  lc.setIntensity(0, 1); // 設定亮度為 1 (介於0~15之間)
  lc.clearDisplay(0);    // 清除螢幕

  //請自行加上 按鍵輸入接腳設定

}

void loop() {
  int code1;
  int code2;
  code1 = sec % 10; //取個位數 % =>求餘數
  //拾位數 你要自己設計

  //按鍵輸入 你要自己設計 

  displayNum(code2,code1);  //顯示
  delay(1000);
  //秒數自動進位
  if(sec==59){
     sec=0;
  }else{
     sec++;
  }

}
//自定函式 顯示
void displayNum(int code2,int code1){

  for (int j = 0; j < 4; j++) {
    //顯示 拾位數
    lc.setColumn(0, j, font[code2*4+j]);

    //顯示 個位數
    lc.setColumn(0, j+4, font[code1*4+j]);
  }

}

字型碼位置

數字 0~9 的字型全放在 font[] 裡面,如何來讀取每個數字的字型碼
數字 0 的字型碼啟始位置:font[0]
數字 1 的字型碼啟始位置:font[4]
數字 2 的字型碼啟始位置:font[8]
數字 3 的字型碼啟始位置:font[12]
~
數字 9 的字型碼啟始位置:font[36]
由上面可以發現其規律,因為每個字型碼有 4 bytes,所以要讀取相對應的字型碼啟始位置 font[num*4]。要讀取數字6的字型碼分別是 font[6*4+0]font[6*4+1]font[6*4+2]font[6*4+3]

功能

1.送電時顯示 00
2.按 S2 開始計時 00 ~ 59 一直重複
3.按 S3 停止計時
4.按 S1 歸零 顯示 00


相關知識

匯入zip程式庫
8*8 LED Matrix MAX7219
進制表示
自定函數
if 判斷式
if else 判斷式
digitalRead 函式
boolean
陣列
for 迴圈
Arduino 複合運算子
const
Arduino Uno 硬體
int
void
setup 函數
loop 函數
pinMode 函數
digitalWrite 函數
delay 函數

入門
知識
語法
流程
函式
實習

發佈留言