12
苗栗鄉下成長的我,儘管生活質樸,但不時也會受到軌道車一類的 奢侈品誘惑。記得小學時,家父總說鮮艷的油漆有毒、機械對人不 好,即便我苦求多次,仍堅守不買軌道車的底線。某個週六下午,家父叫 醒還在午睡的我,說要一起纏線圈、切木頭,我久久無法理解。 直到看到家父手繪的設計圖時,我才知道,原來家父要我一起把軌道車製 作出來,而且包含 RC 控制電路,對一個國小的學生來說,得以自製軌道 車,是何等幸福呢!最後因為計算錯誤與切割出了小問題,自製跑車不是 很順暢,但真的會動,我猶記得父子倆開心的模樣。隨著年齡的增長,我 陸續選擇了自然組、進入大學的電資學院接受高等教育,日後還參與開發 了手機、數位電視,和一系列的機電整合系統。然而,熱情卻也在無形中 被消磨,不復出現當時為了製作小東西而不顧自身能力投入其中的純粹。 很高興見到 John Boxall 的大作《Arduino Workshop: A Hands-On Introduction with 65 Projects》有了中文譯作,此書藉由 65 個涵蓋通訊、網際網路、無線 通訊、電子數位邏輯控制、資料匯流排、GPS 定位、自走坦克車、觸控螢 幕和使用者界面等,到種種擴充 Arduino 的途徑,相信在您閱讀後,必定有 「原來這樣就可自製的喜悅」。而作者引導讀者的方式,也就是所謂「打造 原型」的做法,亦即直接進入實驗的階段,藉由實地電子組裝,進行程式設 計,並思索互動裝置設計的技巧,啟發讀者去打造專屬的創意作品。 以往,若有電子處理的需求,人們總會直覺想到找工程師,請求他們逐一 由若干小元件拼湊出整個電路,並且撰寫特製的韌體和應用軟體,這使得 具備創意的人士,始終無法親手接觸電子的領域。畢竟,大多數的工具都 是為工程師設計,而操作工具又需要廣泛深入的知識。這幾年終於出現轉 變,Arduino 作為是一款開放授權的互動開發平台,看似陽春不起眼的小 板子,卻能讓初學者經由短暫的學習,就能動手打造符合期望的電子雛 推薦序

iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

iv

在苗栗鄉下成長的我,儘管生活質樸,但不時也會受到軌道車一類的

奢侈品誘惑。記得小學時,家父總說鮮艷的油漆有毒、機械對人不

好,即便我苦求多次,仍堅守不買軌道車的底線。某個週六下午,家父叫

醒還在午睡的我,說要一起纏線圈、切木頭,我久久無法理解。

直到看到家父手繪的設計圖時,我才知道,原來家父要我一起把軌道車製

作出來,而且包含 RC 控制電路,對一個國小的學生來說,得以自製軌道

車,是何等幸福呢!最後因為計算錯誤與切割出了小問題,自製跑車不是

很順暢,但真的會動,我猶記得父子倆開心的模樣。隨著年齡的增長,我

陸續選擇了自然組、進入大學的電資學院接受高等教育,日後還參與開發

了手機、數位電視,和一系列的機電整合系統。然而,熱情卻也在無形中

被消磨,不復出現當時為了製作小東西而不顧自身能力投入其中的純粹。

很高興見到 John Boxall 的大作《Arduino Workshop: A Hands-On Introduction

with 65 Projects》有了中文譯作,此書藉由 65 個涵蓋通訊、網際網路、無線

通訊、電子數位邏輯控制、資料匯流排、GPS 定位、自走坦克車、觸控螢

幕和使用者界面等,到種種擴充 Arduino 的途徑,相信在您閱讀後,必定有

「原來這樣就可自製的喜悅」。而作者引導讀者的方式,也就是所謂「打造

原型」的做法,亦即直接進入實驗的階段,藉由實地電子組裝,進行程式設

計,並思索互動裝置設計的技巧,啟發讀者去打造專屬的創意作品。

以往,若有電子處理的需求,人們總會直覺想到找工程師,請求他們逐一

由若干小元件拼湊出整個電路,並且撰寫特製的韌體和應用軟體,這使得

具備創意的人士,始終無法親手接觸電子的領域。畢竟,大多數的工具都

是為工程師設計,而操作工具又需要廣泛深入的知識。這幾年終於出現轉

變,Arduino 作為是一款開放授權的互動開發平台,看似陽春不起眼的小

板子,卻能讓初學者經由短暫的學習,就能動手打造符合期望的電子雛

推薦序

Page 2: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

v

推薦序

型,並學習電子和感測器的基本知識,於是,小小的投資,卻創造出獨一

無二的設計作品的原型,一如當初家父和我在二十年前所做的事,但更為

簡單。本書最棒的地方,就是廣泛多元的實例,並且給予豐富的指引,至

於初學者最擔心無處購買電子零件的議題,也充分說明。

打從 2005 年冬天,由 Massimo Banzi、David Cuartielles、David Mellis 等

人設計出最早的 Arduino 電路板以來,無論是數位創作者、學生,還是

熱情洋溢的朋友們,就著手透過豐富的資源、多樣的開發工具,來執行

互動設計專案,甚至可說,此平台已成為一種全球現象,燃起 maker(自

造者)、hacker(黑客),以及藝術家們的想像力,一如創辦人 Massimo

Banzi 的說法:「Arduino is open-sourcing imagination」。誠然,若說開

放原始碼軟體是因為 AOSP(Android Open Source Project)而受到廣泛的

重視,那麼,在開放硬體領域,Arduino 也有著相似的地位。在此之前,

雖已有人推動開放硬體,但始終只在極小眾的電子工程師社群間激起微

小的漣漪,但當 Arduino 硬體設計即將設計圖放到網路上,採用創用 CC

(Creative Commons)的開放版權保護授權方式,並且積極和相關的開放

原始碼專案合作後,才為開放硬體打開了一扇大門。

不同於傳統專注於軟體或硬體的主題設定,Arduino 社群更致力於推廣互

動式設計。在我們生活週遭,有著無數的電子、光學,和機械裝置,而如

何與它們產生互動,其實充滿了各種趣味,正如 Massimo Banzi 所說,每

個人在某種程度上都是藝術家,Arduino 電路板藉由提供簡單的 I/O(輸入

輸出界面),讓玩家得以運用感測器偵測環境,並透過包裝良好的 API,

撰寫出回應控制程式,比方說閃爍燈光或控制馬達運轉一類的互動行為。

如此一來,人們得以從頭到尾創造自己的嶄新應用。

至於本書的閱讀方式,建議可先從快速瀏覽本書的應用案例開始,先思

考「未來我可以做什麼有趣的作品」開始,像是第 8 章「擴充 Arduino」

就是很好的切入點。Arduino 的擴充板相當多元,像是 GPS 接收器、

MicroSD 卡讀寫裝置、溫度感測器等等,您甚至可以自行製作,在「專案

#30:建立溫度記錄裝置」即展示簡短程式碼的大大妙用,不僅可測量溫

Page 3: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

vi

度資料,還能進一步匯入資料到試算表程式,從而分析並觀察整體溫度變

化趨勢。再來可瀏覽第 13 章「運用 GPS」,就如「專案 #44:建構簡易的

GPS 接收器」所展示,搭配 LCD 模組,可在 Arduino 快速呈現緯度與經度

資訊,爾後,「專案 #46:依據時間記錄移動物件的位置」則將 GPS 應用

於記錄移動的車輛、卡車、船隻或任何能夠移動的物件(當然,前提是該

目標物能接收到 GPS 訊號),稍後您可搭配 Google Maps,在電腦上檢視

其地理資訊甚至遙控,書本作者提供了簡短有趣的示範。

第 14、15、16 等三章則探討了無線通訊、紅外線控制,到 RFID,這使得

我們得以製作出較為複雜的專案,但書本地程式碼依然非常簡潔,硬體材

料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中

展示了一個有趣的範例:將 Arduino 的裝置狀態更新於 Twitter,若一併搭

配第 14、15、16 等三章,顯然有多種變化,讀者不免會好奇,那分處兩

地的 Arduino 裝置或者兩人,有什麼簡單又可兼顧遠距的方法呢?作者提

供了透過 GSM 來進行通訊的方法,如此,您已可站在本書指引的基礎,

能夠建立多種與通訊網路溝通的系統出來,比方說,您能夠在地下室淹水

時,即時收到文字簡訊,抑或經由您的行動電話開啟空調,而無須考慮身

處何處。

其他的章節則是奠定前述多種應用的基礎,有了信心後,相信讀者能夠快

速吸收書中這些淺顯易懂又在題材設定恰到好處的部份,無論是電子控

制、周邊處理,還是程式開發。創新不會在一夜之間發生,相反的,創新

是一系列有序事件的結果,唯有持續改善應用的內容或流程,並親自去動

手執行,才會把創新帶給我們。謹此與各位讀者朋友們共勉!

- Jserv

Jserv 長期投入開放原始碼軟體開發工作,並致力於軟硬體系統整合,同

時擔任聯發科技和工研院等單位的顧問,協助銜接開放系統的豐富資源和

活躍的社群。近期除了投入於醫療電子產業之外,也在成功大學、中正大

學,和臺北科技大學等校授課,與學生一同探討嵌入式系統和作業系統一

類的議題。http://about.me/jserv

Page 4: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

探索Arduino主板與整合開發環境(Exploring the Arduino

Board and the IDE)

在本章節中,你將同時探索 Arduino 主板與整合開發環境的軟體,

用來建立與上傳 Arduino 程式(Sketches,為 Arduino 程式的

名稱)至 Arduino 主板。你將會學到程式的基礎架構以及一些實作程

式時會用到的基本函式(Functions),此外,你將會建立和上傳你的第

一個程式。

2e x p l o r i n g t h e A r d u i n o B o A r d

A n d t h e i d e

In this chapter you’ll explore the Arduino board as well as the IDE software that you’ll use to create and upload Arduino sketches (Arduino’s name for its pro-grams) to the Arduino board itself. You’ll learn the basic framework of a sketch and some basic functions that you can implement in a sketch, and you’ll create and upload your first sketch.

the Arduino BoardWhat exactly is Arduino? According to the Arduino website (http://www.arduino.cc/), it is

an open-source electronics prototyping platform based on flex-ible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating inter-active objects or environments.

Page 5: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

34‧在整合開發環境中建立第一個程式 在整合開發環境中建立第一個程式‧

在開始之前,使用 USB 線將你的 Arduino 與電腦連結,接著開啟整合

開發環境,選擇 Tools > Serial Port,並確認 USB 埠已被選取,如此一

來將可確認 Arduino 主板已正確地被連結。

註釋(Comments)

首先,輸入一個註釋用來提醒自己此程式的用途為何。在程式中,註

釋可以是一個任意長度的備註,為求使用者便利所撰寫,不論是提醒

自己或其他人、輸入指令或備註各式各樣的細節,在程式的註釋中加

上備註都很有用。當你在撰寫 Arduino 程式(創建程式)時,根據你

的目的去增加註釋是一個很棒的做法。當你回過頭來再次檢視程式時,

就能了解這些註釋的用處了。

在一行程式中加上一個註釋,先輸入兩個斜線,接著就是註釋,如下:

// Blink LED sketch by Mary Smith, created 09/09/12

兩個斜線的用意是告訴整合開發環境,在檢查程式時,忽略接下來的

文字。(如同前述,當你檢查程式時,也等同於你在要求整合開發環境

檢查所有的程式是否有任何錯誤)。

欲將註釋拆為兩行或多行,在註釋開頭的上一行輸入 /* 字元,並在註

釋結尾的下一行輸入 */ 字元,如下:

/*Arduino Blink LED Sketchby Mary Smith, created 09/09/12*/

如同在單行的註釋加上兩個斜線,/* 與 */ 的用意也是在告訴整合開發

環境忽略掉他們括起來的文字。

Page 6: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

46‧電子元件 電子元件‧

表 3-1 列出電阻器的顏色與對應的值。

第五條色碼的顏色表示電阻器的容許公差(Tolerance),用來表示電阻

器量測的準確性。由於電阻器很難保有一定的製造準確性,當購買電

阻器時,你可以依照容許的誤差率選擇電阻器。棕色的色碼代表百分

之一的誤差值,金色代表百分之五,銀色則為百分之十。

圖 3-2 為電阻器的圖示,黃色、紫色和橘色的阻抗色碼分別為 4、7 和

3,如表 3-1 所列,這些值可轉換為 47,000Ω 或者一般讀為 47kΩ。

yellow orange

violet brown圖 3-2:電阻器的圖示範例

表3-1:電阻器上印製色碼代表的歐姆值

顏色 歐姆值

棕色 1

紅色 2

橘色 3

黃色 4

綠色 5

藍色 6

紫色 7

灰色 8

白色 9

黃色

紫色

橘色

棕色

Page 7: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

56‧專案 #1:產生閃爍的 LED 波動 專案 #1:產生閃爍的 LED 波動‧

1 5 10 15 20 25 30 35 40 45 50 55 60

1 5 10 15 20 25 30 35 40 45 50 55 60

ABCDE

FGHIJ

ABCDE

FGHIJ

SCL

SDA

AREF GND

IORE

F

RESE

T

3V3

PWM

PWM

PWM

L

TXRX ON

ICSP

PWM

PWM

PWM

TX RX

31

21

11

01

9 8DIGITAL

7 6 5 4 3 2 1 0

1

5V GndPOWER

www.arduino.cc

ANALOG INVin 0 1 2 3 4 5

Arduino UNO

LEDs 5 4 3 2 1

圖 3-13:專案 1 的電路設計

執行程式

現在,連接你的 Arduino 並上傳程式,等待一、兩秒鐘後,LED 燈

應該會從左閃爍到右然後再閃爍回到左,成功是一件美好的事,擁抱

她吧!

然而,如果沒有任何反應,請立即從 Arduino 拔下 USB 線並檢查你輸

入的程式是否正確;假如發現錯誤,請修正它後再次上傳你的程式;

假如你的程式完全正確但 LED 仍不閃爍,請確認麵包板上的接線是否

正確。

現在你知道如何使 Arduino 上的 LED 閃爍,但是這個程式的效率有點

不夠,舉例來說,如果你想要修改這個程式使 LED 的閃爍週期更快,

你將需要變更每個 delay(500),但還有更好的方法。

使用變數(Variables)‧

Page 8: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

69

建構單元

‧使用電路圖 使用電路圖‧

Chapter 4

辨識元件

一旦你了解符號的意思,閱讀電路圖就簡單多了,在開始之前,讓我

們檢視已使用過元件的符號為何。

Arduino

圖 4-2 為 Arduino 本身的電路圖,正如你所見,所有 Arduino 的連結器

都已顯示且簡潔地標記。

N/C

IO REF

SCL

SDA

RST

AREF

A0

A1

A2

A3

A4

A5

3V35V

Vin

Analog Input

D11

D10

D9

D8

D7

D6

D5

D4

D3

PWM

TXRX

PWM

PWM

PWM

PWM

PWM

D2

D1

D13

D12

D0

Digital Input/Output

Power

Arduino

GN

D

圖 4-2:Arduino Uno 的符號

電阻器

電阻器的符號如圖 4-3 所示。

使用電阻器的符號顯示電阻值和零件代號(本例為 220 Ω 和 R1)是個

很好的做法,這使得每個人(包括你)在嘗試了解電路圖時更加簡單,

通常你或許會看到歐姆被寫成 R,例如:220 R。

R1220Ω

圖 4-3:電阻器的符號

Page 9: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

70‧使用電路圖 使用電路圖‧

整流二極體

整流二極體的符號如圖 4-4 所示。

回憶一下第 3 章,整流二極體為極化且電流

從正極流至負極。在圖 4-4 所示的符號,正

極在左邊,而負極在右邊,一個簡單的記

憶法,電流只會從垂直線流向三角形的點,

電流不會流至其他方向,因為垂直的線「擋

住」它了。

LED

LED 的符號如圖 4-5 所示。

所有二極體系列共用一個共同的標誌:三角形

和垂直線。然而,LED 的符號使用兩個平行

的箭頭指離三角形,以表示 LED 正在發光。

電晶體

電晶體的符號如圖 4-6 所示,我們將使用這

個符號代表 BC548。

在符號上方的垂直線(標記為 C)代表集極,

左側的水平線(標記為 B)為基極,以及底

下的線(標記為 E)為射極。在符號內的箭

頭由上往右下指,告訴我們這是一個 NPN 型

電晶體,因為 NPN 電晶體允許電流由集極流至射極(PNP 型電晶體允

許電流由射極流至集極)。

圖 4-4:整流二極體的符號

Building Blocks 57

N/C

IO REF

SCL

SDA

RST

AREF

A0

A1

A2

A3

A4

A5

3V35V

Vin

Analog Input

D11

D10

D9

D8

D7

D6

D5

D4

D3

PWM

TXRX

PWM

PWM

PWM

PWM

PWM

D2

D1

D13

D12

D0

Digital Input/Output

Power

Arduino

GN

D

Figure 4-2: Arduino Uno symbol

The Resistor

The resistor symbol is shown in Figure 4-3.It’s good practice to display the resistor value

and part designator along with the resistor sym-bol (220 W and R1 in this case). This makes life a lot easier for everyone trying to make sense of the schematic (including you). Often you may see ohms written as R instead—for example, 220 R.

The Rectifier Diode

The rectifier diode is shown in Figure 4-4.Recall from Chapter 3 that rectifier diodes are

polarized, and current flows from the anode to the cathode. On the symbol shown in Figure 4-4, the anode is on the left and the cathode is on the right. An easy way to remember this is to think of current flowing toward the point of the triangle only. Current cannot flow the other way, because the vertical bar “stops” it.

The LED

The LED symbol is shown in Figure 4-5.All members of the diode family share a

common symbol: the triangle and vertical line. However, LED symbols show two parallel arrows pointing away from the triangle to indicate that light is being emitted.

R1220Ω

Figure 4-3: Resistor symbol

−cathode

+anode

D11N4004

current flow

Figure 4-4: Rectifier diode symbol

−cathode

+anode

LED1Red (633nm)

current flow

Figure 4-5: LED symbol

正極 負極

電流

Building Blocks 57

N/C

IO REF

SCL

SDA

RST

AREF

A0

A1

A2

A3

A4

A5

3V35V

Vin

Analog Input

D11

D10

D9

D8

D7

D6

D5

D4

D3

PWM

TXRX

PWM

PWM

PWM

PWM

PWM

D2

D1

D13

D12

D0

Digital Input/Output

Power

Arduino

GN

D

Figure 4-2: Arduino Uno symbol

The Resistor

The resistor symbol is shown in Figure 4-3.It’s good practice to display the resistor value

and part designator along with the resistor sym-bol (220 W and R1 in this case). This makes life a lot easier for everyone trying to make sense of the schematic (including you). Often you may see ohms written as R instead—for example, 220 R.

The Rectifier Diode

The rectifier diode is shown in Figure 4-4.Recall from Chapter 3 that rectifier diodes are

polarized, and current flows from the anode to the cathode. On the symbol shown in Figure 4-4, the anode is on the left and the cathode is on the right. An easy way to remember this is to think of current flowing toward the point of the triangle only. Current cannot flow the other way, because the vertical bar “stops” it.

The LED

The LED symbol is shown in Figure 4-5.All members of the diode family share a

common symbol: the triangle and vertical line. However, LED symbols show two parallel arrows pointing away from the triangle to indicate that light is being emitted.

R1220Ω

Figure 4-3: Resistor symbol

−cathode

+anode

D11N4004

current flow

Figure 4-4: Rectifier diode symbol

−cathode

+anode

LED1Red (633nm)

current flow

Figure 4-5: LED symbol圖 4-5:LED 的符號

正極 負極

紅色

電流

58 Chapter 4

The Transistor

The transistor symbol is shown in Figure 4-6. We’ll use this to represent our BC548.

The vertical line at the top of the symbol (labeled C) represents the collector, the horizon-tal line at the left represents the base (labeled B), and the bottom line represents the emitter (labeled E). The arrow inside the symbol, point-ing down and to the right, tells us that this is an NPN -type transistor, because NPN transistors allow current to flow from the collector to the emitter. (PNP -type transistors allow current to flow from the emitter to collector.)

When numbering transistors, we use the let-ter Q , just as we use R to number resistors.

The Relay

The relay symbol is shown in Figure 4-7.Relay symbols can vary in many ways

and may have more than one set of con-tacts, but all relay symbols share certain elements in common. The first is the coil, which is the curvy vertical line at the left. The second element is the relay contacts. The COM (for common) contact is often used as an input, and the contacts marked NO (normally open) and NC (nor-mally closed) are often used as outputs.

The relay symbol is always shown with the relay in the off state and the coil not energized—that is, with the COM and NC pins connected. When the relay coil is energized, the COM and NO pins will be connected in the symbol.

Wires in SchematicsWhen wires cross or connect in schematics, they are drawn in particular ways, as shown in the following examples.

currentflow

E

C

B

Q1

Figure 4-6: Transistor symbol

NO NC

COM

coil contacts

Figure 4-7: Relay symbol

圖 4-6:電晶體的符號

電流

Page 10: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

80‧專案 #4:示範數位輸入 專案 #4:示範數位輸入‧

電路圖

首先,在麵包板上建立如圖 4-19 的電路圖,注意這個 10kΩ 電阻器是

如何被連結在 GND 和第 7 個數位針腳,我們稱此為下拉電阻器(Pull-

down resistor),因為它使數位針腳的電壓降至大約零伏特。再者,藉

由加上一個 100nF 的電阻器跨接於 10Ω 電阻器,建立簡單的「去彈

跳」(Debounce)電路以協助濾掉開關彈跳,當按鈕被按下後,數位針

腳立即升到高,但是當按鈕被放開後,第 7 個數位針腳經由 10kΩ 電

阻器下拉到 GND,且 100nF 的電容器產生了一個小的延遲,藉由延緩

電壓下降至 GND,有效彌補了彈跳的脈衝,因此,消除大部分因浮動

電壓和不穩定的按鈕行為造成的判讀錯誤。

N/C

IO REF

SCL

SDA

RST

AREF

A0

A1

A2

A3

A4

A5

3V3 5V Vin

Analog Input

D11

D10

D9

D8

D7

D6

D5

D4

D3 PWM

TX

RX

PWM

PWM

PWM

PWM

PWM

D2

D1

D13

D12

D0

Dig

ital I

nput

/Out

put

Power

Arduino

GND

R1560Ω

LED1C1100nFR2

10kΩ

S1

圖 4-19:專案 4 的電路圖

Page 11: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

81

建構單元

‧專案 #4:示範數位輸入 專案 #4:示範數位輸入‧

Chapter 4

因為這是你第一次使用電路圖建造電路,遵循這些按部就班的指引與

電路圖,將會幫助你了解這些元件如何連接:

1. 將按鈕插至麵包板,如圖 4-20

所示。

2. 將麵包板逆時針旋轉 90 度並插

上 10kΩ 電阻器、一條短的連接

導線和電容器,如圖 4-21 所示。

圖 4-21:10kΩ 電阻器、電容器和按鈕

3. 從 Arduino 5V 針腳連接一條導線至麵包板上最左邊的垂直行,然

後將另一條導線從 Arduino GND 針腳連結至 5V 導線旁的插槽,

以及另一條導線從垂直的 GND 行連接至按鈕左下的針腳,如圖

4-22 所示。

圖 4-20:按鈕插入麵包板

10kΩ 電阻器

電容器

按鈕

Page 12: iv - 碁峰資訊epaper.gotop.com.tw/PDFSample/ach016400.pdf · 料也不難取得。第 19 章探討了如何透過 Arduino 連線到網際網路,書中 展示了一個有趣的範例:將

83

建構單元

‧專案 #4:示範數位輸入 專案 #4:示範數位輸入‧

Chapter 4

5. 將 LED 插在麵包板上,短的針腳(負極)連結至與 GND 相同的

行,而長的針腳(正極)連結至旁邊的列。接下來,連接 560Ω

的電阻器至 LED 的右側,如圖 4-24 所示。

圖 4-24:插上 LED 和 560Ω的電阻器

6. 560Ω 的電阻器右側連接一條導線至 Arduino 第 12 個數位針腳,

如圖 4-25 所示。

圖 4-25:將 LED 連結至 Arduino

560Ω電阻器

LED

正極