附錄 D 示波器與邏輯分析儀操作速查
這一頁是站在儀器前面、手放在旋鈕上的時候看的。示波器的部分用「步驟清單」寫,照著做就能把波形叫出來;D.2 那張表直接告訴你全書每一種訊號要轉到哪一格。邏輯分析儀的部分照 PulseView 的畫面順序寫。最後 D.4 回答一個很多人會問的問題:兩台都在,該用哪一台?
不同牌子的示波器按鈕位置和名字會差一點,但功能都一樣。下面用「最常見的名字」寫,括號裡是另一種常見叫法。
安全提醒(每次都要):探棒的黑色鱷魚夾一定接電路的 GND。本書電路最高只有 12 V,探棒和示波器都很安全,但鱷魚夾夾錯地方會把電路短路,元件可能燒掉。
D.1 示波器操作步驟清單
步驟 1:開機與探棒補償(第一次用這台示波器、或換了探棒時做)
- 按電源鍵,等開機畫面消失(約 10–30 秒)。
- 探棒的 BNC 接頭插到 CH1,順時針轉半圈卡住。
- 探棒上的小開關撥到 10×。本書從頭到尾都用 10×,因為它比較不會干擾電路。
- 在示波器面板上找到 CH1 按鈕,按下去,在畫面選單裡把 探棒(Probe)設成 10×。這一步沒做,讀值會差 10 倍(附錄 E)。
- 找到面板上標著「Probe Comp」或「~ 5V 1kHz」的兩個小金屬片。探棒勾子勾在上面那片(方波訊號),鱷魚夾夾下面那片(GND)。
- 按 Auto Set(Autoscale),畫面會出現方波。
- 看方波的角:
- 四個角方方正正 → 補償正確,不用動。
- 角上翹(過衝)或角被削圓 → 用探棒附的小螺絲起子,轉探棒 BNC 端的小螺絲,一邊轉一邊看,直到角變成直角。
補償正確 補償不足(圓角) 補償過度(尖角)
┌────┐ ╭────╮ ┐┌───┐
│ │ │ │ ││ │
──┘ └── ──╯ ╰── ──┘└ └──
- 拔下探棒,去量真正的電路。
步驟 2:接上電路
- 鱷魚夾夾電路的 GND(麵包板藍色負軌、Arduino 的 GND 腳)。
- 探棒的勾子勾你要看的那一點(例如 Arduino D9、電阻的某一腳)。勾不到的時候先插一條杜邦線到麵包板,再勾杜邦線。
- 接第二個通道時,兩支探棒的鱷魚夾都接 GND,而且是同一個 GND。
步驟 3:Auto Set(先讓它自己試)
- 按 Auto Set(Autoscale / Autoset)。
- 等 1–2 秒,大部分穩定的重複訊號(方波、PWM、tone)會直接出現。
- Auto Set 失敗的情況:訊號是直流(會出現一條線但格子可能很怪)、訊號只出現一次(按鈕彈跳、尖波)、訊號太慢(1 Hz Blink)。這些要用步驟 4 手動調。
步驟 4:手動調整(順序很重要:先垂直、再水平、最後觸發)
4a. 先調 V/div(垂直刻度,Vertical Scale 旋鈕)
- 想一下訊號最高是幾 V。Arduino 是 5 V、ESP32 是 3.3 V、電池 9 V。
- 畫面垂直通常有 8 格。挑一個 V/div 讓訊號占 3–6 格:5 V 訊號用 1 V/div(占 5 格)或 2 V/div(占 2.5 格)。
- 轉 Vertical Position 旋鈕把 0 V 的線(畫面左邊有個小箭頭標著通道號)移到畫面下方第 1 或第 2 格,這樣往上才有空間。
- 在 CH1 選單裡把耦合(Coupling)設成 DC。本書幾乎都用 DC。AC 耦合會把直流部分去掉,看電池會看到 0 V。
4b. 再調 s/div(水平刻度,Horizontal Scale 旋鈕)
- 想一下訊號一個週期多久(不知道就查 D.2 的表)。
- 畫面水平通常有 10 格(有些 12 或 14 格)。挑一個 s/div 讓畫面裡出現 2–5 個週期。例如 490 Hz PWM 週期約 2 ms,用 500 µs/div 一格半一個週期,畫面會有 5 個左右。
- 要看細節(例如方波的上升邊),再把 s/div 轉小。
4c. 最後調觸發(Trigger)
- 找到 Trigger 區的旋鈕(Level)和 Menu 按鈕。
- 來源(Source)選 CH1(或你要當基準的那個通道)。
- 類型選 Edge(邊緣),斜率(Slope)選 上升(Rising ↑)。
- 轉 Level 旋鈕把觸發準位放在訊號的中間:5 V 訊號放 2.5 V、3.3 V 訊號放 1.6 V。畫面右邊會有個小箭頭標示準位在哪。
- 模式(Mode):
- Auto:沒觸發到也會一直畫,看直流或亂找訊號時用。
- Normal:沒觸發到就停住等。波形穩定後改成 Normal,畫面才不會閃。
- Single:觸發一次就停,看一次性的事件用(見步驟 6)。
- 波形還在左右跑 → 觸發準位可能在訊號範圍外(例如放到 6 V 了),轉回訊號中間。還是跑 → 換一個通道當來源,或把 Holdoff 稍微加大。
步驟 5:讀數字(Measure 與 Cursor)
自動量測(Measure):
- 按 Measure 鈕。
- 選來源通道,加入你要的項目。本書常用:
- Vpp(峰對峰電壓)
- Vmax / Vmin(最高、最低)
- Vavg / Mean(平均電壓,看 PWM 濾波後很有用)
- Freq(頻率)、Period(週期)
- +Duty(正占空比)
- +Width(HIGH 的時間,量伺服脈波用)
- 數字會出現在畫面下方或旁邊。畫面裡要有至少 1 個完整週期,頻率才算得出來。
游標(Cursor):
- 按 Cursor 鈕。
- 選 Time(時間,垂直兩條線) 或 Voltage(電壓,水平兩條線)。
- 用旋鈕把兩條線分別移到你要量的兩個位置,畫面會顯示 ΔT(時間差) 或 ΔV(電壓差),以及 1/ΔT(換算的頻率)。
- 量按鈕彈跳的持續時間、量 RC 充電到 63% 花多久,都用游標。
步驟 6:抓一次性事件(Single)
- 先照步驟 4 把 V/div、s/div 設好(這時候畫面可能還是空的,沒關係)。
- 觸發模式設成 Normal,來源、斜率、準位設好。尖波通常是上升緣、準位設得比正常電壓高一點(例如 8 V);按鈕彈跳是下降緣、準位 2.5 V。
- 按面板上的 Single 鈕,它會亮起來,示波器進入「等待」狀態。
- 去做那件事(按下按鈕、關掉馬達)。
- 示波器抓到就會自動停住,畫面定格。
- 用 Horizontal Position 旋鈕左右捲動,用游標量。
- 要再抓一次,再按一次 Single。按 Run/Stop 回到連續模式。
步驟 7:存圖
- 插 USB 隨身碟到示波器前面板的 USB 孔(有些機型要先格式化成 FAT32)。
- 按 Save/Recall(或 Storage、Print)。
- 類型選 Image(BMP / PNG)。
- 按 Save 或 Press to Save。有些機型面板上有專用的「相機」或「列印」鍵,按一下就直接存。
- 存的檔案拿去貼在實驗紀錄裡。沒有隨身碟的話,用手機對著畫面拍也可以,拍之前先按 Run/Stop 讓畫面停住。
D.2 要看什麼訊號 → 設定對照表
這張表假設探棒設 10×、耦合 DC、垂直 8 格、水平 10 格。數字是「起始值」,看到波形後再微調。
| 要看的訊號 | 章節 | V/div | s/div | 觸發設定 | 畫面應該長這樣 |
|---|---|---|---|---|---|
| 電池直流(9 V 或 6 V) | 6 | 2 V | 1 ms(隨便) | Auto 模式 | 一條平的直線,在 0 V 線上方 4.5 格(9 V)或 3 格(6 V)。 |
| Arduino 1 Hz Blink(D9 或 D13) | 12 | 2 V | 200 ms | Auto,上升緣,2.5 V | 很慢的方波,畫面一格一格從左畫到右,0.5 s 高、0.5 s 低。用 Normal 會等很久。 |
| 490 Hz PWM(analogWrite D9) | 14 | 2 V | 500 µs | Normal,上升緣,2.5 V | 方波,週期約 2 ms(4 格),HIGH 的寬度隨 analogWrite 數值變。 |
| 980 Hz PWM(D5、D6) | 14 | 2 V | 200 µs | Normal,上升緣,2.5 V | 方波,週期約 1 ms(5 格)。 |
| 1 kHz tone()(蜂鳴器腳) | 10 | 2 V | 200 µs | Normal,上升緣,2.5 V | 50% 方波,週期 1 ms。Measure Freq 應顯示約 1.000 kHz。 |
| RC 充放電(10 kΩ × 100 nF,τ = 1 ms,用 100 Hz 方波推) | 5 | 1 V | 1 ms | Normal,上升緣,來源接方波的 CH1 | CH1 方波;CH2 是圓滑的充電曲線往上爬、再往下掉,像鯊魚鰭。5 ms 大約充飽。 |
| RC 充放電(10 kΩ × 100 µF,τ = 1 s,用按鈕手動充放) | 5 | 1 V | 1 s | Auto 模式,捲動(Roll)模式更好 | 畫面慢慢從右往左捲,電壓慢慢爬上去再慢慢掉下來。 |
| SG90 伺服 50 Hz 脈波 | 14 | 2 V | 5 ms | Normal,上升緣,2.5 V | 很瘦的脈波,每 20 ms(4 格)一個。轉 s/div 到 500 µs 可看清楚脈波寬 1–2 ms。 |
| 反電動勢尖波(關掉電感/馬達瞬間) | 7 | 5 V | 100 µs | Single,上升緣,準位 8 V | 一個很高很瘦的尖刺,可能衝到 20–40 V 以上,然後迅速掉回來。加了飛輪二極體後尖刺消失。 |
| 按鈕彈跳(D2 接上拉電阻) | 11 | 2 V | 1 ms | Single,下降緣,2.5 V | 按下去的瞬間不是一刀切下來,而是在 5 V 和 0 V 之間亂跳好幾次,持續 0.1–5 ms。 |
| UART 9600(Arduino TX 腳 D1) | 15 | 2 V | 200 µs | Single,下降緣,2.5 V | 每個位元約 104 µs 寬(半格),一個字元 10 個位元約 1 ms。平常是 HIGH,開始傳才往下掉。 |
| I2C 100 kHz(CH1 = SCL、CH2 = SDA) | 15 | 2 V | 20 µs | Single,來源 CH2(SDA),下降緣,1.6 V | CH1 一串整齊的時脈,每格 2 個;CH2 在時脈之間變化。SDA 在 SCL 是 HIGH 時往下掉就是「開始」。 |
| PWM 經 RC 低通濾波後 | 10 | 1 V | 500 µs | Normal,來源接濾波前的 CH1 | CH1 方波;CH2 幾乎是直線,只剩一點點鋸齒。改 analogWrite 數值,CH2 的直線會上下移。 |
| 電晶體集極電壓反相 | 9 | 2 V | 500 µs | Normal,來源 CH1(基極方波) | CH1 HIGH 的時候 CH2 LOW,CH1 LOW 的時候 CH2 HIGH,剛好相反。 |
| 半波整流(自製線圈的交流經 1N4007) | 8 | 500 mV | 10 ms | Auto 模式 | 整流前(CH1)上下都有;整流後(CH2)只剩上半,下半被削平成 0。 |
D.3 邏輯分析儀與 PulseView 速查
安裝 PulseView
- 到 sigrok 官網(sigrok.org)的 Downloads 頁面下載 PulseView。Windows 下載 .exe 安裝檔,macOS 下載 .dmg,Linux 下載 AppImage。
- 安裝時勾選 包含驅動程式(fx2lafw firmware) 的選項(預設有勾)。
- Windows 要多做一步:便宜的 USB 邏輯分析儀插上去之後,Windows 會裝錯驅動。
- 下載 Zadig(zadig.akeo.ie)。
- 插上邏輯分析儀,打開 Zadig,選單 Options → List All Devices。
- 下拉選到邏輯分析儀(名字可能是「USB Logic Analyzer」、「Unknown Device #1」或「fx2lafw」)。
- 右邊的驅動選 WinUSB,按 Install Driver(或 Replace Driver)。
- 完成後重新插拔一次。
- macOS 和 Linux 不用裝驅動,但 Linux 可能要用 sudo 執行或設定 udev 規則(PulseView 的說明頁有寫)。
裝置選擇
- 打開 PulseView。
- 工具列左上角按 「
<No Device>」 那個下拉,選 Connect to Device。 - 驅動(Driver)選 fx2lafw (generic driver for FX2 based LAs)。
- 介面(Interface)選 USB,按 Scan for devices using driver above。
- 下面出現「Saleae Logic」或「fx2lafw」就點它,按 OK。
- 工具列會變成裝置名稱,旁邊有 取樣數 和 取樣率 兩個下拉。
取樣率(Sample Rate)與取樣數(Samples)
規則:取樣率至少是訊號頻率的 4 倍,保險用 10 倍。取樣數決定能錄多久:錄的時間 = 取樣數 ÷ 取樣率。
| 要看的訊號 | 建議取樣率 | 建議取樣數 | 能錄多久 |
|---|---|---|---|
| 1 Hz Blink | 1 kHz | 10 k | 10 秒 |
| 按鈕彈跳 | 1 MHz | 1 M | 1 秒 |
| 490 Hz PWM | 100 kHz | 100 k | 1 秒 |
| UART 9600 | 1 MHz | 1 M | 1 秒 |
| UART 115200 | 4 MHz | 4 M | 1 秒 |
| I2C 100 kHz | 2 MHz | 2 M | 1 秒 |
| I2C 400 kHz | 8 MHz | 8 M | 1 秒 |
| SPI 1 MHz | 16–24 MHz | 10 M | 約 0.5 秒 |
- 8 個通道全開的時候,便宜的邏輯分析儀最高只能到 24 MHz;只開 3 個通道可以更高,但本書用不到。
- 取樣數太多會等很久、電腦會卡;先用 1 M 試。
接線(GND 必接)
邏輯分析儀 Arduino / ESP32 / 麵包板
┌─────────┐
│ CH0 ●───┼─────────────── 要看的訊號 1(例如 TX、SDA)
│ CH1 ●───┼─────────────── 要看的訊號 2(例如 SCL)
│ CH2 ● │
│ ... │
│ GND ●───┼─────────────── GND ← 沒接這條什麼都看不到
└─────────┘
│
USB → 電腦
- 先接 GND,再接訊號線。
- 訊號線用母對母或公對母杜邦線接到要看的腳位(用「並聯」的方式掛上去,不要拆掉原本的線)。
- 通道電壓只能是 0–5 V 的數位訊號。不要接 9 V 電池、不要接反電動勢尖波、不要接交流。
- 在 PulseView 左邊的通道名稱上點兩下可以改名,把 D0 改成 TX、D1 改成 SDA,之後看比較不會搞混。
擷取
- 按工具列的 Run(綠色三角)。
- 擷取進行中去觸發訊號(例如按 Arduino 的 RESET 讓它重新印 Serial,或讓 OLED 更新畫面)。
- 擷取完會自動停。用滑鼠滾輪放大縮小,按住拖曳左右移動。
- 什麼都沒看到(全部一條線)→ 查附錄 E「邏輯分析儀全高/全低」。
加解碼器(Protocol Decoder)
UART(第 15 章 Serial.println):
- 工具列按 Add protocol decoder(黃綠色的圖示)。
- 搜尋 UART,點兩下加入。
- 畫面下方出現一條 UART 軌,點它的名稱開設定:
- RX:選接到 Arduino TX 的那個通道(我們是「聽」Arduino 講話,所以接在解碼器的 RX)。
- TX:可以不選。
- Baud rate:9600(要和程式裡 Serial.begin() 的數字一樣)。
- Data bits:8
- Parity:none
- Stop bits:1
- 這組就是常說的 9600 8N1。
- 放大波形,UART 軌上會出現一個個字元(例如 H、e、l、l、o)。看不懂的話把 Data format 改成 ASCII。
I2C(第 15 章 OLED):
- 加入 I²C 解碼器。
- 設定:SCL 選接 SCL 的通道、SDA 選接 SDA 的通道。
- 放大到看得到時脈,I2C 軌會顯示 Start → Address write: 3C → ACK → Data: … → Stop。
- 看到 3C 就對了,那是 OLED 的位址。
其他常用: SPI、PWM(會直接算占空比和頻率)、Timing(量兩個邊緣之間的時間)。
常見問題
| 問題 | 原因與做法 |
|---|---|
| Scan 找不到裝置 | Windows 沒裝 WinUSB 驅動(用 Zadig);USB 線只能充電不能傳資料;換一個 USB 孔。 |
| 全部通道都是一條直線 | GND 沒接;通道接錯腳;取樣率太低看不到變化;Arduino 根本沒在送(先用示波器或板上 LED 確認)。 |
| UART 解出亂碼或「Frame error」 | 鮑率設錯;取樣率不到鮑率的 4 倍;RX/TX 選反。 |
| I2C 只解出一堆錯誤 | 取樣率不夠(I2C 100 kHz 至少 1 MHz,建議 2 MHz);SDA/SCL 選反。 |
| 擷取到一半電腦很卡 | 取樣數太大,降到 1 M 以下。 |
| 擷取完畫面空白 | 擷取時間太短,訊號還沒發生就結束了。把取樣數加大,或先按 Run 再讓訊號發生。 |
D.4 示波器 vs 邏輯分析儀,什麼時候用哪個
一句話:示波器看「電壓長什麼樣」,邏輯分析儀看「0 和 1 排成什麼順序」。
| 示波器 | 邏輯分析儀 | |
|---|---|---|
| 看到的東西 | 連續的電壓曲線,任何高度 | 只有 HIGH 和 LOW 兩種 |
| 通道數 | 2 | 8 |
| 能看直流嗎 | 能(電池、分壓點) | 不能(只會顯示一條線) |
| 能看圓滑的曲線嗎 | 能(RC 充放電、濾波後的 PWM、正弦波) | 不能 |
| 能看尖波、雜訊、彈跳嗎 | 能,而且看得到有多高 | 彈跳看得到,但不知道有多高 |
| 能解 UART / I2C 的內容嗎 | 高階機型可以,入門機型不行 | 可以,而且是強項 |
| 能錄很長一段時間嗎 | 幾個畫面 | 可以錄好幾秒、幾百萬個點 |
| 價錢 | 一萬到幾萬 | 幾百塊 |
| 接線 | 探棒 + 鱷魚夾 | 杜邦線 |
用示波器的時候:
- 第 5 章看電容充放電曲線。
- 第 6 章學儀器本身。
- 第 7 章看反電動勢尖波(邏輯分析儀看不到高度,而且尖波超過 5 V 會傷到它)。
- 第 8 章看整流前後的波形。
- 第 9 章看電晶體集極電壓。
- 第 10 章看濾波前後、看蜂鳴器頻率。
- 第 14 章量伺服脈波寬度、PWM 占空比。
- 任何「這個腳到底有沒有電壓、是幾 V」的問題。
用邏輯分析儀的時候:
- 第 11 章看按鈕彈跳(也可以用示波器,但邏輯分析儀能錄比較長)。
- 第 15 章解 UART 看到字元、解 I2C 看到 0x3C。
- 第 16 章同時看好幾個腳位誰先誰後。
- 任何「這兩條線的時間順序是什麼」「晶片到底傳了什麼內容」的問題。
兩台一起用的時候:
- 先用示波器確認訊號電壓正常(HIGH 真的有 5 V 或 3.3 V、沒有超過 5 V),再接邏輯分析儀解碼內容。
- 兩台的 GND 都接電路 GND,可以同時掛在同一條線上。