Mục lục:
- Bước 1: Những thứ chúng ta cần cho dự án này (Yêu cầu)
- Bước 2: Lý thuyết về ADC đến PWM
- Bước 3: Sơ đồ
- Bước 4: Kiểm tra cuối cùng
Video: Phát các bài hát với Arduino bằng cách sử dụng ADC đến PWM trên Flyback Transformer hoặc Loa: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Xin chào các bạn, Đây là phần thứ hai trong một hướng dẫn khác của tôi (khó lắm), Về cơ bản, Trong Dự án này, tôi đã sử dụng ADC và TIMERS trên Arduino của mình để chuyển đổi Tín hiệu âm thanh thành Tín hiệu PWM.
Điều này dễ dàng hơn nhiều so với Bản hướng dẫn trước đây của tôi, Đây là liên kết của Bản hướng dẫn đầu tiên của tôi nếu bạn muốn xem. liên kết
Để hiểu lý thuyết về Tín hiệu âm thanh, Tốc độ bit, Độ sâu bit, Tốc độ lấy mẫu, Bạn có thể đọc lý thuyết trong hướng dẫn cuối cùng của tôi trên Có thể giảng dạy. Liên kết ở trên.
Bước 1: Những thứ chúng ta cần cho dự án này (Yêu cầu)
1. Bảng Arduino (chúng ta có thể sử dụng bất kỳ Bảng nào (328, 2560) tức là Mega, Uno, Mini, v.v. nhưng với các chân cụ thể khác nhau)
2. PC với Arduino Studio.
3. Breadboard hoặc Perfboard
4. Kết nối dây
5. TC4420 (Trình điều khiển Mosfet hoặc thứ tương tự)
6. Power Mosfet (kênh N hoặc P, vui lòng nối dây cho phù hợp) (Tôi đã sử dụng kênh N)
7. Loa hoặc Flyback Transformer (Có bạn đã đọc đúng !!)
8. Nguồn điện phù hợp (0-12V) (Tôi đã sử dụng Nguồn điện ATX của riêng mình)
9. Tản nhiệt (Tôi đã lấy từ PC cũ của mình).
10. Một Bộ khuếch đại (Bộ khuếch đại nhạc thông thường) hoặc Mạch khuếch đại.
Bước 2: Lý thuyết về ADC đến PWM
Vì vậy, trong Dự án này, tôi đã sử dụng ADC tích hợp của Arduino để lấy mẫu dữ liệu của Tín hiệu âm thanh.
ADC (Analog-To-Digital Converter) như tên định nghĩa, ADC chuyển đổi tín hiệu Analog thành các mẫu kỹ thuật số. Và đối với Arduino với độ sâu tối đa 10-bit. Nhưng đối với Dự án này, chúng tôi sẽ sử dụng Lấy mẫu 8-bit.
Trong khi sử dụng ADC của Arduino, chúng ta phải ghi nhớ ADC_reference Voltage.
Arduino Uno cung cấp 1.1V, 5V (Tham chiếu bên trong, có thể được thiết lập xác định trong mã) hoặc tham chiếu bên ngoài (mà chúng tôi phải áp dụng bên ngoài cho chân AREF).
Theo kinh nghiệm của tôi, tối thiểu là 2.0V nên được sử dụng làm điện áp tham chiếu để có được kết quả tốt từ ADC. Vì 1.1V không tốt ít nhất đối với tôi. (Kinh nghiệm cá nhân)
* QUAN TRỌNG * * QUAN TRỌNG ** QUAN TRỌNG ** QUAN TRỌNG ** QUAN TRỌNG ** QUAN TRỌNG *
Chúng ta cần sử dụng tín hiệu âm thanh được khuếch đại từ Bộ khuếch đại hoặc Mạch khuếch đại có điện áp đỉnh (Điện áp tối đa) là 5V
Bởi vì tôi đã đặt Tham chiếu điện áp bên trong là 5V cho Dự án của chúng tôi. Và tôi đang sử dụng Tín hiệu được khuếch đại bằng Bộ khuếch đại thông thường (Bộ khuếch đại âm nhạc), hầu hết đều có sẵn trong gia đình của chúng tôi hoặc bạn có thể tự chế tạo một chiếc cho riêng mình.
Vì vậy, bây giờ là phần chính. Tỷ lệ lấy mẫu, là số lượng mẫu ADC của chúng tôi lấy mỗi giây, nhiều hơn nữa là tỷ lệ chuyển đổi, tốt hơn sẽ là kết quả đầu ra, tương tự hơn sẽ là sóng đầu ra so với đầu vào.
Vì vậy, chúng tôi sẽ sử dụng tốc độ lấy mẫu là 33,33Khz trong Dự án này, bằng cách đặt xung nhịp ADC ở 500Khz.
Chúng ta có thể thấy rằng, chúng ta cần 13,5 chu kỳ đồng hồ ADC để hoàn thành một mẫu với lấy mẫu tự động. Với tần số 500Khz, có nghĩa là 1 / 500Khz = 2uS cho một chu kỳ ADC, có nghĩa là cần 13,5 * 2uS = 27uS để hoàn thành một mẫu khi lấy mẫu tự động được sử dụng. Bằng cách cung cấp thêm 3uS cho Bộ vi điều khiển (cho mặt an toàn), Tạo ra tổng cộng 30uS hoàn toàn cho một mẫu.
Vì vậy, 1 mẫu ở 30uS có nghĩa là 1 / 30uS = 33,33 KSamples / S.
Để đặt Tốc độ lấy mẫu, phụ thuộc vào TIMER0 của Arduino, vì trình kích hoạt lấy mẫu tự động ADC phụ thuộc vào tốc độ đó trong trường hợp của chúng tôi, như bạn cũng có thể thấy trong mã và biểu dữ liệu, chúng tôi đã đặt giá trị OCR0A = 60 (Tại sao vậy ???)
Vì theo công thức đã cho trong datasheet.
tần số (hoặc ở đây là Tốc độ mẫu) = Tần số đồng hồ của Arduino / Prescaler * Giá trị của OCR0A (trong trường hợp của chúng tôi)
Tần số hoặc Tỷ lệ mẫu chúng tôi muốn = 33,33KHz
Tần số đồng hồ = 16MHz
Giá trị Prescaler = 8 (trong trường hợp của chúng tôi)
Giá trị của OCR0A = chúng ta muốn tìm ??
mà chỉ đơn giản là cung cấp OCR0A = 60, cũng trong mã Arduino của chúng tôi.
TIMER1 được sử dụng cho sóng mang của tín hiệu âm thanh và tôi sẽ không đi sâu vào quá nhiều chi tiết về điều đó.
Vì vậy, đó là lý thuyết ngắn gọn về khái niệm ADC đến PWM với Arduino.
Bước 3: Sơ đồ
Kết nối tất cả các Thành phần như được hiển thị trong sơ đồ. Vì vậy, bạn có hai lựa chọn ở đây: -
1. Kết nối loa (Kết nối với 5V)
2. Kết nối Biến áp Flyback (Được kết nối với 12V)
Tôi đã thử cả hai. Và cả hai đều hoạt động khá tốt.
* QUAN TRỌNG * * QUAN TRỌNG ** QUAN TRỌNG ** QUAN TRỌNG ** QUAN TRỌNG * Chúng ta cần sử dụng tín hiệu âm thanh được khuếch đại từ Bộ khuếch đại hoặc Mạch khuếch đại có điện áp đỉnh (Điện áp tối đa) là 5V
Khước từ trách nhiệm: -
* Tôi khuyên bạn nên sử dụng Flyback Transformer với Thận trọng vì nó có thể nguy hiểm vì nó tạo ra Điện áp cao. Và tôi sẽ không chịu trách nhiệm về bất kỳ thiệt hại nào. *
Bước 4: Kiểm tra cuối cùng
Vì vậy, hãy tải mã đã cho lên Arduino của bạn và kết nối Tín hiệu khuếch đại với chân A0.
Và đừng quên kết nối tất cả các chân nối đất với một điểm chung.
Và chỉ thích nghe nhạc.
Đề xuất:
Cách sử dụng đèn LED Neopixel Ws2812 hoặc LED STRIP hoặc vòng đèn LED với Arduino: 4 bước
Cách sử dụng LED Neopixel Ws2812 hoặc LED STRIP hoặc LED Ring Với Arduino: Xin chào các bạn vì Neopixel LED Strip rất phổ biến và nó còn được gọi là dải LED ws2812. Chúng rất phổ biến vì trong dải đèn led này, chúng tôi có thể giải quyết từng đèn led riêng biệt, có nghĩa là nếu bạn muốn có ít đèn led phát sáng trong một màu,
Phát bài hát (MP3) với Arduino bằng PWM trên Loa hoặc Biến áp quay ngược: 6 bước (có Hình ảnh)
Phát các bài hát (MP3) với Arduino Sử dụng PWM trên Loa hoặc Biến áp Flyback: Xin chào các bạn, Đây là hướng dẫn đầu tiên của tôi, tôi hy vọng các bạn sẽ thích nó !! Về cơ bản, trong Dự án này, tôi đã sử dụng Giao tiếp nối tiếp giữa Arduino và Máy tính xách tay của mình, để truyền dữ liệu âm nhạc từ máy tính xách tay của tôi sang Arduino. Và sử dụng Arduino TIMERS t
Cách vẽ bằng cách sử dụng cọ sơn thông thường và nước để vẽ trên máy tính bảng hoặc điện thoại di động: 4 bước
Cách vẽ tranh bằng cọ sơn thông thường và nước để vẽ trên máy tính bảng hoặc điện thoại di động: Vẽ tranh bằng cọ rất thú vị. Nó mang lại rất nhiều sự phát triển khác cho trẻ em
Phát triển ứng dụng bằng cách sử dụng các ghim GPIO trên DragonBoard 410c với hệ điều hành Android và Linux: 6 bước
Phát triển ứng dụng bằng cách sử dụng chân GPIO trên DragonBoard 410c Với Hệ điều hành Android và Linux: Mục đích của hướng dẫn này là hiển thị thông tin cần thiết để phát triển các ứng dụng sử dụng chân GPIO trên DragonBoard 410c mở rộng tốc độ thấp. Hướng dẫn này trình bày thông tin để phát triển các ứng dụng bằng cách sử dụng các chân GPIO với SYS trên Andr
Thêm đèn đánh bại vào loa di động hoặc loa Pc của bạn : 5 bước
Thêm Đèn đánh bại vào Loa Di động hoặc Loa Pc của bạn …: bạn đã bao giờ muốn một số loa âm thanh di động nhỏ hoặc loa máy tính của mình trông giống như khi bạn ở câu lạc bộ chưa ??? rất tốt trong phần hướng dẫn này, tôi sẽ chỉ cho bạn cách để có được khả năng nói của bạn trên địa điểm và âm thanh của câu lạc bộ