第二章 LCD液晶顯示屏&聲控裝置&播放音樂&遙控器

這節我將帶你們瞭解亮寧機器人編程的基礎部分。編程

LCD液晶顯示屏

LCD液晶顯示屏是在實現某種功能和調試中不可缺乏的部分,接下來我帶你們學習,如何使用LCD液晶顯示屏。函數

首先咱們把LCD液晶顯示屏插入主板的指定接口,而後接上數據線,打開Arduino輸入如下程序。學習

#include <LNDZ.h> lc lcd; //聲明一個lcd設備
void init() { lcd.begin(16, 2);//告訴電腦當前顯示器是一行16個字符,2行的規格
  lcd.bg(1);      //開啓背光,0則是關閉背光
} void repeat() { lcd.clear();//清屏
    lcd.print("Welcome to LCD");//輸出內容
    delay(200);//防止閃屏
}

上傳程序成功後,你會在機器人的LCD液晶顯示器上看到"Welcome to LCD"字樣。在這裏先和你們講一下亮寧機器人程序的結構,首先#include<LNDZ.h>是亮寧機器人的標準庫,機器會從void init()開始執行程序,執行完後就開始執行void repeat()裏面的程序,你能夠把這個函數理解爲while(1){...}。這就是亮寧機器人程序的基本結構。ui

 

聲控裝置

你們應該都看過樓梯間的聲控開關吧,那聲控開關究竟是採用什麼樣的原理,下面我來帶領你們探究一下。spa

首先咱們仍是電腦接上數據線並打開Arduino輸入如下程序:調試

#include <LNDZ.h> lc lcd; void init() { lcd.begin(16, 2); lcd.bg(1); } void repeat() { int d=sound();//獲取聲音的值
 lcd.clear(); lcd.print(d); delay(200); }

在上傳程序成功後你能夠看到LCD液晶顯示器上會出現一個數字,你試着在主板旁邊擊掌,顯示器上的數值會隨着你擊掌的聲音越大而越小,因此你能夠經過值來判斷當前的聲音大小。code

 

播放音樂

還記得第零章的警報程序嗎!仔細研究的同窗會發現,機器人發聲是由於「beep()」起到的做用。由於「beep(300)」,這個函數的意思是鳴叫300ms;而後「delay(200),這個函數的意思是延遲200ms,也就是暫停機器發出聲音200ms。你會以爲這個聲音很單調乏味,因此下面我來帶領你們學習一下亮寧機器人怎麼實現音樂的播放。首先咱們一塊兒來了解下機器人發聲函數的基本用法。blog

#include <LNDZ.h>
void init() { B_start(); tone(11,2); //括號第一個參數爲音符,第二個參數表示停留時間 參數*100ms
tone(11,2);//11~17表示低音的1~7
tone(21,2); //21~27表示中音的1~7
tone(31,2); //31~37表示高音的1~7
}

在學習完發聲函數的基本用法後,咱們再來用亮寧機器人彈一首《兩隻老虎》吧!可能有的人會想說,哇就彈《兩隻老虎》的音樂,音符程序就要寫這麼多,要是更大的曲子該怎麼辦呀!如今該發揮你的聰明才智的時候了,下面請看如下的程序代碼。接口

#include <LNDZ.h>
#define YIN 20
double t[32][2] = { {1, 3}, {2, 3}, {3, 3}, {1, 3}, {1, 3}, {2, 3}, {3, 3}, {1, 3}, {3, 3}, {4, 3}, {5, 6}, {3, 3}, {4, 3}, {5, 6}, {5, 1.5}, {6, 1.5}, {5, 1.5}, {4, 1.5}, {3, 3}, {1, 3}, {5, 1.5}, {6, 1.5}, {5, 1.5}, {4, 1.5}, {3, 3}, {1, 3}, {1, 3}, {-5, 3}, {1, 6}, {1, 3}, {-5, 3}, {1, 6} }; void init() { B_start(); for (int i = 0; i < 32; ++i) t[i][0] = t[i][0] + 20; } void repeat() { for (int i = 0; i < 32; ++i){ tone((int)t[i][0], t[i][1]);//音符,停留時間*100
 } }

這樣寫是否是代碼量要小不少了!因此程序不要盲目地編寫,在寫以前要想一想怎麼「偷懶」哦!three

上傳完程序,按下開始按鈕。你就會聽見機器播放《兩隻老虎》了,是否是很棒。你也能夠嘗試一下其餘音樂。

 

遙控器

#include <LNDZ.h> ir ykq;//聲明遙控器
der jst;//聲明接收器
void init() { ykq.start(); B_start(); } void repeat() { if (ykq.decode(&jst)) {    //機器收到遙控信號
    switch (jst.value)    //判斷按下哪一個鍵
 { case one: { beep(500); } break; case two: { tone(17, 10); } break; case three: { tone(37, 10); } break; default: break; } ykq.next(); } }

 

程序上傳完畢後,用遙控分別按下1,2,3鍵後,機器會發出不一樣的聲音。經過觀察和實驗代碼,你們應該對遙控器程序的基本使用方法有了必定的瞭解。不過必定要注意的是:這一段程序必定要放在repeat()裏面,由於機器要不停的檢測遙控所發出的信號。若是要查找其餘的按鍵名,你們能夠打開「亮寧機器人可視化編程系統」查找裏面的具體圖文模塊說明,在可視化編界面裏面會告訴你怎麼用。

相關文章
相關標籤/搜索