狠狠撸

狠狠撸Share a Scribd company logo
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

Arduino應用系統設計 - 導論