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

第 6 章 示波器入門

本章目標

  • 學完你會說出示波器到底在畫什麼:橫軸是時間、縱軸是電壓。
  • 學完你會正確使用探棒:1×/10× 開關要和示波器設定一致、先做探棒補償、接地夾只能夾 GND。
  • 學完你會看格子換算電壓與時間:V/div、s/div,並用 Auto Set 快速找到波形。
  • 學完你會設定觸發(來源、邊緣、準位),分辨 Auto、Normal 與 Single 三種模式,讓波形乖乖停在畫面上。
  • 學完你會用 Measure 自動量測 Vpp、頻率、週期,用 Cursor 游標手動量,並用 Run/Stop 把波形凍結。
  • 學完你會把兩個通道一起看,比較 Arduino 兩支腳位輸出的方波。

開場:三用電表看得到「現在」,看不到「變化」

小宇寫了一個 Arduino 程式讓 D9 腳位每秒閃一次 LED。他用三用電表去量 D9,電表上的數字一下 5V、一下 0V,跳來跳去。接著他把程式改成每毫秒閃一次,LED 看起來變成「一直亮著、但比較暗」,電表卻顯示 2.5V——既不是 5V 也不是 0V。

電表沒有壞。它每秒只量兩三次,再把量到的值平均一下,所以面對一秒鐘變化上千次的訊號,它只能給你一個「平均值」。真正發生的事是:D9 每毫秒在 0V 和 5V 之間跳,一半時間高、一半時間低,平均起來剛好 2.5V。

要看到「跳」的過程,你需要一台能把電壓隨時間的變化畫成圖的儀器——示波器(Oscilloscope)。它像一台超高速的心電圖機:心電圖畫的是心臟電訊號對時間的圖,示波器畫的是任何電壓對時間的圖,而且一秒鐘能畫幾百萬個點。這一章我們把示波器的每個按鈕都搞懂。

核心概念

示波器在畫什麼

示波器螢幕上是一張格線圖:橫軸是時間,從左到右;縱軸是電壓,往上是正。螢幕通常橫向 10 格、縱向 8 格,每一格叫做一個 div(division,刻度)。

 CH1 1.00V      M 200µs      觸發 CH1 ⎍ 2.50V
 ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
1►━━━━┿━━━━┿━━━━┿━━━━┿━━━━┿━━━━┿━━━━┿━━━━┿━━━━┿━━━━┥ ← 0V 基準線(CH1)
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 └────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
   ◄──────────────── 10 格(橫向:時間)────────────►
   每格 = s/div 的設定值;縱向 8 格,每格 = V/div 的設定值

螢幕左邊有個小標記「1►」,標示 CH1 的 0V 在哪一條線。畫面上方(或下方)會顯示目前每格代表多少電壓(例如 CH1 1.00V)和多少時間(例如 M 200µs)。學會看這兩個數字,你就看得懂示波器的任何畫面。

探棒:1× 與 10× 一定要一致

探棒(Probe)是示波器的「手」。前端是一個可以鉤住元件腳的鉤子,旁邊有一條短線接著黑色的鱷魚夾,那是接地夾(Ground Clip)。探棒上有個小開關,寫著 1× 和 10×。

  • 1×:訊號原封不動送進示波器。
  • 10×:訊號先被探棒縮小 10 倍再送進去。

為什麼要縮小?縮小 10 倍後探棒的輸入電阻變成 10MΩ,幾乎不會從電路「偷」電流(和三用電表一樣的道理),而且能量更高的電壓。本書建議:探棒一律撥到 10×,而且示波器的通道選單裡「Probe」也設成 10×。這樣示波器會自動把讀值乘回 10 倍,你看到的就是真正的電壓。

如果兩邊不一致會怎樣?探棒 10× 但示波器設 1×,5V 的訊號會顯示成 0.5V;探棒 1× 但示波器設 10×,5V 會顯示成 50V。只要讀值看起來剛好差 10 倍,第一件事就是檢查這兩個設定。

接地夾只能夾 GND

這是本書的安全紅線,原因要講清楚。示波器所有通道的接地夾,在機器裡面是連在一起的,而且連到示波器的金屬外殼和插座的地線。所以:

  • 如果 CH1 的接地夾夾在 GND,CH2 的接地夾夾在 D9,那 D9 就會透過示波器內部直接接到 GND,等於把 D9 短路,Arduino 可能重開機甚至燒腳位。
  • 如果接地夾夾在電池的正極,再把另一支探棒的接地夾夾在負極,電池就被短路。

規則只有一條:每一支探棒的接地夾,都夾在同一個 GND 上。想量哪裡,用前端的鉤子去鉤,接地夾永遠不動。

探棒補償:讓方波變成漂亮的方形

示波器面板上有一個小金屬片或兩個小端子,標示 Probe Comp(探棒補償),它會持續輸出一個 1kHz 的方波(通常 3V 或 5V)。第一次用一支探棒、或探棒換到另一台示波器時,要先把探棒鉤在這裡看看方波長什麼樣:

  剛好(正確)          過補償              欠補償
 ┌────┐    ┌────┐     ┐    ┐            ╭───╮    ╭───╮
 │    │    │    │     │╲   │╲           │   │    │   │
 │    │    │    │     │ └──┘ └──       ╯   ╰────╯   ╰──
─┘    └────┘    └──  ─┘    └                 
  角落方方正正       角落翹起來(尖角)     角落圓圓的(塌陷)

如果方波的角落翹起來或塌下去,拿探棒附的小螺絲起子,轉探棒接頭上的小螺絲(有的在探棒前端、有的在接示波器那端),一邊轉一邊看,直到角落變成方方正正。這叫探棒補償(Probe Compensation)。沒做補償,之後量方波會一直看到奇怪的角,你會以為是電路有問題。

V/div 與 s/div:看格子算數字

V/div(Volts per division):縱向每一格代表幾伏特,由垂直刻度旋鈕(Scale)控制。 s/div(seconds per division):橫向每一格代表幾秒,由水平刻度旋鈕控制。

換算就是「數格子 × 每格多少」:

電壓 = 格數 × V/div
時間 = 格數 × s/div

例子一:V/div 設 1V,方波從 0V 基準線往上跳了 5 格。電壓 = 5 × 1V = 5V。

例子二:s/div 設 200µs,一個完整週期(從這次上升邊緣到下一次上升邊緣)占了 5 格。週期 T = 5 × 200µs = 1000µs = 1ms。頻率 f = 1 ÷ T = 1 ÷ 0.001 = 1000Hz。

例子三:s/div 設 500µs,一個週期占 4 格。T = 4 × 500µs = 2ms,f = 1 ÷ 0.002 = 500Hz。

每個通道還有一個位置旋鈕(Position),可以把波形上下移;水平位置旋鈕可以把波形左右移。移動只是「換個地方放」,不會改變格數的意義。

想讓波形看起來大一點,把 V/div 調小(例如 2V → 1V);想看更多個週期,把 s/div 調大。

觸發:讓波形停下來

示波器不停地「拍照」,一張接一張地把波形畫出來。如果每一張照片都從隨便的時間點開始畫,重疊起來就是一團亂、左右亂跑。**觸發(Trigger)**就是告訴示波器:「每次都從訊號經過某個電壓、往某個方向的那一瞬間開始畫」。這樣每一張都對齊,波形就穩穩地停在畫面上。

觸發有三個設定:

  1. 來源(Source):看哪個通道來決定何時開始畫。通常選有訊號、比較乾淨的那個,例如 CH1。
  2. 邊緣(Edge / Slope):上升邊緣(訊號從低變高的瞬間)或下降邊緣(從高變低)。
  3. 準位(Level):觸發的電壓門檻。準位一定要放在訊號的最高和最低之間。量 0~5V 的方波,準位放 2.5V 最保險;如果你把準位轉到 7V,訊號永遠碰不到,就永遠不會觸發。

畫面上會有一個小箭頭或「T」標示目前的準位,轉觸發準位旋鈕可以看到它上下移動。

Auto、Normal 與 Single

觸發模式決定「沒有觸發的時候要怎麼辦」:

  • Auto(自動):有觸發就對齊畫;等太久沒觸發,就隨便畫一張給你看。適合初學,也適合看直流(直流沒有邊緣,永遠不會觸發,用 Auto 才看得到那條直線)。
  • Normal(一般):沒有觸發就不畫,畫面停在上一張。適合等待一個偶爾才發生的訊號,例如按一下按鈕。
  • Single(單次):按下去之後,示波器只等一次觸發,抓到就停住不再更新。要抓「只發生一次」的事情(例如開關瞬間的尖波,第 7 章會用到)就靠它。

另外面板上有 Run/Stop 按鈕:Run 的時候不停更新,按一下變 Stop,畫面凍結,你可以慢慢看、慢慢量,再按一下恢復。

Auto Set:先按它,再動手調

大部分示波器都有一個 Auto Set(或 Autoscale)按鈕。按下去,示波器會自己猜一組 V/div、s/div 和觸發設定,把它看到的訊號放進畫面。對於持續不斷的週期訊號(方波、正弦波),它幾乎都能一按就看到波形,非常好用。

但它有兩個弱點:看直流時它可能把 V/div 調得太細讓直線跑出畫面;抓單次事件時它完全沒用(因為按的時候沒有訊號)。所以習慣是:先按 Auto Set 看到波形,再手動微調 V/div、s/div 和觸發準位到你想要的樣子。

自動量測與游標

Measure(量測):按下後選擇通道和項目,示波器會直接在畫面上顯示數字。常用的有:

  • Vpp(峰對峰電壓,Peak-to-Peak):最高點減最低點。0~5V 方波的 Vpp = 5V。
  • Vmax / Vmin / Mean:最高、最低、平均。0~5V 對稱方波的 Mean ≈ 2.5V,和開場小宇用電表量到的一樣。
  • Frequency(頻率) 與 Period(週期):互為倒數。

Cursor(游標):兩條可以用旋鈕移動的虛線。選「時間游標」會出現兩條直立的線,示波器顯示兩條線之間的時間差 Δt(和 1 ÷ Δt);選「電壓游標」會出現兩條橫線,顯示 ΔV。Measure 是示波器自己算,游標是你自己決定要量哪兩個點,兩個都要會。

耦合:DC 與 AC

通道選單裡的**耦合(Coupling)**有 DC 和 AC 兩種。DC 是原汁原味,電壓是多少就畫多少。AC 是在輸入端串一顆電容(第 5 章學過:電容擋住直流、讓變化通過),把訊號的「平均值」去掉,只留下變化的部分。量電池用 AC 會看到 0V,量方波用 AC 會看到方波上下對稱地跨在 0V 兩邊。初學一律用 DC,知道 AC 是什麼就好。

動手做

安全提醒:接地夾只夾 GND。本章訊號最高 9V。接線前先把 Arduino 的 USB 拔掉,接好再插。

實驗 6-1:探棒補償,然後量一條直線

材料

  • 示波器(雙通道)與 10× 探棒 1 支
  • 探棒附的小螺絲起子
  • 9V 電池與電池扣

接線

 第一階段:
   探棒鉤子 → 示波器面板的 Probe Comp 訊號端
   接地夾   → Probe Comp 旁邊的接地端(⏚ 符號)

 第二階段:
   探棒鉤子 → 9V 電池扣紅線(+)
   接地夾   → 9V 電池扣黑線(−)

步驟

  1. 開機,等它進入正常畫面。把探棒接到 CH1,探棒開關撥到 10×。
  2. 進入 CH1 選單,找到「Probe」或「探棒」,設成 10×。
  3. 把探棒鉤在 Probe Comp,接地夾夾旁邊的接地端。
  4. 按 Auto Set。畫面應該出現一個方波。看上方的標示,應該是 1kHz 左右,高度約 3V 或 5V(看機型)。
  5. 仔細看方波的角落:方方正正、翹起來、還是塌下去?用小螺絲起子輕輕轉探棒上的補償螺絲,直到角落方正。
  6. 如果你有第二支探棒,接到 CH2,重複步驟 1~5。
  7. 第二階段:把探棒改鉤 9V 電池的紅線,接地夾夾黑線。CH1 設 DC 耦合、2V/div,觸發模式 Auto,s/div 設 1ms。
  8. 用 CH1 的位置旋鈕把 0V 基準線移到畫面最下面那一格。你應該看到一條平的線,在基準線上方約 4.5 格。
  9. 把耦合改成 AC,看那條線跑去哪裡。改回 DC。
  10. 把觸發模式改成 Normal,看看畫面怎麼了(提示:直流沒有邊緣)。改回 Auto。

你應該看到

 CH1 2.00V (DC)   M 1.00ms   Auto
 ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  ← 9V:基準線上方 4.5 格
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
1►━━━━┿━━━━┿━━━━┿━━━━┿━━━━┿━━━━┿━━━━┿━━━━┿━━━━┿━━━━┥  ← 0V 基準線
 └────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘

電池是直流,所以是一條完全平的線:4.5 格 × 2V/div = 9V。改成 AC 耦合後,線會掉到 0V 基準線上(直流被擋掉了)。改成 Normal 觸發後,畫面會停住不更新,因為沒有任何邊緣可以觸發,這就是為什麼看直流要用 Auto。

觀察與記錄

項目記錄
Probe Comp 方波頻率(畫面標示)
補償前角落的樣子(方正/翹起/塌陷)
電池那條線在基準線上方幾格
格數 × V/div = 電壓
三用電表量到的電池電壓(比對)
改成 AC 耦合後線在哪裡

實驗 6-2:量 Arduino 的方波——Vpp、頻率、週期

材料

  • Arduino UNO 與 USB 線、電腦
  • 示波器與 10× 探棒 1 支
  • 杜邦線(公公)2 條

接線

 Arduino D9 ────── CH1 探棒鉤子
 Arduino GND ───── CH1 接地夾

  • 一條杜邦線插在 D9,探棒鉤子鉤住杜邦線的金屬端。
  • 一條杜邦線插在 GND,接地夾夾住。

程式

// 第 6 章 實驗 6-2 / 6-3:Arduino 同時產生兩種方波
// D9  用 tone() 產生 1kHz 方波(由計時器在背景自動輸出)
// D10 用 digitalWrite + delay 產生約 500Hz 方波

const int tonePin = 9;        // tone() 輸出腳位
const int togglePin = 10;     // digitalWrite 輸出腳位
const int toneFreq = 1000;    // tone 的頻率(Hz),實驗中會改成 500、2000、5000

void setup() {
  pinMode(togglePin, OUTPUT);   // D10 設成輸出
  tone(tonePin, toneFreq);      // D9 開始輸出 toneFreq Hz 的方波
}

void loop() {
  digitalWrite(togglePin, HIGH);  // D10 變 5V
  delay(1);                       // 停 1 毫秒
  digitalWrite(togglePin, LOW);   // D10 變 0V
  delay(1);                       // 再停 1 毫秒 → 週期約 2ms,約 500Hz
}

步驟

  1. 上傳程式,接好線(探棒 10×、示波器 CH1 Probe 10×)。
  2. 按 Auto Set。應該看到方波。
  3. 手動設定:CH1 1V/div、DC 耦合;水平 200µs/div;觸發來源 CH1、上升邊緣、準位 2.5V;模式 Auto。把 0V 基準線移到下面數來第 2 格。
  4. 數格子:方波高幾格?一個週期占幾格?算出電壓、週期、頻率,填表。
  5. 按 Measure,選 CH1,加入 Vpp、Frequency、Period、Mean。把示波器算的數字和你數格子算的比一比。
  6. 按 Cursor,選時間游標,把第一條放在某個上升邊緣,第二條放在下一個上升邊緣,讀 Δt。再換電壓游標,一條放在方波頂、一條放在底,讀 ΔV。
  7. 轉觸發準位旋鈕,把準位轉到 6V 以上,看波形怎麼了。轉回 2.5V。把邊緣改成下降,看波形左右移動的樣子(觸發點永遠在畫面中央那條線上)。
  8. 按 Run/Stop,畫面凍結;再按一次恢復。
  9. 把程式裡的 toneFreq 改成 500、2000、5000,各上傳一次。每次先按 Auto Set,再把 s/div 調到剛好看到 2~3 個週期,記錄 Measure 的頻率。
  10. 試試 Single:先把 D9 的杜邦線拔掉(畫面變成 0V 直線),按 Single,示波器會顯示「等待中」;再把線插回去,它會抓到第一個邊緣就停住。按 Run/Stop 回到連續模式。

你應該看到

 CH1 1.00V (DC)   M 200µs   觸發 CH1 ⎍ 2.50V   Vpp=5.04V  Freq=1.000kHz  Period=1.000ms
 ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 │  ┏━━━━━━━━━┓  ┆    ┏━━━━━━━━━┓  ┆    ┏━━━━━━━━━┓ │  ← 5V(基準線上方 5 格)
 ├┄┄┃┄┼┄┄┄┄┼┄┄┃┄┼┄┄┄┄┃┄┄┄┼┄┄┄┄┼┃┄┄┼┄┄┄┄┃┄┄┄┼┄┄┄┄┼┃┄┄┤
 │  ┃ ┆    ┆  ┃ ┆    ┃    ┆    ┆┃  ┆    ┃    ┆    ┆┃  │
 ├┄┄┃┄┼┄┄┄┄┼┄┄┃┄┼┄┄┄┄┃┄┄┄┼┄┄┄┄┼┃┄┄┼┄┄┄┄┃┄┄┄┼┄┄┄┄┼┃┄┄┤
 │  ┃ ┆    ┆  ┃ ┆  T ┃    ┆    ┆┃  ┆    ┃    ┆    ┆┃  │  ← T:觸發準位 2.5V
 ├┄┄┃┄┼┄┄┄┄┼┄┄┃┄┼┄┄┄┄┃┄┄┄┼┄┄┄┄┼┃┄┄┼┄┄┄┄┃┄┄┄┼┄┄┄┄┼┃┄┄┤
 │  ┃ ┆    ┆  ┃ ┆    ┃    ┆    ┆┃  ┆    ┃    ┆    ┆┃  │
 ├┄┄┃┄┼┄┄┄┄┼┄┄┃┄┼┄┄┄┄┃┄┄┄┼┄┄┄┄┼┃┄┄┼┄┄┄┄┃┄┄┄┼┄┄┄┄┼┃┄┄┤
1►━━┛ ┆    ┆  ┗━━━━━━┛    ┆    ┆┗━━━━━━━┛    ┆    ┆┗━━┥  ← 0V 基準線
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 └────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
      ◄──────────────────►
       一個週期 = 5 格 × 200µs = 1ms  →  f = 1 ÷ 0.001 = 1000Hz

方波高 5 格 × 1V = 5V,和 Measure 的 Vpp 約 5V 一致(可能顯示 4.9~5.1V,USB 的 5V 本來就不是剛好 5.00V)。一個週期 5 格 × 200µs = 1ms,頻率 1000Hz,Measure 的 Frequency 會顯示 1.000kHz。Mean 約 2.5V,就是開場故事三用電表看到的數字。

把準位轉到 6V 以上,波形會開始左右亂跑(Auto 模式下示波器找不到觸發就隨便畫),這就是沒有觸發的樣子。改成下降邊緣,畫面中央的觸發點會從「往上跳」變成「往下掉」。

改頻率的對照:

toneFreq週期 T = 1 ÷ f建議 s/div一個週期占幾格
500Hz2ms500µs4 格
1000Hz1ms200µs5 格
2000Hz0.5ms100µs5 格
5000Hz0.2ms50µs4 格

觀察與記錄

項目數格子算的Measure 顯示的游標量到的
方波高度(Vpp)格 × V/div = VΔV =
週期 T格 × s/div = msΔt =
頻率 f = 1 ÷ T1 ÷ Δt =
Mean(平均電壓)——
toneFreq = 500 時的頻率
toneFreq = 2000 時的頻率
toneFreq = 5000 時的頻率

實驗 6-3:兩個通道一起看

材料

  • 同實驗 6-2,再加一支 10× 探棒接 CH2
  • 杜邦線(公公)3 條

接線

 Arduino D9  ────── CH1 探棒鉤子(tone 1kHz)
 Arduino D10 ────── CH2 探棒鉤子(digitalWrite 約 500Hz)
 Arduino GND ──┬─── CH1 接地夾
               └─── CH2 接地夾

  • 兩支探棒的接地夾都夾在 GND 那條杜邦線上(可以一夾夾住另一夾)。
  • 絕對不要把任何接地夾夾在 D9 或 D10。

步驟

  1. 程式用實驗 6-2 的,toneFreq 改回 1000。
  2. CH1、CH2 都打開,都設 1V/div、DC、Probe 10×。用位置旋鈕把 CH1 的基準線放在上半部、CH2 的基準線放在下半部,兩條波形就不會疊在一起。
  3. 水平 500µs/div,觸發來源 CH1、上升邊緣、準位 2.5V。
  4. 觀察:CH1 穩穩的,CH2 呢?它會慢慢左右漂移。這是因為 D10 的方波是用 delay() 一步一步做出來的,和 D9 的 tone 計時器各走各的,兩個訊號並不同步。
  5. 把觸發來源改成 CH2。現在換 CH2 穩住、CH1 漂移。觸發來源選誰,誰就穩。
  6. 用 Measure 分別量 CH1 和 CH2 的頻率。CH2 不會剛好 500Hz,大概 495~499Hz,因為 digitalWrite() 和 loop() 本身也要花幾微秒。
  7. 數數看:CH2 的一個週期裡,CH1 有幾個週期?
  8. 如果你有 ESP32,把 D9 換成 ESP32 的 GPIO 18(程式一樣,tonePin 改 18、togglePin 改 19),看看方波高度變成幾格。

你應該看到

 CH1 1.00V   CH2 1.00V   M 500µs   觸發 CH1 ⎍ 2.50V
 ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
 │ ┏━┓ ┏━┓ ┏━┓ ┏━┓ ┏━┓ ┏━┓ ┏━┓ ┏━┓ ┏━┓ ┏━┓  │  CH1:1kHz,每 2 格一個週期
 │ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃  │
1►━┛ ┗━┛ ┗━┛ ┗━┛ ┗━┛ ┗━┛ ┗━┛ ┗━┛ ┗━┛ ┗━┛ ┗━━┥  ← CH1 的 0V
 ├┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┼┄┄┄┄┤
 │    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    ┆    │
 │  ┏━━━━━━━┓   ┆  ┏━━━━━━━┓   ┆  ┏━━━━━━━┓   ┆    │  CH2:約 500Hz,每 4 格一個週期
 │  ┃    ┆  ┃   ┆  ┃    ┆  ┃   ┆  ┃    ┆  ┃   ┆    │       (會慢慢左右漂)
2►━━┛    ┆  ┗━━━━━━┛    ┆  ┗━━━━━━┛    ┆  ┗━━━━━━━┥  ← CH2 的 0V
 └────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘

CH1 一個週期 2 格 × 500µs = 1ms(1kHz);CH2 一個週期 4 格 × 500µs = 2ms(500Hz)。CH2 的一個週期裡剛好有 2 個 CH1 的週期。換 ESP32 後方波只有 3.3 格高,因為 ESP32 是 3.3V 的板子。

觀察與記錄

項目CH1(D9)CH2(D10)
一個週期占幾格
週期 = 格數 × 500µs
頻率 = 1 ÷ 週期
Measure 顯示的頻率
觸發來源設 CH1 時,哪個通道在漂?
觸發來源設 CH2 時,哪個通道在漂?
ESP32 方波高幾格(V)

用儀器看看

本章整章都是「用儀器看看」:實驗 6-1 到 6-3 已經把探棒、V/div、s/div、觸發、量測、游標全部練過一遍。之後每一章的這個段落,都會直接寫「CH1 鉤在哪裡、V/div 多少、s/div 多少、觸發怎麼設」,請把這一章當成之後隨時可以翻回來的說明書。附錄 D 另有一頁示波器速查表。

常見錯誤與除錯

  • 畫面上什麼都沒有 → 通道沒開、V/div 太大(波形被壓成一條線貼在基準線上)、或探棒沒接好 → 先按 Auto Set;確認通道選單裡 CH1 是 ON;把鉤子鉤緊。
  • 讀值剛好差 10 倍(5V 變 0.5V 或 50V) → 探棒開關和示波器的 Probe 設定不一致 → 兩邊都改成 10×。
  • 波形左右亂跑、停不下來 → 觸發來源不是有訊號的那個通道,或準位不在波形範圍內 → 觸發來源選 CH1,準位轉到波形中間(例如 2.5V)。
  • 方波的角落翹起來或圓圓的 → 探棒沒有補償 → 鉤 Probe Comp 調螺絲。
  • 看直流時畫面停住不動或一片空白 → 觸發模式在 Normal → 改成 Auto。
  • 波形跑出畫面上方 → V/div 太小或位置旋鈕轉太高 → 調大 V/div,用位置旋鈕把基準線往下移。
  • 看到一大片密密麻麻、像一塊顏色 → s/div 太大,幾千個週期擠在畫面上 → 調小 s/div 到一個畫面剩 2~5 個週期。
  • 接上接地夾的瞬間 Arduino 重開或電腦 USB 跳出警告 → 接地夾夾到了不是 GND 的地方,造成短路 → 立刻拔掉探棒,檢查接地夾只夾 GND。
  • 量 Arduino 方波只有 3.3V 高 → 你用的是 ESP32,不是 UNO → 正常,ESP32 是 3.3V。
  • Measure 顯示頻率一直跳動或是「?」 → 畫面上的週期數太少(不到一個)或太多 → 調 s/div 到 2~5 個週期。

想一想

  1. V/div 設 1V,波形從基準線往上跳 4 格。電壓多少?
參考答案

4 × 1V = 4V。

  1. s/div 設 500µs,一個週期占 4 格。週期和頻率各是多少?
參考答案

T = 4 × 500µs = 2000µs = 2ms。f = 1 ÷ 0.002 = 500Hz。

  1. 探棒撥在 10×,示波器的 Probe 設定卻是 1×,畫面上讀到 0.5V。真正的電壓是多少?
參考答案

探棒把訊號縮小了 10 倍,示波器卻沒有乘回來,所以真正的電壓是 0.5 × 10 = 5V。

  1. 你把 CH1 的接地夾夾在 GND,CH2 的接地夾不小心夾在 D9。D9 會發生什麼事?為什麼?
參考答案

兩支探棒的接地夾在示波器內部是連在一起的,所以 D9 會透過示波器直接接到 GND,等於把 D9 短路到 0V。Arduino 的腳位會輸出過大電流,可能重開機或燒壞腳位。

  1. 你想抓住「按一下按鈕」那一瞬間的波形,按鈕只會按一次。觸發模式應該用 Auto、Normal 還是 Single?準位要放哪裡?
參考答案

用 Single(或 Normal)。Auto 會在沒觸發時亂畫,蓋掉你要的畫面。準位放在按鈕按下前後電壓的中間,例如 0V 和 5V 之間的 2.5V,邊緣看你要抓按下(上升或下降,看接法)還是放開。

  1. (開放挑戰)實驗 6-3 用 delay(1) 做出來的 500Hz,用 Measure 量到的是 497Hz。想一想為什麼不是剛好 500Hz?如果想要更接近 500Hz,程式可以怎麼改?(提示:delayMicroseconds() 可以等比 1ms 更短的時間。)
參考答案

每次 loop() 除了兩個 delay(1) 之外,digitalWrite() 和 loop() 本身的跳轉也要花幾微秒,所以一個週期比 2000µs 長一點,頻率就比 500Hz 低一點。可以把 delay(1) 改成 delayMicroseconds(995) 之類的值,一邊看示波器一邊微調,直到 Measure 顯示 500Hz。更準的做法是用 tone(10, 500),但 tone 一次只能用在一支腳位。

本章小結

  • 示波器畫的是「電壓對時間」的圖:橫軸時間、縱軸電壓,螢幕橫 10 格、縱 8 格。
  • 探棒 1×/10× 開關和示波器的 Probe 設定必須一致;本書一律 10×。讀值差 10 倍,先查這個。
  • 第一次用探棒先鉤 Probe Comp 做補償,把方波角落調方正。
  • 接地夾只能夾 GND,所有通道的接地夾內部是相通的。
  • 電壓 = 格數 × V/div,時間 = 格數 × s/div,頻率 = 1 ÷ 週期。
  • 觸發三要素:來源、邊緣、準位;準位要放在波形的高低之間。
  • Auto 看直流與一般訊號、Normal 等事件、Single 抓一次;Run/Stop 可以凍結畫面。
  • 先按 Auto Set 找到波形,再手動微調;用 Measure 讀 Vpp、頻率、週期,用 Cursor 自己量兩點。
  • 兩個通道一起看時,觸發來源選誰,誰就穩住;不同步的訊號會互相漂移。

名詞表

中文英文一句話解釋
示波器Oscilloscope把電壓隨時間的變化畫成圖的儀器
探棒Probe示波器的量測線,前端有鉤子與接地夾
接地夾Ground Clip探棒上的黑色鱷魚夾,只能夾 GND
探棒補償Probe Compensation調整探棒上的小螺絲讓方波角落方正
刻度Division(div)螢幕上的一格
伏特/格V/div縱向每一格代表的電壓
秒/格s/div橫向每一格代表的時間
位置Position把波形上下或左右移動的旋鈕
觸發Trigger決定每次從訊號的哪一瞬間開始畫,讓波形穩定
觸發準位Trigger Level觸發的電壓門檻
邊緣Edge / Slope訊號上升或下降的瞬間
自動模式Auto Mode沒觸發也照畫,適合看直流
一般模式Normal Mode沒觸發就不更新畫面
單次Single只抓一次觸發就停住
自動設定Auto Set讓示波器自動猜設定並顯示波形的按鈕
峰對峰電壓Vpp(Peak-to-Peak)波形最高點減最低點
週期Period(T)波形重複一次所需的時間
頻率Frequency(f)每秒重複幾次,f = 1 ÷ T
自動量測Measure示波器自己算出 Vpp、頻率等數字的功能
游標Cursor兩條可移動的線,用來量兩點之間的時間差或電壓差
耦合CouplingDC 保留直流成分,AC 只留變化的部分
滾動模式Roll Mode看慢速訊號時波形從右往左流動