Week03 第三週  測試 三色 LED + 蜂鳴器(讓Arduino電腦唱歌)


今天簽到區請繳交:
 (a)如果你有自己的網站或部落格或微博等,
    先打入這些字: 這是 xxxxxxx  YYYYY (要改為你學號 你姓名)的 自我介紹 (網站/微博)  
    (這是為了方便老師和同學造訪你的網站, 要點了真的可以連到你的網站或部落格或微博...;
	 還有, 記得設定為會開新窗, 就是 Target(目標)要設為 _blank 新窗,
	 就是在 a href 內要寫  target=_blank )
 (b)接著先打好五列標題(1)..(2)..(3)..(4)..(5).. 為今天練習成果做準備,
    還有, 今天練習(後面有練習步驟)要繳交五張圖片檔, 並對每張圖片略作說明 !
(其實是三張圖片檔, 另兩個是要貼你測試的程式碼!)
  (每張圖片的說明至少一句話或8個字, 至多50個字)

首先要確定你的電腦認識Arduino開發板(點這看如何安裝Arduino開發板的驅動程式)
說明: 今天的實驗要用到兩個小零件: 三色 LED 模組有源or無源蜂鳴器, 先簡單說明如下: (A)三色 LED 模組共有四支腳位, 其中三隻當然是分別控制紅 R, 藍 B, 綠 G, 另外一隻腳通常有兩種情形: (a)標示 - 減號表示共陰極, 意思是三個 LED 的 GND (負)是接在一起的, 這種三色 LED 這隻腳應該要連接到 Arduino 板子的 GND; 然後 R G B 這三隻腳分別在 HIGH (有電)時會使 LED 亮 ! (b)標示 V 表示共陽極, 意思是三個 LED 共用同一個正 + 極, 這個 V 是 VCC 的意思, 表示這支腳應該要連接到 Arduino 板子的 5V 或 3.3V; 然後 R G B 這三隻腳分別在 LOW(無電)時會使 LED 亮 ! ? 如此說來, 我們的三色 LED 這 V 腳應該連接到 5V囉? 可是, 事實上我們買的這三色 LED 是共陰極, 模組上的 V 是印錯的 !! 應該印減號 ! 所以, 請把三色 LED 模組上標示 V 這腳用杜邦公母線連接到 Arduino 的 GND (應該有三處是 GND)! ! (這我們已經測試過, 確認我們買到的三色 LED標示 V 的腳其實應該標示 - 減號或 GND, 必須接Arduino的GND才對!) Arduino Uno 開發板上有三個 GND 可以接: (或是連接到該 USB 街頭金屬上也可 :-)
(B)蜂鳴器(Buzzer)一般分為"有源"蜂鳴器和"無源"蜂鳴器, 我們盒子中的是有源蜂鳴器模組。 請注意, 這裡有源和無源的“源”不是緣分的緣, 也不是指電源, 而是指震盪源(Shock source)。 也就是說,有源蜂鳴器內部帶震盪源,所以只要一通電就會叫。    有源蜂鳴器模組通常有三隻接腳: (a)一隻 VCC (應該是中間那隻腳)要 接 5V 或 3.3V, (b)一隻 GND 或標示減號 - 表示要接地(GND), (請注意不是真的接到地面喔!) (c)另外一隻腳通常標示 In 表示輸入, 或標示 S 代表 Signal 信號(也有標示 I/O的), 這隻信號腳(Signal Pin)要連接到 Arduino 想發出信號控制蜂鳴器的任一接腳。 請注意, 因為廠商可能標示錯誤(常常喔! 不過我們系這次買到的是標示 In 且沒標錯 :-) !! 所以, 大家要先用 Arduino IDE 內建的範例 toneMelody 測試一下 ! (今天第 3 個練習 !) 註: 有源蜂鳴器本來只能發出固定頻率聲音, 但我們仍可利用快速切換有聲無聲模擬出改變頻率 ! Arduino 提供的 tone( ) 函數就是要讓我們用來發出不同頻率的聲音。 首先要確定你的電腦認識Arduino開發板(點這看如何安裝Arduino開發板驅動程式)
今日練習步驟: (如果你動作比較慢也別擔心, 今天練習不完的就下個禮拜繼續練習, 不要有壓力, 要快樂學習 !)

(1)重新測試 LED 閃爍, 但改用三色 LED 模組 !
   (a)拿出三色 LED 模組, 參考前面(A)說明, 用兩條杜邦公母線, 準備連接到 Arduino Uno板子。
      (a1)一條從 V (廠商標示錯誤, 其實應該是 GND)連接到 Uno 板子的 GND 接地(三個GND任選一個)。
      (a2)一條從 R 連接到 Uno 板子的 Pin 13 (不要懷疑, 就是 13 腳的插孔 !
          如果你不喜歡看到亮紅色, 可改接 G 綠色或是 B 藍色。
   (b)請在螢幕左上角用記事本(Notepad)顯示你的學號與姓名(就是用滑鼠右鍵點選建立新文字文件啦)!
   (c)開啟 Arduino IDE 並確定板子Uno 與 COM Port 都設定正確(從 Tools 設定);
   (d)開啟內建範例 Blink (上週測過的) :
         File 檔案  >  Examples 範例  >  01.Basics 基本   >  選 Blink 閃爍  
   (e)點按 IDE 的上傳圖示做編譯連結並
      把程式機器碼上傳(Upload)到 Arduino 板子內(會自動執行), 看看LED 閃爍情形 !!
   (f)確定 LED 亮燈的時候, 用手機拍下螢幕全畫面(把Arduino 板子也拿在螢幕正中央下方),
	或是用 CTRL_PrintScrn 抓下全螢幕畫面也可以 :-)
    這是今天要繳交的第一張畫面或圖片 !
	請注意, 圖片上方必須用至少12字, 至多50字稍微描述看到的實驗狀況。

(2)測試 LED 慢慢變暗 (或慢慢變亮) (測試 analogWrite( ) 的功能) !
   (a)保持三色 LED 模組連接方式不變;
      就是三色 LED 模組的 R (或你要的顏色的pin接腳)連接到 Uno 板子的 Pin 13 
   (b)開啟內建範例 Fade (淡入淡出) :
         File 檔案  >  Examples 範例  >  01.Basics 基本   >  選 Fade 
     ** 注意, 這次是選 Fade,  不是 Blink 喔 ! 
	
   (c)點按 IDE 的上傳圖示做編譯連結並
      把程式機器碼上傳(Upload)到 Arduino 板子內(會自動執行), 看看LED 閃爍情形 !!
	  奇怪 ! 
      怎 LED 都不亮了 ?! 
      別緊張 !!!  因為程式是控制 pin 9 不是 13 接腳啦 !!
   (d)先修改程式碼裡面的int led = 9;  
      改為int led = 13;    //(把 9 改為 13 即可)
      *** 這個範例這樣先在很前面用變數代表 led  的 pin 腳比較好, 要換很方便 !
	  然後再次點按 IDE 的上傳圖示做編譯連結並
      把程式機器碼上傳(Upload)到 Arduino 板子內(會自動執行), 看看LED 變化情形 !!
	  啥!?  騙人 !
     沒慢慢變暗啊 !?    
      也是別緊張, 沒騙人啦 !  這是因為..
	  因為 .. Pin 13 這支腳沒支援類比(Analog, 大陸稱為"模擬")輸出啦 !!
    ** Uno 板子只有 pin 3, 5, 6, 9, 10, 11 這六支 pin 腳才支援類比(Analog)輸出,
     你注意看 Arduino Uno 開發板上這六支 pin 腳數字旁邊有個 - 號 或 ~ 號, 這是有意義的喔 ! 
   (e)把程式碼的 13 改回 9, 或是重新載入範例 Fade 也可以;
      然後, 把連接在 Uno 板子 13 腳的杜邦公母線改連接到 Uno 板子的 Pin 9 準備重新測試!
	  就是三色 LED 模組的 R (或你要的顏色的pin接腳)連接到 Uno 板子的 Pin 9 
   (f)再次點按 IDE 的上傳圖示做編譯連結並
      把程式機器碼上傳(Upload)到 Arduino 板子內(會自動執行), 看看LED 變化情形 !!!
      ! Bingo 有了ㄟ ! 真的會慢慢變暗以及慢慢變亮了ㄟ :-) 
   (g)確定 LED 亮一半亮度左右的時候, 
      用手機拍下螢幕全畫面(把Arduino 板子也拿在螢幕正中央下方),
	 或是用 CTRL_PrintScrn 抓下全螢幕畫面也可以 :-)
    這是今天要繳交的第 2 張畫面或圖片 !
	請注意, 圖片上方必須用至少12字, 至多50字稍微描述看到的實驗狀況。
    **還有, 請注意也要保持螢幕左上角用記事本(Notepad)顯示你的學號與姓名!!
    **另外, 你也可以把 R 換成 G 或 B 的接腳換 LED 顏色 測試看看 !
    **甚至, 也把 pin 9 改為其他如 pin 8, 7, 6 等測試看看(程式碼也要記得改對應接腳號碼)
    **再來, 想一想如何同時控制三種顏色組合照你想要的意思做變化 !? 
      試著寫程式測試看看 ! (可自己上網找資料, 之後也會教到)
關於 digitalWrite( );analogWrite( ); 的差別上課會講解! 簡單說, digitalWrite( ); 只能送出 1 或 0 但是 analogWrite( ); 可以送出 0 到 255 的值(注意如果送出 256 則會變 0, 輸出 258 會變 2; 就是相當於 %256 除以 256 取餘數 ! 你可以自己看看 Arduino 的參考手冊(Reference): 點 Arduino IDE 的 Help > 再點下拉選單中的 Reference 參考 這時會開啟一個網頁, 不過不是網路上的, 是在你電腦上的 Arduino 參考手冊 ! 在 Functions (函數, 函式)之下就可找到 digitalWrite( ) 與 analogWrite( ); 分別點入即可看到各自的說明與範例(英文看不太懂沒關係, 可以複製貼到 Google 翻譯大略看看:-) !! ** 也可以連入 Arduino.cc/en/Reference/ 網頁查看! ** 如果英文不太好, 在開始上課的第三篇就是中文的Arduino手冊 ! ** 注意 Uno 板子只有 Pin 3, 5, 6, 9, 10, 11 這六隻腳使用 analogWrite( ); 有效果 !
其他接腳如果使用 analogWrite( )輸出小於128之時則等同使用 digitalWrite( ) 輸出 LOW (就是 0)的值; 當然, 輸出為128或更大(目前最大是255)則等同使用 digitalWrite( ) 輸出 HIGH (就是 1)的值。 ** 再注意, 如果你企圖用 analogWrite( ) 輸出大於 255 的值則會被轉為該值除以256的餘數; 也就是說, 企圖輸出 256 就是等同輸出 0, 企圖輸出 258 就等同要輸出 2 (258除以256的餘數是2)。 ** 來看看這個 ArduBlock 程式碼 (沒完全對應, 但功能與內建的 Fade 範例完全相同)
補充說明:
Q: 有同學問說不是聽說連接 LED 燈要接一個電阻怎我們都不必? 
A: 因為我們用的是模組(又稱模板), 就是已經把必要零件都用個小電路板整合好了啦 !
   如果你用裸體的 LED 小燈, 那就要接個 150歐姆左右的電阻以免把 LED 燒掉 !
   不過, 如果找不到電阻, 就串接兩個 LED 也是可以啦 !
假如你使用 Arduino IDE 1.6.6 或之後的版本, 
   則匯入這範例之後, 可切換到範例目錄內可以看到有教你如何連接 LED 燈的圖
  如果你已經把該 Fade 範例匯入了 File 檔案  >  Examples 範例  >  01.Basics 基本   >  選 Fade 
 現在叫它秀出該範例的目錄內容: Sketch 草稿碼  >  顯示草稿碼資料夾 Show Sketch Folder
 
    你應該有看到可以直接敲 CTRL_K 快速顯示該範例的目錄;
以下就是 Fade 這目錄的內容: 把該圖點兩下就可以看到建議的連接方式:

* 關於電阻、麵包板(Breadboard) 使用原則、為什麼 LED 需要串聯電阻等等, 請參考蔡老師寫的 Arduino 初體驗 Arduino_000.pdf, 裡面有詳細說明 ! * 想抓更新的 IDE 版本, 已經幫忙抓回 IDE 1.8.7 版本並加入 ArduBlock 放在學校數位學習網站: 你可以點這裡抓已加入 ArduBlock 官方最後一版 的 Arduino 1.8.7 (184MB)
你也可以點這裡抓這已經放入 ArduBlock 的 Arduino IDE 1.6.6版(154MB)
(3)測試蜂鳴器到底該如何接才有聲音 ? (a)把蜂鳴器的中間接腳用杜邦公母線連接到 Arduino 的 5V (b)再拿兩條杜邦公母線, 先假設蜂鳴器模組上的標示正確, 則該把標示 In 或標示 S 那腳連接到 Arduino 的 Pin 8, (因為該範例使用 Pin 8 發出信號!); (c)另一隻標示GND或標示減號 - 的當然要接到 Arduino 的地(GND); (d)開啟 Arduino IDE 並確定板子Uno 與 COM Port 都設定正確(從 Tools 設定); (e)開啟內建範例 toneMelody : File 檔案 > Examples 範例 > 02.Digital > 選 toneMelody (f)請確定在螢幕左上角用記事本(Notepad)顯示你的學號與姓名(就是用滑鼠右鍵點選建立新文字文件啦)! (g)點按 IDE 的上傳圖示做編譯連結並 把程式機器碼上傳(Upload)到 Arduino 板子內(會自動執行), 看看有沒有聲音 !? ** 如果沒有聲音, 那表示標示錯誤, 必須把標示 In 或 S 的接腳改連接到 Uno 板子的 GND, 然後把標示 - 減號的改連接到 Arduino 板子的 Pin 8 接腳再次重新測試 ! (我測試過了, 本系這次買到的蜂鳴器模組標示是正確的:-) 確定有聲音了, 用手機拍下螢幕全畫面(把Arduino 板子也拿在螢幕正中央下方), 或是用 CTRL_PrintScrn 抓下全螢幕畫面也可以 :-) 這是今天要繳交的第 3 張畫面或圖片 !
  以下是 toneMeloday 這內建範例的內容,
此程式碼用到 pitched.h 內定義各音符的頻率 !
你可以自己在 Arduino IDE 點開該檔案(上課會 Demo)並看看,
例如中央 A (即A4) 的頻率是 440 Hz (學過鋼琴或樂理不是太爛的都知道 :-)

//toneMelody.cpp
#include "pitches.h"

// notes in the melody:
int melody[ ] = {
  NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4
  };
int kkk = sizeof(melody)/sizeof(int);   /// kkk 表示有幾個音符在 melody[ ] 
/// 注意, 上面這句是我新加入的 !
// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
  4, 8, 8, 4,4,4,4,4 
  };

void setup() {
  // iterate over the notes of the melody:
  for (int thisNote = 0; thisNote < kkk; thisNote++) {   /// kkk 是幾個音符 !
     /// 注意, 上面的 kkk 原先在範例中是寫 8, 現在改用上面算出的 kkk 

    // to calculate the note duration, take one second 
    // divided by the note type.
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
    int noteDuration = 1000/noteDurations[thisNote];
    tone(8, melody[thisNote],noteDuration);

    // to distinguish the notes, set a minimum time between them.
    // the note's duration + 30% seems to work well:
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    // stop the tone playing:
    noTone(8);
  }
}

void loop() {
  // no need to repeat the melody.
}
//
關於 Arduino IDE 內建音符與頻率對照表 pitches.h 這檔案, 你可以在叫入以上範例之後, 點該 pitched.h 頁面查看對照表之外, 也可以點這連入 arduino.cc 查看關於 tone 的教學網頁

    你可以把以上範例中的 melody[ ] 和 noteDurations[ ] 兩個陣列(Array)換為以下內容,
看看測試時會聽到蝦密音樂 !?
  (_ 這個測試純是好玩, 不必繳交這個測試的畫面也不必描述結果! _)
該兩個陣列(Array)是記錄歌曲音符與節拍長度的資訊 !

//Super Mario; 超級馬力
    int melody[ ] = {
    NOTE_E4, NOTE_E4, NOTE_E4, NOTE_C4, NOTE_E4, NOTE_G4, NOTE_G3,  
    NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, 
    NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3,
    NOTE_C4, NOTE_G3, NOTE_E3, NOTE_A3, NOTE_B3, NOTE_AS3, NOTE_A3, NOTE_G3, 
    NOTE_E4, NOTE_G4, NOTE_A4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_C4, NOTE_D4, NOTE_B3,
    NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, 
    NOTE_D4, NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_C5, NOTE_C5, NOTE_C5,
    NOTE_G4, NOTE_FS4, NOTE_E4, NOTE_DS4, NOTE_E4, NOTE_GS3, NOTE_A3, 
    NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_DS4, NOTE_D4, NOTE_C4,
    NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, 
    NOTE_G3, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4,
    NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, NOTE_A3, NOTE_G3
    };  // 
	int kkk = sizeof(melody)/sizeof(int);   /// kkk 表示有幾個音符在 melody[ ] 
    // note durations: 4 = quarter note, 8 = eighth note, etc.:
//////// 
    int noteDurations[ ] = {
    8,4,4,8,4,2,2,
    3,3,3,4,4,8,4,8,
    8,8,4,8,4,3,8,8,3,
    3,3,3,4,4,8,4,8,
    8,8,4,8,4,3,8,8,2,
    8,8,8,4,4,8,8,4,8,8,
    3,8,8,8,4,4,4,8,2,
    8,8,8,4,4,8,8,
    4,8,8,3,3,3,1,
    8,4,4,8,4,8,4,8,
    2,8,4,4,8,4,1,
    8,4,4,8,4,8,4,8,2
    };
///////// End of Super Mario; 超級馬力

// 注意,  程式中要改控制的 Loop 次數: 

  // iterate over the notes of the melody:
  for (int thisNote = 0; thisNote < kkk; thisNote++) {
  /// 
(4)測試以下小程式碼, 然後試著自己稍微亂改內容之後, 寫出觀察到的測試結果(最少20字, 最多50字); 緊接著貼入你修改後的全部程式碼(上課會 Demo 如何做 !) (注意, 這第四小題是要貼程式碼, 不是貼螢幕抓圖喔 !)

//(4)第四小題, 要寫測試狀況, 並複製你改過後的程式碼貼入簽到文章第四項!
// 測試看看發出蝦密聲音 ? by tsaiwn@ydu.edu.tw
int gg = 8;   // buzzer Pin 接蜂鳴器
int lowFREQ = 168;  // 最低發音頻率
int highFREQ = 888;  // 最高發音頻率
/// 隨便寫的 :-)
int yya =6, yyb=9;   // 間隔 千分之 6 秒(升高), 千分之9秒(下降)
int highLast = 1234;   // 1.234 秒, 高音頻持續
int highSTOP = 1;  // 1 表示趨近於 0
int lowSTOP = 888;  // 0.888 秒; 每次停止音頻 0.888秒
// 可以修該以上參數重新測試看看
void setup( ){ 
   pinMode(gg, OUTPUT);
   tone(gg, 262); delay(999); noTone(gg); delay(533);
   tone(gg, 294);delay(999);  noTone(gg); delay(533);
   tone(gg, 330);delay(2222);   noTone(gg); delay(533);
}
int timeLast = 8;
void loop( ) {
  if(millis( ) > timeLast*1000) return;
  for(int i=lowFREQ; i <= highFREQ; ++i) {
     tone(gg, i);  delay(yya);
  } // for(i
  delay(highLast);
  noTone(gg );  // 停止發聲音
  delay(highSTOP); // highSTOP = 1 
  for(int i=highFREQ; i >= 222; --i) {  // 故意只降低到 222
     tone(gg, i); delay(yyb);
  } //
  noTone(gg );
  delay(lowSTOP);  //  lowSTOP = 888 = 0.888 秒
} // loop(
////////////////////
** 注意, 必須稍做修改並測試, 不可把我的範例直接貼上你簽到文章喔 !
(5)讓蜂鳴器演奏兩隻老虎, 如果可以, 順便閃爍 LED 則更好 :-) 請用 Google.com 查詢 arduino 蜂鳴器 + 兩隻老虎 自己找一篇喜歡的兩隻老虎範例, 複製其範例程式碼來測試, 並貼入你簽到文章證明! (注意, 這第五小題也是要貼程式碼, 不貼螢幕抓圖喔 !) 如果你沒找到滿意的, 可以點這連入以下這會唱又會點亮LED燈的作品案例: http://www.maoyouhui.org/forum.php?mod=viewthread&tid=307 請想辦法把程式代碼複製去 Arduino 測試, 注意程式碼中使用的 Arduino pin 顯然需要改喔(該範例的tonepin 是 5, led 是 1) !! (上課會 Demo 展示, 請注意看喔 !) 並且要複製程式代碼貼在你的簽到文章內第五項 (5)以下是我測試的"兩隻老虎"程式碼: 之下方! 通常網頁如果有程式碼, 大多會提供一個 "複製代碼" 的按鈕以便複製, 但是, 你會發現複製之後, 貼入文字窗後有時會全部變一列很難看, 此時你可以開啟 WordPad (壓住左下角的視窗鍵並按 R 表示要 RUN, 然後輸入 wordpad 並按 ENTER鍵 即可), 把複製來的程式代碼先貼入 WordPad 窗內, 隨便按一下 ENTER 鍵, 然後敲 CTRL_A 全選, CTRL_C 複製, 再來就可到其他窗去 CTRL_V 貼上 !
請注意
, 以上網頁中的範例是自己定義各音符頻率對應的變數名稱, 各頻率不太符合標準; 其中 L6 代表低音 6 (La), M5 代表中音 5 (Sol), 如果你發現少了 M6, 就自己加入, 它的頻率就是 L6 的兩倍; 同理, M7 頻率是 L7 的兩倍 !! 以下是兩隻老虎這兒歌的簡譜:

其實, 有了這"兩隻老虎"的簡譜, 你可以把(3)中說的 Arduino 範例 toneMelody 程式碼的內容稍微修改就可奏出兩隻老虎囉 ! 就是說, 只要換掉範例中的 melody[ ]noteDurations[ ] 這兩個陣列(Array); 注意, 中音的 1 (Do) 就是 C4, 中音的 2 (Re) 就是 D4, ... (就是說 C D E F G A B = 1 2 3 4 5 6 7) 根據Arduino 內建範例檔案 pitches.h, 則兩隻老虎第一小節為: int melody[ ] = { NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, //... }; // melody[ ] int noteDurations[ ] = { 4,4,4,4, // ... }; // noteDurations[ ] /// 低音的 5 (Sol) 就是 NOTE_G3, 低音的 6 (La) 就是 NOTE_A3
那..用該toneMelody範例修改後要如何順便控制 LED 閃爍呢? 其實很簡單, 在該範例程式碼中每次發音之後, 有以下這兩句: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); 這意思是拖延 1.3 倍的該音符時間, 我們只要改為如下五句即可: int pauseBetweenNotes = noteDuration * 1.00; // 等倍數 // 弄亮 LED, 就是用 digitalWrite(ledPin, HIGH); 輸出 HIGH 到 LED 的 Pin 腳 delay(pauseBetweenNotes); // 弄熄掉 LED, 就是 digitalWrite(ledPin, 0); // 0 就是 LOW; 注意 ledPin 這變數 ! delay( 0.3 * noteDuration); // 沒聲音的時間不要亮燈 !

(6)這子題只是要你測試兩個 Arduino 的 .ino 檔案, 自己測試並稍微研究一下程式碼即可, 不必抓圖也不必貼程式碼 :-) 點這抓回 moreWeek03.zip(滑鼠右鍵另存新檔) 然後, 解壓縮之後你可以看到兩個子目錄(資料夾), 裡面各有一個測試蜂鳴器的範例, 請把兩個範例都叫入測試看看 ! (上課會 Demo) (兩個範例使用不同方法發音, 不要因為不必繳交就不測試喔 ! ) (7)加分題(影片) -- 拍下你實驗過程影片可有額外加分, 並可抵免缺課三小時 ! (a)把你實驗三色LED與蜂鳴器的過程拍成影片(至少30秒, 至多3分鐘)上傳到 youtube 標題要含有"育達科大多遊系Arduino實驗第三次", 關鍵字(keyword)要有"育達科大" 和 "多遊系", 和 "Arduino"; (b)然後把該影片的網址分享在你今天簽到文章最後, 標題寫"你學號 你姓名 的第三次 Arduino 實驗證據:"; *** 請注意: 這影片中要先拍到你螢幕上 Notepad 顯示你學號姓名, 還有, 至少要看到你正在使用 Arduino IDE, 包括開啟IDE後設定板子型號, 設定板子所在的 COM Port, 然後開啟或修改 LED 閃爍範例並上傳到 Uno 板子執行, 然後轉而拍你的 Arduino 板子 LED 燈閃爍的情況 ! 注意整個影片至少30秒, 至多3分鐘 !!

C調 3/4  我是隻小小鳥 
1 1 1 |3.21 |3 3 3 |5. 43 |5 4 3|2--| 我是隻 小 小鳥,飛就飛,叫 就叫,自由逍 遙。
2- 17b |1 2 3 |4- 32 |3 4 5 | 54 3 2|1--| 我 不知 有憂愁,我不知 有煩惱,只是 常歡 笑。




叮噹 -- 我是隻小小鳥

丁噹-我是一隻小小鳥-MV官方完整版(Youtube)
小星星





//好啦, 關於"兩隻老虎", 再給多一點提示, 
//以下是"兩隻老虎"的前四個小節..
//toneMelody.cpp
#include "pitches.h"
// notes in the melody:
int melody[ ] = {
   NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4,   NOTE_C4, NOTE_D4, NOTE_E4, NOTE_C4, 
   NOTE_E4, NOTE_F4, NOTE_G4, 0,    NOTE_E4, NOTE_F4, NOTE_G4, 0,
   0
  };  // 以下這句很重要 ! 很重要 ! 很重要 ! 
int kkk = sizeof(melody)/sizeof(int);   /// kkk 表示有幾個音符在 melody[ ]  
/// 注意, 上面這句是我新加入的 ! 原先範例直接寫 8 那樣是不好的寫法 !! 
// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
  4,4,4,4, 4,4,4,4,
  4,4,4,4, 4,4,4,4,
  0

  };  // 注意這陣列(Array)的元素個數不可比放音符的 melody[ ] 陣列還少 !! 
//
//注意程式中那句 for( int ... 的 8 要改為 kkk
//////

點這看蔡老師寫的 "Arduino 初體驗" 講義(pdf)


极客工坊- http://www.geek-workshop.com/

Arduino中文社? http://arduino.cn

Arduino.tw 教學課程

Play Robot 飆機器人論壇 http://www.playrobot.com/

Arduino 官方論壇 Forum.Arduino.cc

Arduino.cc 官方網站
Arduino.Org -- 另一個Arduino官網

物聯網應用的概念很簡單, 通常是(但不是唯一):
   (1)從 Arduino I/O 接腳讀取 感測器蒐集的資料 
   (2)處理資料 (依據創意與應用)
   (3)從 Arduino I/O 接腳輸出資料 控制各種設備(例如LED燈或蜂鳴器等)
各種開發板上的 Arduino I/O 接腳不盡相同, Arduino Uno 開發板共有20支I/O pin接腳,
每支 pin接腳都可設定成讀取 1 或 0, 也可設定成輸出 1 或 0, 此時稱數位(Digital)輸入與輸出;
其中有六支(pin 3, 5, 6, 9, 10, 11)可做類比(Analog)輸出, 可輸出 0 到 255之間的值;
另有六支(A0, A1, .. A5; 又稱 14, 15, ..19)主要做類比輸入(Analog input), 可以使用
analogRead(pinN) 讀取 pinN 腳傳入 0 到 1023 的值。
(這 A0 到 A5六支類比 pin 腳也可以設定成數位接腳(Digital Pin), 變成只讀取或輸出 0 與 1)

初學者想了解更多關於 Arduino UNO 硬體I/O接腳, 以及電阻與麵包板簡介等,
可以點這看蔡老師寫的 "Arduino 初體驗" 講義(pdf)

如何安裝 Arduino 開發板子的驅動程式?

(一)首先當然要先找到 Arduino IDE 軟體(廢話)
   在學校(育達科技大學)電腦開機選多媒體區(Multimedia), 桌面上就可找到 Arduino 資料夾,
   裡面是 Arduino IDE 1.0.6, 這版本其實比 1.5.x 還新, 這 1.0.6 版本唯一的壞處就是範例內
   沒有放電路連接圖, 但因它只有 93MB, 所以官方網站現在還是建議初學者用這板本 :-)
   * 如果你希望每次匯入範例之後可以看到建議的電路連接圖, 那就抓至少1.6.6之後版本!
   * 以下已經幫忙抓回 IDE 1.8.7 版本並加入 ArduBlock 放在學校數位學習網站:   
         你可以點這裡抓已加入 ArduBlock 官方最後一版 的 Arduino 1.8.7 (184MB)

你也可以點這裡抓這已經放入 ArduBlock 的 Arduino IDE 1.6.13版(154MB)
(二)把 Arduino Uno 板子用 A公B公的 USB線連接到電腦之後, 如果電腦不認識該板子, 則必須先安裝 Arduino 驅動程式之後才可以使用 Arduino IDE 開發環境 ! 要使用 Arduino IDE, 只要到 Arduino IDE 根目錄內點擊 Arduino.exe 兩下即可啟動! 為了方便, 可把 A 公頭先連接 USB 延長線再接電腦USB 你可開啟電腦的"裝置管理員"看看是否認識 Arduino Uno板子, 若已經認識則不必安裝!
(三)安裝 Arduino 開發板子的驅動程式: (需要記得你的 Arduino IDE 在何處!) (1)進入裝置管理員, 找到無法辨識的設備, 更新其驅動程式 用滑鼠右鍵點電腦(Computer)選"管理", 然後點"裝置管理員", 參考下圖找到不明設備(無法辨識的設備), 用滑鼠右鍵點選更新/安裝驅動程式: (2)在彈出的窗選擇 "手動尋找並安裝驅動程式軟體" (3)瀏覽到 Arduino IDE 目錄內驅動程式目錄 注意以下我是放在 "圖片" 目錄中, 如果你是用開機到 Multimedia 多媒體區, 則學校是把 Arduino IDE 放在桌面 !! (4)點確定之後它會彈出另一小窗問你要安裝此裝置軟體嗎? 這時當然要點"安裝" 順便 "永遠信任來自 Arduino LLC 的軟體" (5)安裝好驅動程式後, 找出 Arduino Uno 板子所在的通訊埠(Port; 大陸稱"端口") 例如下圖中顯示 Arduino Uno 板子是在 COM4
[惡搞]千里之外-改版欠我十塊


5招強化記憶力的方法!
(Top 5 Tips To Improve Your Memory)

https://tw.voicetube.com/videos/28354



以下是第一週看過的, 沒手也能彈鋼琴, 再看一次來激勵一下自己 :-)


You are the Stat-Counter.org -th visitors to this page.
    Top

※※※ CopyLeft by tsaiwn@ydu.edu.tw