SlideShare a Scribd company logo
1 of 31
Download to read offline
Arduino導論
Revised on March 8, 2020
 微處理器概論
 Arduino Uno開發板
 ATmega328P MCU
 資料傳輸介面
 類比訊號處理
 Arduino Uno擴充板
 應用系統開發流程
 輸入單元(Input Unit)
用來接收外在資料的設備,例如:鍵盤、滑鼠、掃瞄器等
 輸出單元(Output Unit)
將電腦內部的資料或運算的結果輸出到外界的設備,例如:螢幕、印表機、喇
叭等
電腦基本結構 1/2
控制單元
算術邏輯單元
主記憶體
外部儲存裝置
輸入單元 輸出單元
 算術邏輯運算單元(Arithmetic & Logic Unit,ALU )
接收控制單元的命令,從記憶體取得資料作加、減、乘、除等各種算術運算
及大小比較,條件判斷等邏輯判斷工作,然後將處理後的結果存回記憶體
 記憶單元(Memory Unit)
用來儲存程式和資料的地方。內部記體體主要為動態隨機存取記憶
(Dynamic Random Access Memory,DRAM),外部記憶體主要為硬
碟(Hard Disk)
 控制單元(Control Unit,CU)
負責電腦的輸入、輸出、記憶、運算四大單元的聯繫與控制,由它負責協調
何時、何地,該由哪⼀個裝置進⾏工作
 CU與ALU設計製造上是放在⼀起的,稱為中央處理單元(CPU Central
Processing Unit)
電腦基本結構 2/2
 單晶片微電腦(single-chip microcomputer),又稱微控制器
(microcontroller unit,MCU),是把CPU、RAM、ROM、I/O介面等
全都整合在同⼀顆晶片上。也就是說⼀顆MCU晶片就可以看作是⼀部
超迷你型的電腦
 MCU它的最大優點是體積小,可放在儀表內部,適合用來設計控制系
統,但儲存容量小,輸入輸出介面簡單
單晶片微電腦
 ⼀款開放原始碼(open source)的單晶片微控制板
 2003年義大利伊夫雷雅(Ivrea)互動設計學院研究生Hernando
Barragán設計Wiring控制板(採用ATmega128微控制器),做為互動
設計工具;
 2005年,Arduino團隊採用更便宜的ATmega8微控制,推出Arduino
控制板
 提供數位I/O、10位元ADC類比輸入、PWM輸出
 支援UART、SPI、I2C傳輸
 可使用C like高階語言或積木式指令開發應用系統
 大量的週邊模組及開源函式庫
 對非資電專業⼈⼠⽽言也容易上⼿,是創客最常使用的平台之⼀
Arduino是什麼?
5
Arduino開發板
6
UNO
NANO
Yún mini
Lilypad
Micro Lead Frame Package
Plastic Dual Inline Package
ATmega328p
ATmega328P 1/7
Atmel公司
mega族系
程式記憶體容量(32K bytes Flash ROM)
8位元CPU
Pico Power(低功耗)ATmega328P
 8位元MCU Plastic Dual Inline Package (PDIP)
ATmega328P 2/7
8
 數位I/O接腳D0~D13
 PD0~PD7, PB0~PB5
 脈波寬度調變PWM輸出(D3, D5, D6, D9, D10, D11)
 模擬類比信號輸出
 PD3、PD5、PD6、PB1、PB2、PB3
 類比輸入接腳A0~A5
 PC0~PC5
 10位元解析度
 預設範圍0~5V,可使用AREF來調整電壓上限
 數位接腳不夠用時,也可拿來使用,宣告為D14~D19
ATmega328P 3/7
9
 I2C傳輸
 SDA(A4)、SCL(A5)
 串列埠傳輸
 RXD(D0)、TXD(D1)
 SPI傳輸
 MOSI(D11)、MISO(D12)、SCK(D13)
 2個8位元Timer/Counters
 1個16位元Timer/Counter
 外部中斷INT0、INT1
 D2、D3
ATmega328P 4/7
10
 131 Powerful Instructions (Most Single Clock Cycle
Execution)
 32 x 8 General Purpose Working Registers
 Up to 20 MIPS Throughput at 20MHz
 On-chip 2-cycle Multiplier
 32KBytes of In-System Self-Programmable Flash program
Memory (程式記憶體)
 1KBytes EEPROM (資料記憶體,系統斷電後,資料依然能夠留存)
 2KBytes Internal SRAM (資料記憶體)
 Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
 Data Retention: 20 years at 85°C/100 years at 25°C
 Current sinks and sources are 40mA
ATmega328P 5/7
11
ATmega328P 6/7
12
 32組8位元⼀般用途暫存器
 其中六個暫存器能組成3個16位元
間接定址暫存器
ATmega328P 7/7
13
Arduino UNO開發板
14
數位訊號接腳 (I/O),D0與D1也是UART傳輸
接腳;D10~D13也是SPI;~表示支援PWM輸出
電源指示燈
ICSP接頭
類比訊號輸入接腳電源輸出接腳
DC 9V插座
φ2.1mm,內正外負
穩壓IC
USB過載保護
(500mA)
Type B
USB接頭
重置按鈕
LED (D13)
串列傳輸LED
ATmega328p
16MHz
I2C SDA(與A4相連)
I2C SCL(與A5相連) SPI
USB Jack
Power Jack
 並列傳輸與序列傳輸
 並列傳輸
 序列傳輸
 ⼀個位元接著⼀個位元傳送
資料傳輸介面 1/8
GND GND
Clock Clock
D0
:
D7
D0
:
D7
GND GND
Clock Clock
Data Data
 同步傳輸與非同步傳輸
 同步傳輸
 非同步傳輸
 送收雙方沒有共用的時序信號
資料傳輸介面 2/8
GND GND
Clock Clock
Data Data
GND GND
Data Data
 通用非同步收發器(UART, Universal Asynchronous Receiver &
Transmitter)
 RS-232 (限1對1)
 RS-485 (最多接32 devices)
資料傳輸介面 3/8
17
 送收雙方須議定傳輸速率及封包格式
 傳輸速率:每秒傳送的位元數(bit per second,bps),也稱為鮑率
(baud rate)
 每個資料封包(package)由起始位元、資料位元、檢查位元及結束位
元組成
 在開始傳輸資料之前,Tx與Rx接腳都為高電位,要傳送資料時,先送出⼀
個代表「要開始傳送的通知」的起始位元(start bit,低電位)
 每組資料位元(data bits)⻑度可以是5~8位元
資料傳輸介面 4/8
18
 資料位元之後可以送出⼀個檢查位元
 無(None):不加檢查位元
 奇同位(Odd)
當資料位元有偶數個1時,則檢查位元為1,補成奇數;資料位元有奇數個1時,
則檢查位元為0,維持奇數
 偶同位(Even)
當資料位元有奇數個1時,則檢查位元為1,補成偶數;資料位元有偶數個1時,
則檢查位元為0,維持偶數
 標記(Mark):檢查位元始終為1
 空格(Space):檢查位元始終為0
同位元僅能辨別出奇數個bit錯誤,無法查出偶數個bit傳輸錯誤
資料傳輸介面 5/8
19
 封包最後是代表「傳送完畢」的停止位元(stop bit),1~2位元
 取樣
 通常是以鮑率的16倍頻工作,並在中⼼點附近取樣三次,三次結果⼀致才
視為正確,以避免因頻率漂移造成的取樣錯誤
資料傳輸介面 6/8
20
 積體電路匯流排(Inter-Integrated Circuit, I2C)
 資料線 (SDA, Serial Data Line) A4
 時脈線 (SCL, Serial Clock Line) A5
 理論上I2C可以連接128個裝置
 由Master主導資料送收
資料傳輸介面 7/8
21
 序列週邊介面(Serial Peripheral Interface, SPI)
 可以接多個裝置,⽽且傳輸速度比I2C更快(SD記憶卡就是這個介面),
與UART/RS-232⼀樣,發送與接收可同時進⾏
資料傳輸介面 8/8
22
 類比訊號(analog signal)
 連續變化的物理訊號,訊號的振幅、頻率或相位可能隨時間變化
 溫度、聲音、亮度、位移、壓力…
 數位訊號(digital signal)
 只有高電位、低電位兩種狀態
 TTL電氣訊號為正邏輯
 輸入:0.8V以下為LOW,2.0V以上為HIGH
 輸出:High為2.4V以上,LOW為0.4V以下
 微電腦只能處理數位訊號,類比訊號必須經過AD轉換才能處理
類比訊號與數位訊號
23
 脈衝寬度調變(Pulse Width Modulation, PWM)是⼀種透過數位的
方式來模擬類比輸出
 脈衝寬度調變訊號包含了兩個主要的參數:工作週期與頻率。工作週
期是指在⼀個訊號週期中,邏輯高準位輸出所佔的時間比例
 PWM常應用在調光燈具、馬達調速、伺服馬達角度控制等
脈波寬度調變 (PWM)
24
 微處理器是數位裝置,類比訊號必須經由ADC(Analog-to-Digital
Converter)轉換為數位訊號
 ADC程序
 取樣
 量化
 編碼
類比轉數位訊號處理 1/3
25
 取樣
 每隔多久時間檢測訊號⼄次
 取樣頻率愈高,取樣波形愈能精準跟隨類比訊號變化情形,但產生的取樣
資料筆數愈多。例如取樣頻率1kHz表示每秒會儲存1000筆資料
類比轉數位訊號處理 2/3
取樣 取樣
26
 量化
 將類比訊號需振幅區分成多少等份,若工作電壓5V,10位元ADC表示解析
度是5V/1024 = 4.88mV
 解析度愈高,取樣量化值與類比訊號實際值愈相近(誤差愈小),但每筆取
樣資料佔用更多資料位元。例如16位元解析度表示每筆取樣資料佔2bytes
類比轉數位訊號處理 3/3
解
析
度
解
析
度
27
Arduino Uno擴充板 (shields) 1/3
28
 S4A Sensor Board for Arduino (慧⼿科技)
Arduino Uno擴充板 (shields) 2/3
29
紅色LED D10
綠色LED D11
蜂鳴器 D9
開關 D2光敏電阻 A1
可變電阻 A0
N/A
TX
RX
GND
3.3V
N/A D12 D4
D8 D7 D6 D5
麥克風 A2
A5 D2 D3A4 A3 A5 A4
外接電源
 IoT maker board (普特企業)
Arduino Uno擴充板 (shields) 3/3
30
ESP8266
應用系統開發流程
31
連接硬
體電路
規劃系
統功能
編寫控
制程式
編譯
準備零件及材料 正確
修正
上傳
測試&驗
證
正確
修正
檢查USB連線

More Related Content

What's hot (18)

Microbit 1 introduction
Microbit 1 introductionMicrobit 1 introduction
Microbit 1 introduction
 
Arduino藍牙傳輸應用
Arduino藍牙傳輸應用Arduino藍牙傳輸應用
Arduino藍牙傳輸應用
 
Arduino Yun 物聯網 Lesson 1
Arduino Yun 物聯網 Lesson 1Arduino Yun 物聯網 Lesson 1
Arduino Yun 物聯網 Lesson 1
 
Arduino序列通訊
Arduino序列通訊Arduino序列通訊
Arduino序列通訊
 
Arduino Basic
Arduino BasicArduino Basic
Arduino Basic
 
Plc4
Plc4Plc4
Plc4
 
Arduino 習作工坊 - Lesson 4 通訊之夜
Arduino 習作工坊 -  Lesson 4 通訊之夜Arduino 習作工坊 -  Lesson 4 通訊之夜
Arduino 習作工坊 - Lesson 4 通訊之夜
 
Chapter 3 XBee無線遙控車
Chapter 3 XBee無線遙控車Chapter 3 XBee無線遙控車
Chapter 3 XBee無線遙控車
 
Arduino序列通訊應用
Arduino序列通訊應用Arduino序列通訊應用
Arduino序列通訊應用
 
Chapter 2 XBee無線傳輸
Chapter 2 XBee無線傳輸Chapter 2 XBee無線傳輸
Chapter 2 XBee無線傳輸
 
使用 Arduino 控制 ESP8266 的各種方式
使用 Arduino 控制 ESP8266 的各種方式使用 Arduino 控制 ESP8266 的各種方式
使用 Arduino 控制 ESP8266 的各種方式
 
Arduino 習作工坊 - Lesson 3 電音之夜
Arduino 習作工坊 -  Lesson 3 電音之夜Arduino 習作工坊 -  Lesson 3 電音之夜
Arduino 習作工坊 - Lesson 3 電音之夜
 
nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論
 
51单片机及其应用
51单片机及其应用51单片机及其应用
51单片机及其应用
 
Arduino感測應用
Arduino感測應用Arduino感測應用
Arduino感測應用
 
AMA 中級術科實作II
AMA 中級術科實作IIAMA 中級術科實作II
AMA 中級術科實作II
 
Arduino Yún使用sd card儲存監測資料
Arduino Yún使用sd card儲存監測資料Arduino Yún使用sd card儲存監測資料
Arduino Yún使用sd card儲存監測資料
 
第三章Ti msp430平台介紹 v3
第三章Ti msp430平台介紹 v3第三章Ti msp430平台介紹 v3
第三章Ti msp430平台介紹 v3
 

Similar to Arduino應用系統設計 - 導論

物聯網概論 - Arduino
物聯網概論 - Arduino物聯網概論 - Arduino
物聯網概論 - ArduinoXianDe Liao
 
認識 RoBoard 硬體
認識 RoBoard 硬體認識 RoBoard 硬體
認識 RoBoard 硬體roboard
 
Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得roboard
 
MS 7095 - P4MAM2-V2
MS 7095 - P4MAM2-V2MS 7095 - P4MAM2-V2
MS 7095 - P4MAM2-V2JORGE SCHLEE
 
Arduino Yun Mini簡介
Arduino Yun Mini簡介Arduino Yun Mini簡介
Arduino Yun Mini簡介Wei-Tsung Su
 
Arduino 與 s4 a
Arduino 與 s4 aArduino 與 s4 a
Arduino 與 s4 aWayne Huang
 
突破 計算機概論複習講義-電子試閱本
突破 計算機概論複習講義-電子試閱本突破 計算機概論複習講義-電子試閱本
突破 計算機概論複習講義-電子試閱本lungtengtech
 
物聯網技術分享 使用ESP8266
物聯網技術分享 使用ESP8266物聯網技術分享 使用ESP8266
物聯網技術分享 使用ESP8266Power Wu
 
IoT 與 WoT 物聯網裝置實作:使用 Arch Pro 與 mbed
IoT 與 WoT 物聯網裝置實作:使用 Arch Pro 與 mbedIoT 與 WoT 物聯網裝置實作:使用 Arch Pro 與 mbed
IoT 與 WoT 物聯網裝置實作:使用 Arch Pro 與 mbedBang Min Shiue
 
LinkIt ONE tutorial #1- Basics
LinkIt ONE tutorial #1- BasicsLinkIt ONE tutorial #1- Basics
LinkIt ONE tutorial #1- BasicsCAVEDU Education
 
单片机I/O口的使用
单片机I/O口的使用单片机I/O口的使用
单片机I/O口的使用ayoub lmaimouni
 
02 IoT implementation
02 IoT implementation02 IoT implementation
02 IoT implementation艾鍗科技
 

Similar to Arduino應用系統設計 - 導論 (20)

nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論nodeMCU IOT教學03 - NodeMCU導論
nodeMCU IOT教學03 - NodeMCU導論
 
Arduino overview
Arduino overviewArduino overview
Arduino overview
 
物聯網概論 - Arduino
物聯網概論 - Arduino物聯網概論 - Arduino
物聯網概論 - Arduino
 
S4 a sensor board
S4 a sensor boardS4 a sensor board
S4 a sensor board
 
AMA 中級術科實作III
AMA 中級術科實作IIIAMA 中級術科實作III
AMA 中級術科實作III
 
Arduino yún簡介
Arduino yún簡介Arduino yún簡介
Arduino yún簡介
 
認識 RoBoard 硬體
認識 RoBoard 硬體認識 RoBoard 硬體
認識 RoBoard 硬體
 
Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得Arduino 底層原始碼解析心得
Arduino 底層原始碼解析心得
 
MS 7095 - P4MAM2-V2
MS 7095 - P4MAM2-V2MS 7095 - P4MAM2-V2
MS 7095 - P4MAM2-V2
 
Microbit 1 overview
Microbit 1 overviewMicrobit 1 overview
Microbit 1 overview
 
Arduino Yun Mini簡介
Arduino Yun Mini簡介Arduino Yun Mini簡介
Arduino Yun Mini簡介
 
Arduino 與 s4 a
Arduino 與 s4 aArduino 與 s4 a
Arduino 與 s4 a
 
突破 計算機概論複習講義-電子試閱本
突破 計算機概論複習講義-電子試閱本突破 計算機概論複習講義-電子試閱本
突破 計算機概論複習講義-電子試閱本
 
物聯網技術分享 使用ESP8266
物聯網技術分享 使用ESP8266物聯網技術分享 使用ESP8266
物聯網技術分享 使用ESP8266
 
Step7
Step7Step7
Step7
 
IoT 與 WoT 物聯網裝置實作:使用 Arch Pro 與 mbed
IoT 與 WoT 物聯網裝置實作:使用 Arch Pro 與 mbedIoT 與 WoT 物聯網裝置實作:使用 Arch Pro 與 mbed
IoT 與 WoT 物聯網裝置實作:使用 Arch Pro 與 mbed
 
LinkIt ONE tutorial #1- Basics
LinkIt ONE tutorial #1- BasicsLinkIt ONE tutorial #1- Basics
LinkIt ONE tutorial #1- Basics
 
最终版
最终版最终版
最终版
 
单片机I/O口的使用
单片机I/O口的使用单片机I/O口的使用
单片机I/O口的使用
 
02 IoT implementation
02 IoT implementation02 IoT implementation
02 IoT implementation
 

More from 吳錫修 (ShyiShiou Wu)

mbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdfmbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdf吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdfmbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdf吳錫修 (ShyiShiou Wu)
 
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdfmbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf吳錫修 (ShyiShiou Wu)
 

More from 吳錫修 (ShyiShiou Wu) (20)

mbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdfmbot2.0教學-陀螺儀與三軸加速計應用.pdf
mbot2.0教學-陀螺儀與三軸加速計應用.pdf
 
mbot2.0教學-使用makeblock雲服務.pdf
mbot2.0教學-使用makeblock雲服務.pdfmbot2.0教學-使用makeblock雲服務.pdf
mbot2.0教學-使用makeblock雲服務.pdf
 
mbot2.0教學-局域網路傳輸應用.pdf
mbot2.0教學-局域網路傳輸應用.pdfmbot2.0教學-局域網路傳輸應用.pdf
mbot2.0教學-局域網路傳輸應用.pdf
 
mbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdfmbot2.0教學-四路顏色感測器應用.pdf
mbot2.0教學-四路顏色感測器應用.pdf
 
mbot2.0教學-聲光控制應用.pdf
mbot2.0教學-聲光控制應用.pdfmbot2.0教學-聲光控制應用.pdf
mbot2.0教學-聲光控制應用.pdf
 
mbot2.0教學-光感測器與LED應用.pdf
mbot2.0教學-光感測器與LED應用.pdfmbot2.0教學-光感測器與LED應用.pdf
mbot2.0教學-光感測器與LED應用.pdf
 
mbot2.0教學-超音波感測應用.pdf
mbot2.0教學-超音波感測應用.pdfmbot2.0教學-超音波感測應用.pdf
mbot2.0教學-超音波感測應用.pdf
 
mbot2.0教學-移動控制.pdf
mbot2.0教學-移動控制.pdfmbot2.0教學-移動控制.pdf
mbot2.0教學-移動控制.pdf
 
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdfmbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
mbot2.0教學-mblock5開發mBot 2.0應用程式.pdf
 
mbot2.0教學-組裝與測試.pdf
mbot2.0教學-組裝與測試.pdfmbot2.0教學-組裝與測試.pdf
mbot2.0教學-組裝與測試.pdf
 
Python元組,字典,集合
Python元組,字典,集合Python元組,字典,集合
Python元組,字典,集合
 
Python函式
Python函式Python函式
Python函式
 
Python串列資料應用
Python串列資料應用Python串列資料應用
Python串列資料應用
 
Python 迴圈作業
Python 迴圈作業Python 迴圈作業
Python 迴圈作業
 
Python分支作業
Python分支作業Python分支作業
Python分支作業
 
Python基本資料運算
Python基本資料運算Python基本資料運算
Python基本資料運算
 
建置Python開發環境
建置Python開發環境建置Python開發環境
建置Python開發環境
 
micro:bit加速度感測應用
micro:bit加速度感測應用micro:bit加速度感測應用
micro:bit加速度感測應用
 
C語言檔案處理
C語言檔案處理C語言檔案處理
C語言檔案處理
 
C語言列舉與聯合
C語言列舉與聯合C語言列舉與聯合
C語言列舉與聯合
 

Arduino應用系統設計 - 導論