บทเรียน 2.1 — ระดับลอจิกและเกตพื้นฐาน

รู้ว่าแรงดันเท่าไรนับเป็น 0 หรือ 1 และทำไมการต่ออุปกรณ์ต่างระดับแรงดันจึงอันตราย

โมดูล 2 — วงจรดิจิทัล

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

เป้าหมาย

เมื่อจบบทเรียนนี้ คุณจะ

  1. อ่านค่าระดับลอจิกขาเข้าและขาออกจากเอกสารข้อมูลของชิป แล้วบอกได้ว่าสองอุปกรณ์ต่อกันตรงได้หรือไม่
  2. เขียนตารางความจริงของเกต AND, OR, NOT, XOR และใช้แก้โจทย์เงื่อนไขง่าย ๆ ได้
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

ก่อนเริ่ม

  • คำนวณวงจรแบ่งแรงดันได้ (บทเรียน วงจรแบ่งแรงดัน)
  • แล็บ: TESAIoT Dev Kit ที่ flash ตัวอย่าง QWA309 Header I/O Test, มัลติมิเตอร์, เบรดบอร์ด, ตัวต้านทาน 1 kΩ, 2.2 kΩ, 4.7 kΩ×2, 10 kΩ×3
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

ดูของจริงก่อน

TESAIoT Dev Kit มี "โลกของแรงดัน" อย่างน้อยสองโลกบนบอร์ดเดียว

  • บัส I2C ของเซนเซอร์บนบอร์ดทำงานที่ 1.8 V — machine.I2C ของ MicroPython เป็นอีกบัสหนึ่งที่ 3.3 V สำหรับบอร์ดเซนเซอร์ภายนอก
  • ขาบน header ทำงานที่ 3.3 V — สังเกตจากป้าย _3V3 ที่ท้ายชื่อสัญญาณ

สมมุติมีบอร์ดเซนเซอร์ 3.3 V จะต่อบัสไหนได้ และถ้าต่อผิดบัสจะเกิดอะไรขึ้น บทนี้ให้เครื่องมือตอบคำถามนี้ด้วยตัวเลข

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

แนวคิด (1) — แรงดันเท่าไรนับเป็น 0 หรือ 1

ค่า ความหมาย
V_OH(min) ขาออกที่สั่งเป็น 1 จะให้แรงดัน อย่างน้อย เท่านี้
V_OL(max) ขาออกที่สั่งเป็น 0 จะให้แรงดัน ไม่เกิน เท่านี้
V_IH(min) ขาเข้ารับประกันว่าอ่านเป็น 1 เมื่อแรงดัน ตั้งแต่ เท่านี้
V_IL(max) ขาเข้ารับประกันว่าอ่านเป็น 0 เมื่อแรงดัน ไม่เกิน เท่านี้

ระหว่าง V_IL กับ V_IH คือช่วงที่ไม่รับประกัน — ขาเข้าอาจอ่านเป็นอะไรก็ได้

ส่วนเผื่อสัญญาณรบกวน: NM_H = V_OH(min) − V_IH(min)    NM_L = V_IL(max) − V_OL(max)
ถ้าค่าใดค่าหนึ่งติดลบ แปลว่าต่อกันตรงไม่ได้
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

แนวคิด (2) — แถบระดับลอจิกจริง

1 ? 0 V_IH 2.31 V V_IL 0.99 V 3.3 V 3.3 V CMOS 1 ? 0 V_IH 1.26 V V_IL 0.54 V 1.8 V 1.8 V CMOS
แถบตัวอย่างตามกฎหยาบ V_IH = 0.7 × VDD และ V_IL = 0.3 × VDD ค่าจริงต้องอ่านจากเอกสารข้อมูลของชิป
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

แนวคิด (3) — ต่อสองอุปกรณ์เข้าหากันได้ไหม

ค่า อุปกรณ์ A (1.8 V) อุปกรณ์ B (3.3 V)
V_OH(min) 1.35 V 2.9 V
V_IH(min) 1.26 V 2.31 V
แรงดันขาเข้าสูงสุดที่ทนได้ 2.1 V 3.6 V

A → B NM_H = 1.35 − 2.31 = −0.96 V ติดลบ ต่อกันตรงไม่ได้

B → A 2.9 V ผ่าน V_IH ของ A ได้สบาย แต่ เกินค่าสูงสุดที่ขา A ทนได้ (2.1 V) — กระแสไหลผ่านไดโอดป้องกันเข้าไฟเลี้ยง 1.8 V (back-powering) นี่คือกับดักที่อันตรายที่สุด เพราะ "มันอ่านค่าได้ถูก" ในวันแรก

ทางแก้ ชิปแปลงระดับ, บัส open-drain + pull-up แยกฝั่ง, หรือวงจรแบ่งแรงดัน (สัญญาณช้าทางเดียว)

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

แนวคิด (4) — เกตพื้นฐานและตารางความจริง

A B NOT A A AND B A OR B A XOR B
0 0 1 0 0 0
0 1 1 0 1 1
1 0 0 0 1 1
1 1 0 1 1 0
  • AND เป็น 1 เมื่อทุกขาเข้าเป็น 1 · OR เป็น 1 เมื่อมีอย่างน้อยหนึ่งขาเข้าเป็น 1
  • XOR เป็น 1 เมื่อสองขาเข้า ต่างกัน · NAND/NOR คือ AND/OR ตามด้วย NOT
  • C: &&, ||, ! (เงื่อนไข), &, |, ~, ^ (บิต) · MicroPython: and, or, not, &, |, ^
  • ปุ่มแบบ active-low "กดอยู่" = NOT pin
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

ตัวอย่างสมบูรณ์ — เงื่อนไขพัดลมระบายความร้อน

โจทย์ พัดลมทำงานเมื่อ "อุณหภูมิสูง และ ประตูปิด" หรือ "ผู้ใช้สั่งเปิดเอง"

FAN = (T AND D) OR M
T D M FAN
0 0 1 1
1 1 0 1
1 1 1 1
อื่น ๆ 0

ถ้าสวิตช์ประตูเป็น active-low ต้องกลับค่าก่อนใช้

bool door_closed = !door_pin;                 /* active-low: ปิดอ่านได้ 0 */
bool fan_on = (temp_high && door_closed) || manual;
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

ฝึกเติม / แล็บ

ฝึกเติม

  1. V_OH(min)=2.4V, V_OL(max)=0.4V ต่อกับ V_IH(min)=2.0V, V_IL(max)=0.8V — หา NM_H, NM_L ต่อตรงได้ไหม
  2. อุปกรณ์ 5V ส่งสัญญาณ 5V เข้าขา 3.3V ที่ไม่ทนแรงดัน 5V — ต่อตรงได้ไหม เพราะอะไร

แล็บ ส่วน A วัด V_OH/V_OL จริงของขา P13.0 ด้วยมัลติมิเตอร์ (โปรแกรม GPIO Out) แล้วตัดสินว่าต่อกับอุปกรณ์ A (1.8V) หรือ B (3.3V) ได้ไหม

แล็บ ส่วน B ต่อวงจรแบ่งแรงดันเข้า P13.0 ผ่านตัวต้านทาน 1 kΩ กันขา หาจุดสลับจริงของขาเข้าด้วยคู่ตัวต้านทานต่าง ๆ

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

เช็กความเข้าใจ

  1. ขาออกของอุปกรณ์ 1.8 V มี V_OH(min) = 1.35 V ต่อเข้าขาเข้าของอุปกรณ์ 3.3 V ที่มี V_IH(min) = 2.31 V ได้ไหม

    • ก) ได้ เพราะ 1.35 V มากกว่าศูนย์ · ข) ไม่ได้ ระดับ 1 ต่ำกว่า V_IH · ค) ได้ ถ้าใส่ตัวต้านทาน 1 kΩ อนุกรม · ง) ไม่ได้ เพราะ V_OL สูงเกินไป
  2. ขาออก 3.3 V ต่อเข้าขาของชิป 1.8 V ที่ทนแรงดันขาเข้าได้สูงสุด 2.1 V ข้อใดถูก

    • ก) ปลอดภัย เพราะอ่านเป็น 1 ได้ถูก · ข) อ่านถูกก็จริง แต่แรงดันเกินค่าสูงสุดที่ขาทน อาจเสียหาย · ค) อ่านไม่ได้เลย · ง) ปลอดภัยถ้าชิปปิดไฟอยู่
  3. เกต XOR ได้ขาเข้า A = 1 และ B = 1 ขาออกเป็นอะไร

    • ก) 0 · ข) 1 · ค) ไม่แน่นอน · ง) เท่ากับ A AND B
TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

ไปต่อ

บทเรียนถัดไป Pull-up, pull-down และปุ่มกด — ทำไมขาเข้าที่ปล่อยลอยจึงอ่านค่ามั่ว ต่อปุ่มแบบ active-low และใช้ logic analyzer ครั้งแรก

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

แหล่งที่มาและเครดิต

"อิเล็กทรอนิกส์และเครื่องมือวัดสำหรับนักพัฒนาระบบฝังตัว" จาก TESA Open Knowledge โดยสมาคมสมองกลฝังตัวไทย
(Thai Embedded Systems Association: TESA) https://github.com/tesaiot/tesa-qualification-program
สัญญาอนุญาต CC BY-NC 4.0

แผนภาพในบทเรียนนี้เป็นงานวาดของหลักสูตรนี้เอง (CC BY-NC 4.0)

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0

TESA Open Knowledge · © 2026 สมาคมสมองกลฝังตัวไทย (TESA) · CC BY-NC 4.0