หน้าแรก
วิธีการสั่งซื้อสินค้า
แจ้งชำระเงิน
บทความ
เว็บบอร์ด
เกี่ยวกับเรา
ติดต่อเรา
หน้าแรก
>
บทความ
>
[ESP32 ตอนที่ 5] ESP32 DAC
ค้นหาบทความที่นี่
บทความทั้งหมด
[ESP32 ตอนที่ 5] ESP32 DAC
6 ปีที่ผ่านมา
โดย
เจ้าของร้าน
มาถึงตอนที่ 5 กันแล้ว หลุดพ้นจากเซ็นเซอร์กันแล้วครับ บทนี้เราจะไปดูคุณสมบัติอื่นๆที่ไม่ใช่เซ็นเซอร์ เริ่มกันที่ DAC เลยครับ
DAC ย่อมาจาก Digital to Analog Converter เป็นการแปลงสัญญาณดิจิตอลให้กลายเป็นสัญญาณอนาล็อก คอมพิวเตอร์ ไมโครคอนโทรเลอร์ อุปกรณ์ที่อยู่ในกลุ่มดิจิตอลอิเลกทรอนิกส์ ล้วนทำงานด้วยระบบดิจิตอลตามชื่อมันครับ มันมีแค่ 0 กับ 1 การจะมึไฟหรี่เป็นความสว่างต่างๆ การจะมีเสียงโทนต่างๆจะไม่สามารถทำได้ ต้องทำการแปลงสัญญาณ จากสัญญาณดิจิตอล เป็นสัญญาณอนาล็อกเสียก่อน ในคอมพิวเตอร์ตอนเราเปิดเพลงเปิดยูทูป มีเสียงเพลงเพราะๆออกมาก็นั่นแหละครับ DAC ที่เห็นกันชัดๆ สัญญาณดิจิตอลที่คอมพิวเตอร์รับมาจากอินเตอร์เน็ต ถูกส่งมาที่การ์ดเสียง ในการ์ดเสียงนั่นแหละครับจะมีวงจร DAC เพื่อเปลี่ยนสัญญาณดิจิตอลจากคอมพิวเตอร์ เป็นสัญญาณอนาล็อกแล้วส่งต่อไปที่ลำโพง
ทีนี้มีคำถามว่า DAC ต่างจาก PWM อย่างไร ในบอร์ด Arduino พื้นฐานที่เราใช้กันนั้นไม่มีวงจร DAC ซึ่งหากใช้งานก็จะต้องต่อกับ DAC ภายนอก แต่คงไม่สะดวกเท่าไร เราจึงใช้ PWM แทน ซึ่ง PWM นี้เป็นเทคนิคการเปิดปิดสัญญาณเป็นช่วงความกว้างต่างๆกัน เช่น 0-5V เราอยากได้ 2.5V จึงใช้ PWM 50% คือเปิด HIGH 5V 50% ของลูกคลื่น สมมติ 1 ลูกคลื่นมีคาบเท่ากับ 1 วินาทีก็เปิด 50% คือ 0.5 วินาที จากนั้นที่เหลือเป็นสถานะ LOW ค่าของสัญญาณ Output ที่ได้จึงเป็นค่าเฉลี่ยของสัญญาณที่เปิดปิดนั้น // ส่วน DAC มันเป็นการที่สัญญาณิจิตอล เช่น 10110100 วิ่งเข้าไปในวงจร DAC แล้วได้ค่าออกมาคือระดับที่ 180 สมมติว่าเต็มระดับที่ 8 bit ที่เต็มสเกล 255=5V ฉะนั้นเทียบบัญญัติไตรยางค์ รดับที่ 180 ก็ได้ 3.53V นั่นเอง
ใครที่ปวดหัว ไม่ต้องการสนใจทฤษฏี สรุปง่ายๆ คือ DAC และ PWM ต่างเป็นการเปลี่ยนสัญญาณดิจิตอลให้ออกมาในรูปสัญญาณอนาล็อกเหมือนกัน เพียงแต่ทำงานคนละโหมด ต่างกันที่เทคนิคและวิธีการที่ใช้เท่านั้น
ทีนี้ ใน ESP32 ของเรานั้นมี DAC มาให้ 2 Channel คือ Ch.1 ที่ GPIO25 และ Ch.2 ที่ GPIO26 โดยทั้ง 2 ช่องนี้เป็น DAC ที่มีความละเอียด 8 bit (0 ถึง 255 = 256 ระดับ) ในการใช้งานนั้นการเขียนโค้ดจะใกล้เคียงกับ PWM (มากๆๆๆๆ) โดย PWM ใช้คำสั่ง analogWrite(pin, value) ในส่วนของ DAC นั้นจะใช้คำสั่ง dacWrite(pin, value) เปลี่ยนไปแค่นิดเดียวเอง และในส่วนของ pin ในคำสั่ง dacWrite นั้นก็มีให้เลือกอยู่แค่ 2 pin คือ DAC1 หรือ DAC2 เท่านั้น
มาเข้าสู่การทดลองกันครับ เรามาเขียนโปรแกรมล้อกับโปรแกรม Fade ที่อยู่ใน Example กันครับ
ต่อ LED ตามวงจร Fade กับขา 25 อัพโหลดโคดลงไปแล้วเปิด Serial Monitor ดู
ใน Serial Monitor ก็จะมาค่าที่ส่งออกทางขา DAC เป็นช่วง 0-255 (8 bit)
ส่วนบนบอร์ดนั้นหลอด LED ก็จะค่อยๆสว่างขึ้นจนสุด แล้วก็ค่อยๆหรี่ลงวนไปเรื่อยๆ (ต้องขออภัยอย่างสูง ถ่ายเป็นคลิปไว้เพื่อทำ GIF แต่ติดปัญหา ทำแล้ว GIF ไม่ยอมเล่น คงต้องหัดทำกันใหม่ T^T)
เป็นไงบ้างครับวิธีใช้ DAC เพียงง่ายๆแค่นี้เอง ทุกอย่างมันแทบสำเร็จมาอยู่แล้ว ตอนต่อไปจะเป็นเรื่องอะไรต้องติดตามกันนะครับ สำหรับตอนนี้ก็ลองเอาไปเล่นกันให้สนุกๆก่อน พบกันใหม่ตอนหน้าครับผม
คลิกที่นี่เพื่อดาวน์โหลดโค้ดตัวอย่าง
คลิกที่นี่เพื่ออ่านบทความต่อไป
esp32
,
IoT
,
Internet of Things
,
Learning
,
tutorial
Share
Share :
COPY
Privacy Policy
|
Cookie Policy
|
Copyright © 2025
fitrox.lnwshop.com
All rights reserved.
ตะกร้า
(
0
)
▲
▼
รายการสั่งซื้อของฉัน
เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก
ยังไม่มีบัญชีเทพ
สร้างบัญชีใหม่
ไม่มีค่าใช้จ่าย
สมัครสมาชิก (ฟรี)
รายการสั่งซื้อของฉัน
ข้อมูลร้านค้านี้
Fitrox Electronics
ไฟทร็อก อิเล็กทรอนิกส์ จำหน่ายอุปกรณ์อิเล็กทรอนิกส์ บอร์ดไมโครคอนโทรลเลอร์ และอุปกรณ์สำหรับโปรเจคต่างๆ อ.เมือง จ.เชียงใหม่ (หลัง มช.)
เบอร์โทร :
0897245633
อีเมล :
fitrox.electronics@gmail.com
ส่งข้อความติดต่อร้าน
เกี่ยวกับร้านค้านี้
ค้นหาสินค้าในร้านนี้
ค้นหา
หรือค้นหาอย่างละเอียด
ค้นหาสินค้า
สินค้าที่ดูล่าสุด
{{pdata.name}}
ดูสินค้าทั้งหมดในร้าน
สินค้าที่ดูล่าสุด
บันทึกเป็นร้านโปรด
Join เป็นสมาชิกร้าน
แชร์หน้านี้
แชร์หน้านี้
↑
TOP
เลื่อนขึ้นบนสุด
คุณมีสินค้า
0
ชิ้นในตะกร้า
สั่งซื้อทันที
สินค้าในตะกร้า ({{total_num}} รายการ)
ขออภัย ขณะนี้ยังไม่มีสินค้าในตะกร้า
ราคาสินค้าทั้งหมด
฿ {{price_format(total_price)}}
- ฿ {{price_format(discount.price)}}
ราคาสินค้าทั้งหมด
{{total_quantity}} ชิ้น
฿ {{price_format(after_product_price)}}
ราคาไม่รวมค่าจัดส่ง
ดูสินค้าในตะกร้า
เริ่มการสั่งซื้อ
➜
เลือกซื้อสินค้าเพิ่ม
พูดคุย-สอบถาม
อีเมล fitrox.electronics@gmail.com
โทร 0897245633
channel/UCnHfpCdqN1RkzAfEH_lRLvw?
1924052434588436
Add @zpq2828r