第五章 基礎專題2

在這個章節,你將會學會:

  • 良好的程式寫作習慣。
  • 如何找出程式碼的錯誤,減少失誤。

CH5-1 程式語法之寫作習慣

1. setup( ), loop( )區塊先寫好

void setep()

{

}

void loop()

{

}

2. 利用TAB鍵對程式碼排版

void loop()

{

for(int i=0; i<5; i++)

{

a = a - 5;

if(i==1)

{

b += 3;

}

}

}

3. 對齊括號

void loop()

{

for(int i=0; i<5; i++)

{

a = a - 5;

if(i==1)

{

b += 3;

}

}

}

4. 註解的使用

\/*

Project:

Arthur:

*\/

int led = 12; \/\/宣告變數led,初始化為1

常見的錯誤

  1. 忘記加分號。

  2. 漏掉右括號。

  3. 忘記宣告變數,就直接使用。

  4. 所有行為都要在setup( ), loop( ) 括號內。

CH5-2 LCD 1602實驗

實習清單

實驗名稱 LCD1602應用
預期實驗結果 使用LCD顯示指定的文字
實驗目的 瞭解LCD 1602的基本操作
材料清單 Ø Arduino*1 Ø LCD1602*1 Ø 50K可變電阻*1

元件介紹

1602液晶在應用中非常廣泛,最初的1602液晶使用的是HD44780控制器,現在各個廠家的1602模組基本上都是採用了與之相容的IC,所以特性上基本都是一致的。

1602LCD主要技術參數

顯示容量為16×2個字元;

晶片工作電壓為4.5~5.5V;

工作電流為2.0mA(5.0V);

模組最佳工作電壓為5.0V;

字元尺寸為2.95×4.35(W×H)mm。

1602液晶介面引腳定義

介面說明:

1、兩組電源 一組是模組的電源 一組是背光板的電源 一般均使用5V供電。本次試驗背光使用3.3V供電也可以工作。

2、VL是調節對比度的引腳,串聯不大於5KΩ的電位器進行調節。本次實驗使用1KΩ的電阻來設定對比度。其連接分高電位與低電位接法,本次使用低電位接法,串聯1KΩ電阻後接GND。

3、RS 是很多液晶上都有的引腳 是命令\/資料選擇引腳 該腳電平為高時表示將進行資料操作;為低時表示進行命令操作。

4、RW 也是很多液晶上都有的引腳 是讀寫選擇端 該腳電平為高是表示要對液晶進行讀操作;為低時表示要進行寫操作。

5、E 同樣很多液晶模組有此引腳 通常在匯流排上信號穩定後給一正脈衝通知把資料讀走,在此腳為高電平的時候匯流排不允許變化。

6、D0—D7 8 位雙向平行匯流排,用來傳送命令和資料。

7、BLA是背光源正極,BLK是背光源負極。

1602液晶的基本操作分以下四種:

實習步驟與說明

LCD 1602使用一般接線法時,會佔據太多的PIN腳,導致如果需要增加感測器時腳位不足的困擾,所以LCD1602有四線接法,所謂的四線接法,是指D0~D7的資料線只接D4~D7的資料線,原本八條資料線會一次傳送8位元的資料,而接4條資料線則是一次傳送4位元資料傳送兩次。

.

電路實作

佈線圖

Arduino程式實作

完整程式碼

01 #include <LiquidCrystal.h> \/\/調用arduino自帶的LiquidCrystal庫 02 LiquidCrystal lcd(7,8,9,10,11,12);\/\/設置接口 03 04 void setup() 05 { 06 lcd.begin(16, 2); \/\/初始化LCD 07 delay(1000); \/\/延時1000ms 08 } 09 10 void loop () 11 { 12 \/\/-----------lcd設定-------------------- 13 14 lcd.clear(); \/\/清屏 15 lcd.setCursor(0,0); \/\/設定指標從第一行第一個位置開始 16 17 for( int numb=0 ; numb<10; numb++) \/\/lcd顯示0~9 18 { 19 lcd.print(numb); 20 delay(300); \/\/每個數字停留0.3秒 21 } 22 23 delay(500); \/\/當0~9全物顯示時停留0.5秒 24 } 25

隨堂作業

1、 第一行依序顯示0~9、第二行依序顯示9~0,請使用FOR迴圈

2、 請在第一行顯示自己的英文名,第二行顯示手機號碼

CH5-3 程式語法之外部函式庫使用

在這個章節,你將會學會:

Ø 外部函式庫的使用

什麼是外部函式庫?

Arduino內建許多函數,例如你常用的DigitalWrite(),DigitalRead(),但事實上,Arduino還有數以百計的元件可以搭配使用,可是假如有個最新的元件,有自己的函式庫,提供我們方便使用,那到底我們要怎麼樣去呼叫使用呢?

外部函數的使用

以LCD實習為例,LCD的廠商,自己設計了許多函數,包括清除畫面、設定游標等等大大小小的功能,我們如果想使用,要注意兩個部分:

  1. 宣告標頭檔,如第1行。

  2. 查詢使用手冊,得知此函式庫可提供的功能。如第6行,LCD有初始化的函數begin()。

01 #include <LiquidCrystal.h> \/\/調用arduino自帶的LiquidCrystal庫

02 LiquidCrystal lcd(7,8,9,10,11,12); \/\/宣告LCD的pin腳

03

04 void setup()

05 {

06 lcd.begin(16, 2); \/\/初始化LCD

07 delay(1000); \/\/延時1000ms

08 }

09

10 void loop ()

11 {

12 lcd.clear(); \/\/清除畫面

13 lcd.setCursor(0, 0) ; \/\/設置游標位置為第一行第一個位置

14 lcd.print("Hello Arduino"); \/\/LCD顯示文字

15 }

以上就是外部函式庫的使用,尤其注意標頭檔的宣告,Arduino才會知道,你要使用的函數,是來自於外部函式庫的喔,請使用各式各樣的新電子元件練習看看吧。

CH5-4 LCD 溫度警報器

實習清單

實驗名稱 溫度警報器
預期實驗結果 使LCD可以顯示溫度 ,超過一定溫度蜂鳴器發出聲響警告
實驗目的 利用多種元件做出實用的功能
材料清單 Ø Arduino*1 Ø LCD1602*1 Ø LM35DZ*1 Ø 無源蜂鳴器*1 Ø 50K可變電阻*1

電路實作

佈線圖

Arduino程式實作

完整程式碼

#include <LiquidCrystal.h> \/\/調用arduino自帶的LiquidCrystal庫 LiquidCrystal lcd(7,8,9,10,11,12);\/\/設置接口 03 04 void setup() 05 { 06 lcd.begin(16, 2); \/\/初始化LCD 07 delay(1000); \/\/延時1000ms 08 } 09 10 void loop () 11 { 12 13 \/\/以下為LM35DZ溫度感應器的數值讀取 14 15 int n= analogRead(A0); \/\/讀取A0口的電壓值 16 float temp = n * (5.0 \/ 1024.0*100); \/\/使用浮點數存儲溫度數據,溫度數據由電壓值換算得到 17 18 19 \/\/-----------lcd設定-------------------- 20 21 lcd.clear(); \/\/清屏 22 lcd.setCursor(0, 0) ; \/\/設置光標位置為第一行第一個位置 23 lcd.print("temp="); \/\/使屏幕顯示文字temp= 24 lcd.print(temp); \/\/顯示目前溫度 25 lcd.print("C"); \/\/使屏幕顯示文字C 26 27 28 \/\/-----------如果溫度超過31.5度則螢幕顯示Warning並且警報器響起-------------------- 29 if(temp>31.50) 30 31 { 32 lcd.setCursor(0, 1) ; \/\/設置光標位置為第2行第一個位置 33 lcd.print("Warning"); \/\/使屏幕顯示文字Warning 34 tone(2,500,100); \/\/警報器以500HZ 響100毫秒 35 36 } 37 delay(100); \/\/延時0.1秒,這裡也就是刷新速度。 38 39 }

results matching ""

    No results matching ""