Trong bài này chúng ta sẽ lập trình ESP32 DAC tạo ra sóng hình Sin hoặc hình tam giác, DAC là một ngoại vi rất mạnh nếu bạn làm các ứng dụng liên quan tới âm thanh ( audio).
Bài 4 trong Seri Lập trình ESP32 từ A tới Z
DAC là gì?
DAC là viết tắt của cụm từ Digital Analog Converter – bộ chuyển đổi tín hiệu digital thành analog.
DAC thường được sử dụng trong các mạch Audio. Trong đó nó nhiệm vụ thu thập thông tin âm thanh số và chuyển đối nó sang một tín hiệu tương tự. Sau đó, tín hiệu đó sẽ được truyền sang bộ khuếch đại âm thanh rồi mới đến tai nghe hoặc loa để bạn có thể nghe được.
DAC là một thành phần thiếu yếu của bất kỳ hệ thống âm thanh nào trên PC. Khu vực âm thanh trên bo mạch chủ có 1 DAC, tương tự như trên card âm thanh, smartphone, tai nghe dạng USB cùng những thiết bị kỹ thuật số khác. Bạn không thể truyền âm thanh từ PC hoặc thiết bị số nào khác vào tai người nếu không có DAC nhằm chuyển đối tín hiệu âm thanh số sang tương tự.
Trong vi điều khiển DAC còn rất hay được sử dụng để điều chế các loại xung khác nhau như xung hình sin, tam giác hay hình dạng bất kì.
Lập trình ESP32 DAC điều khiển độ sáng của LED
- Breaboard
- KIT ESP32
- Trở 200R
- Led cắm
Sơ đồ nguyên lý
Kết nối chân DAC1 với Led và trở
Code và giải thích Code
#include <Arduino.h> #define DAC1 25 // khởi tạo giá trị DAC int Value = 0; //255= 3.3V 128=1.65V void setup() { Serial.begin(115200); } void loop() { //Khởi tạo tín hiệu hình sin // tăng dần điện áp for(int Value = 0; Value <= 255; Value++){ //ghi giá trị điện áp lên chân DAC dacWrite(DAC1, Value); delay(15); } // giảm dần điện áp for(int Value = 255; Value >= 0; Value--){ //ghi giá trị điện áp lên chân DAC dacWrite(DAC1, Value); } } }
Giải thích code:
#define DAC1 25 // khởi tạo giá trị DAC
Trong loop, tăng giảm giá trị của biến đó, sau đó ghi vào DAC1
// tăng dần điện áp for(int Value = 0; Value <= 255; Value++){ //ghi giá trị điện áp lên chân DAC dacWrite(DAC1, Value); delay(15); } // giảm dần điện áp for(int Value = 255; Value >= 0; Value--){ //ghi giá trị điện áp lên chân DAC dacWrite(DAC1, Value); }
Nạp code và kết quả
Nạp code vào KIT, nhấn nút upload sau đó xem kết quả.
Kết luận
Sử dụng ESP32 DAC cũng rất đơn giản, chúng rất hữu dụng trong việc điều chế các loại xung khác nhau, và thường được sử dụng khi làm các mạch phát âm thanh, mp3.
Đừng quên tham gia nhóm Nghiện lập trình để kết nối với những người cùng đam mê.