Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

附錄 D 示波器與邏輯分析儀操作速查

這一頁是站在儀器前面、手放在旋鈕上的時候看的。示波器的部分用「步驟清單」寫,照著做就能把波形叫出來;D.2 那張表直接告訴你全書每一種訊號要轉到哪一格。邏輯分析儀的部分照 PulseView 的畫面順序寫。最後 D.4 回答一個很多人會問的問題:兩台都在,該用哪一台?

不同牌子的示波器按鈕位置和名字會差一點,但功能都一樣。下面用「最常見的名字」寫,括號裡是另一種常見叫法。

安全提醒(每次都要):探棒的黑色鱷魚夾一定接電路的 GND。本書電路最高只有 12 V,探棒和示波器都很安全,但鱷魚夾夾錯地方會把電路短路,元件可能燒掉。


D.1 示波器操作步驟清單

步驟 1:開機與探棒補償(第一次用這台示波器、或換了探棒時做)

  1. 按電源鍵,等開機畫面消失(約 10–30 秒)。
  2. 探棒的 BNC 接頭插到 CH1,順時針轉半圈卡住。
  3. 探棒上的小開關撥到 10×。本書從頭到尾都用 10×,因為它比較不會干擾電路。
  4. 在示波器面板上找到 CH1 按鈕,按下去,在畫面選單裡把 探棒(Probe)設成 10×。這一步沒做,讀值會差 10 倍(附錄 E)。
  5. 找到面板上標著「Probe Comp」或「~ 5V 1kHz」的兩個小金屬片。探棒勾子勾在上面那片(方波訊號),鱷魚夾夾下面那片(GND)。
  6. 按 Auto Set(Autoscale),畫面會出現方波。
  7. 看方波的角:
    • 四個角方方正正 → 補償正確,不用動。
    • 角上翹(過衝)或角被削圓 → 用探棒附的小螺絲起子,轉探棒 BNC 端的小螺絲,一邊轉一邊看,直到角變成直角。
   補償正確        補償不足(圓角)      補償過度(尖角)
   ┌────┐          ╭────╮              ┐┌───┐
   │    │          │    │              ││   │
 ──┘    └──      ──╯    ╰──          ──┘└   └──
  1. 拔下探棒,去量真正的電路。

步驟 2:接上電路

  1. 鱷魚夾夾電路的 GND(麵包板藍色負軌、Arduino 的 GND 腳)。
  2. 探棒的勾子勾你要看的那一點(例如 Arduino D9、電阻的某一腳)。勾不到的時候先插一條杜邦線到麵包板,再勾杜邦線。
  3. 接第二個通道時,兩支探棒的鱷魚夾都接 GND,而且是同一個 GND。

步驟 3:Auto Set(先讓它自己試)

  1. 按 Auto Set(Autoscale / Autoset)。
  2. 等 1–2 秒,大部分穩定的重複訊號(方波、PWM、tone)會直接出現。
  3. Auto Set 失敗的情況:訊號是直流(會出現一條線但格子可能很怪)、訊號只出現一次(按鈕彈跳、尖波)、訊號太慢(1 Hz Blink)。這些要用步驟 4 手動調。

步驟 4:手動調整(順序很重要:先垂直、再水平、最後觸發)

4a. 先調 V/div(垂直刻度,Vertical Scale 旋鈕)

  1. 想一下訊號最高是幾 V。Arduino 是 5 V、ESP32 是 3.3 V、電池 9 V。
  2. 畫面垂直通常有 8 格。挑一個 V/div 讓訊號占 3–6 格:5 V 訊號用 1 V/div(占 5 格)或 2 V/div(占 2.5 格)。
  3. 轉 Vertical Position 旋鈕把 0 V 的線(畫面左邊有個小箭頭標著通道號)移到畫面下方第 1 或第 2 格,這樣往上才有空間。
  4. 在 CH1 選單裡把耦合(Coupling)設成 DC。本書幾乎都用 DC。AC 耦合會把直流部分去掉,看電池會看到 0 V。

4b. 再調 s/div(水平刻度,Horizontal Scale 旋鈕)

  1. 想一下訊號一個週期多久(不知道就查 D.2 的表)。
  2. 畫面水平通常有 10 格(有些 12 或 14 格)。挑一個 s/div 讓畫面裡出現 2–5 個週期。例如 490 Hz PWM 週期約 2 ms,用 500 µs/div 一格半一個週期,畫面會有 5 個左右。
  3. 要看細節(例如方波的上升邊),再把 s/div 轉小。

4c. 最後調觸發(Trigger)

  1. 找到 Trigger 區的旋鈕(Level)和 Menu 按鈕。
  2. 來源(Source)選 CH1(或你要當基準的那個通道)。
  3. 類型選 Edge(邊緣),斜率(Slope)選 上升(Rising ↑)。
  4. 轉 Level 旋鈕把觸發準位放在訊號的中間:5 V 訊號放 2.5 V、3.3 V 訊號放 1.6 V。畫面右邊會有個小箭頭標示準位在哪。
  5. 模式(Mode):
    • Auto:沒觸發到也會一直畫,看直流或亂找訊號時用。
    • Normal:沒觸發到就停住等。波形穩定後改成 Normal,畫面才不會閃。
    • Single:觸發一次就停,看一次性的事件用(見步驟 6)。
  6. 波形還在左右跑 → 觸發準位可能在訊號範圍外(例如放到 6 V 了),轉回訊號中間。還是跑 → 換一個通道當來源,或把 Holdoff 稍微加大。

步驟 5:讀數字(Measure 與 Cursor)

自動量測(Measure):

  1. 按 Measure 鈕。
  2. 選來源通道,加入你要的項目。本書常用:
    • Vpp(峰對峰電壓)
    • Vmax / Vmin(最高、最低)
    • Vavg / Mean(平均電壓,看 PWM 濾波後很有用)
    • Freq(頻率)、Period(週期)
    • +Duty(正占空比)
    • +Width(HIGH 的時間,量伺服脈波用)
  3. 數字會出現在畫面下方或旁邊。畫面裡要有至少 1 個完整週期,頻率才算得出來。

游標(Cursor):

  1. 按 Cursor 鈕。
  2. 選 Time(時間,垂直兩條線) 或 Voltage(電壓,水平兩條線)。
  3. 用旋鈕把兩條線分別移到你要量的兩個位置,畫面會顯示 ΔT(時間差) 或 ΔV(電壓差),以及 1/ΔT(換算的頻率)。
  4. 量按鈕彈跳的持續時間、量 RC 充電到 63% 花多久,都用游標。

步驟 6:抓一次性事件(Single)

  1. 先照步驟 4 把 V/div、s/div 設好(這時候畫面可能還是空的,沒關係)。
  2. 觸發模式設成 Normal,來源、斜率、準位設好。尖波通常是上升緣、準位設得比正常電壓高一點(例如 8 V);按鈕彈跳是下降緣、準位 2.5 V。
  3. 按面板上的 Single 鈕,它會亮起來,示波器進入「等待」狀態。
  4. 去做那件事(按下按鈕、關掉馬達)。
  5. 示波器抓到就會自動停住,畫面定格。
  6. 用 Horizontal Position 旋鈕左右捲動,用游標量。
  7. 要再抓一次,再按一次 Single。按 Run/Stop 回到連續模式。

步驟 7:存圖

  1. 插 USB 隨身碟到示波器前面板的 USB 孔(有些機型要先格式化成 FAT32)。
  2. 按 Save/Recall(或 Storage、Print)。
  3. 類型選 Image(BMP / PNG)。
  4. 按 Save 或 Press to Save。有些機型面板上有專用的「相機」或「列印」鍵,按一下就直接存。
  5. 存的檔案拿去貼在實驗紀錄裡。沒有隨身碟的話,用手機對著畫面拍也可以,拍之前先按 Run/Stop 讓畫面停住。

D.2 要看什麼訊號 → 設定對照表

這張表假設探棒設 10×、耦合 DC、垂直 8 格、水平 10 格。數字是「起始值」,看到波形後再微調。

要看的訊號章節V/divs/div觸發設定畫面應該長這樣
電池直流(9 V 或 6 V)62 V1 ms(隨便)Auto 模式一條平的直線,在 0 V 線上方 4.5 格(9 V)或 3 格(6 V)。
Arduino 1 Hz Blink(D9 或 D13)122 V200 msAuto,上升緣,2.5 V很慢的方波,畫面一格一格從左畫到右,0.5 s 高、0.5 s 低。用 Normal 會等很久。
490 Hz PWM(analogWrite D9)142 V500 µsNormal,上升緣,2.5 V方波,週期約 2 ms(4 格),HIGH 的寬度隨 analogWrite 數值變。
980 Hz PWM(D5、D6)142 V200 µsNormal,上升緣,2.5 V方波,週期約 1 ms(5 格)。
1 kHz tone()(蜂鳴器腳)102 V200 µsNormal,上升緣,2.5 V50% 方波,週期 1 ms。Measure Freq 應顯示約 1.000 kHz。
RC 充放電(10 kΩ × 100 nF,τ = 1 ms,用 100 Hz 方波推)51 V1 msNormal,上升緣,來源接方波的 CH1CH1 方波;CH2 是圓滑的充電曲線往上爬、再往下掉,像鯊魚鰭。5 ms 大約充飽。
RC 充放電(10 kΩ × 100 µF,τ = 1 s,用按鈕手動充放)51 V1 sAuto 模式,捲動(Roll)模式更好畫面慢慢從右往左捲,電壓慢慢爬上去再慢慢掉下來。
SG90 伺服 50 Hz 脈波142 V5 msNormal,上升緣,2.5 V很瘦的脈波,每 20 ms(4 格)一個。轉 s/div 到 500 µs 可看清楚脈波寬 1–2 ms。
反電動勢尖波(關掉電感/馬達瞬間)75 V100 µsSingle,上升緣,準位 8 V一個很高很瘦的尖刺,可能衝到 20–40 V 以上,然後迅速掉回來。加了飛輪二極體後尖刺消失。
按鈕彈跳(D2 接上拉電阻)112 V1 msSingle,下降緣,2.5 V按下去的瞬間不是一刀切下來,而是在 5 V 和 0 V 之間亂跳好幾次,持續 0.1–5 ms。
UART 9600(Arduino TX 腳 D1)152 V200 µsSingle,下降緣,2.5 V每個位元約 104 µs 寬(半格),一個字元 10 個位元約 1 ms。平常是 HIGH,開始傳才往下掉。
I2C 100 kHz(CH1 = SCL、CH2 = SDA)152 V20 µsSingle,來源 CH2(SDA),下降緣,1.6 VCH1 一串整齊的時脈,每格 2 個;CH2 在時脈之間變化。SDA 在 SCL 是 HIGH 時往下掉就是「開始」。
PWM 經 RC 低通濾波後101 V500 µsNormal,來源接濾波前的 CH1CH1 方波;CH2 幾乎是直線,只剩一點點鋸齒。改 analogWrite 數值,CH2 的直線會上下移。
電晶體集極電壓反相92 V500 µsNormal,來源 CH1(基極方波)CH1 HIGH 的時候 CH2 LOW,CH1 LOW 的時候 CH2 HIGH,剛好相反。
半波整流(自製線圈的交流經 1N4007)8500 mV10 msAuto 模式整流前(CH1)上下都有;整流後(CH2)只剩上半,下半被削平成 0。

D.3 邏輯分析儀與 PulseView 速查

安裝 PulseView

  1. 到 sigrok 官網(sigrok.org)的 Downloads 頁面下載 PulseView。Windows 下載 .exe 安裝檔,macOS 下載 .dmg,Linux 下載 AppImage。
  2. 安裝時勾選 包含驅動程式(fx2lafw firmware) 的選項(預設有勾)。
  3. Windows 要多做一步:便宜的 USB 邏輯分析儀插上去之後,Windows 會裝錯驅動。
    • 下載 Zadig(zadig.akeo.ie)。
    • 插上邏輯分析儀,打開 Zadig,選單 Options → List All Devices。
    • 下拉選到邏輯分析儀(名字可能是「USB Logic Analyzer」、「Unknown Device #1」或「fx2lafw」)。
    • 右邊的驅動選 WinUSB,按 Install Driver(或 Replace Driver)。
    • 完成後重新插拔一次。
  4. macOS 和 Linux 不用裝驅動,但 Linux 可能要用 sudo 執行或設定 udev 規則(PulseView 的說明頁有寫)。

裝置選擇

  1. 打開 PulseView。
  2. 工具列左上角按 「<No Device>」 那個下拉,選 Connect to Device。
  3. 驅動(Driver)選 fx2lafw (generic driver for FX2 based LAs)。
  4. 介面(Interface)選 USB,按 Scan for devices using driver above。
  5. 下面出現「Saleae Logic」或「fx2lafw」就點它,按 OK。
  6. 工具列會變成裝置名稱,旁邊有 取樣數 和 取樣率 兩個下拉。

取樣率(Sample Rate)與取樣數(Samples)

規則:取樣率至少是訊號頻率的 4 倍,保險用 10 倍。取樣數決定能錄多久:錄的時間 = 取樣數 ÷ 取樣率。

要看的訊號建議取樣率建議取樣數能錄多久
1 Hz Blink1 kHz10 k10 秒
按鈕彈跳1 MHz1 M1 秒
490 Hz PWM100 kHz100 k1 秒
UART 96001 MHz1 M1 秒
UART 1152004 MHz4 M1 秒
I2C 100 kHz2 MHz2 M1 秒
I2C 400 kHz8 MHz8 M1 秒
SPI 1 MHz16–24 MHz10 M約 0.5 秒
  • 8 個通道全開的時候,便宜的邏輯分析儀最高只能到 24 MHz;只開 3 個通道可以更高,但本書用不到。
  • 取樣數太多會等很久、電腦會卡;先用 1 M 試。

接線(GND 必接)

   邏輯分析儀                 Arduino / ESP32 / 麵包板
   ┌─────────┐
   │ CH0 ●───┼─────────────── 要看的訊號 1(例如 TX、SDA)
   │ CH1 ●───┼─────────────── 要看的訊號 2(例如 SCL)
   │ CH2 ●   │
   │  ...    │
   │ GND ●───┼─────────────── GND  ← 沒接這條什麼都看不到
   └─────────┘
        │
       USB → 電腦
  1. 先接 GND,再接訊號線。
  2. 訊號線用母對母或公對母杜邦線接到要看的腳位(用「並聯」的方式掛上去,不要拆掉原本的線)。
  3. 通道電壓只能是 0–5 V 的數位訊號。不要接 9 V 電池、不要接反電動勢尖波、不要接交流。
  4. 在 PulseView 左邊的通道名稱上點兩下可以改名,把 D0 改成 TX、D1 改成 SDA,之後看比較不會搞混。

擷取

  1. 按工具列的 Run(綠色三角)。
  2. 擷取進行中去觸發訊號(例如按 Arduino 的 RESET 讓它重新印 Serial,或讓 OLED 更新畫面)。
  3. 擷取完會自動停。用滑鼠滾輪放大縮小,按住拖曳左右移動。
  4. 什麼都沒看到(全部一條線)→ 查附錄 E「邏輯分析儀全高/全低」。

加解碼器(Protocol Decoder)

UART(第 15 章 Serial.println):

  1. 工具列按 Add protocol decoder(黃綠色的圖示)。
  2. 搜尋 UART,點兩下加入。
  3. 畫面下方出現一條 UART 軌,點它的名稱開設定:
    • RX:選接到 Arduino TX 的那個通道(我們是「聽」Arduino 講話,所以接在解碼器的 RX)。
    • TX:可以不選。
    • Baud rate:9600(要和程式裡 Serial.begin() 的數字一樣)。
    • Data bits:8
    • Parity:none
    • Stop bits:1
    • 這組就是常說的 9600 8N1。
  4. 放大波形,UART 軌上會出現一個個字元(例如 H、e、l、l、o)。看不懂的話把 Data format 改成 ASCII。

I2C(第 15 章 OLED):

  1. 加入 I²C 解碼器。
  2. 設定:SCL 選接 SCL 的通道、SDA 選接 SDA 的通道。
  3. 放大到看得到時脈,I2C 軌會顯示 Start → Address write: 3C → ACK → Data: … → Stop。
  4. 看到 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 兩種
通道數28
能看直流嗎能(電池、分壓點)不能(只會顯示一條線)
能看圓滑的曲線嗎能(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,可以同時掛在同一條線上。