SDcard breakout board - Cách dùng mạch đọc ghi thẻ trong dự án sử dụng âm thanh

I. Giới thiệu

Hôm nay, chúng ta cùng tìm hiểu về SDcard breakout board (mạch ghi đọc thẻ SD) và ứng dụng của nó trong các dự án sử dụng đến âm thanh như phát nhạc, âm thanh cảnh báo, giọng nói...

II. Phần cứng

  1. Arduino Uno
  2. 01 SDcard breakout board
  3. 01 thẻ micro SD + adapter
  4. dây cắm breadboard
  5. 01 Mạch khuếch đại âm 6W
  6. 01 Tụ điện 4700uF 

III. Lắp mạch

1. SDcard breakout board

Thông số kỹ thuật:

  • Tương thích với cả nguồn 5V và 3.3V
  • Hỗ trợ khe cắm mở rộng
  • SD Card hỗ trợ định dạng FAT16 và FAT32 (các định dạng khác như NTFS, ext1-4,... không chơi được cool). Tốt nhất là bỏ vào máy windows format lại theo định dạng FAT16 hoặc FAT32.
  • Hỗ trợ việc recording và playback cho lượng âm thanh lớn.
  • Giao tiếp thông qua chuẩn SPI (4 Pin): MOSI, SCK, MISO và CS.

2. Kết nối với Arduino

3. Mạch khuếch đại âm 6W

                                                                                     

            

Mạch khuếch đại âm thanh có thứ tự nối dây như sau:

R+ nối với cực + loa bên trái
R- nối với cực - loa bên trái
L- nối với cực - loa bên phải
L+ nối với cực + loa bên phải
Gnd nối với cực âm của nguồn
5V nối với cực dương của nguồn 3.3V - 5.5V
SW được sử dung như 1 công tắc của mạch, SW nối Gnd mạch ngưng hoạt động
Gnd để nối với SW khi tắt mạch
Lin nối với dây jack phone 3.5mm kênh LEFT
Gnd nối với phần chung của dây jack phone 3.5mm
Rin nối với dây jack phone 3.5mm kênh RIGHT

Mạch khuếch đại âm thanh chống chập mạch

Mạch sẽ ngưng hoạt động ngay khi các dây nối ra loa (R+ R- L+ L-) chập nhau hoặc bị nối với Gnd. Sau khi hết bị chập, mạch hoạt động lại bình thường. Very cool ha!

Lưu ý: mạch không có chế độ bảo vệ khi bạn đấu ngược nguồn (Gnd và 5V), cần lưu ý nối đúng cực nguồn vào mạch! Chỉ cần một chút lơ đễnh là bạn sẽ tiền đưa em nó về sọt rác đó, ko có sửa được đâu!

Mạch khuếch đại cho công suất tối ưu

Mạch hoạt động với độ nhiễu cực thấp, công suất khuếch đại lên đến 6W (3W mỗi loa đầu ra).

Để mạch hoạt động ổn định, bạn cần hàn thêm 1 tụ  4700uF vào vị trí tụ C7. (xem hình ở trên ý)

IV. Lập trình

  • Trước tiên các bạn download các thư viện hỗ trợ: thư viện SD, thư viện SPI và thư viện TRMpcm (dự phòng).
  • Chúng ta sẽ bắt đầu bằng cách đọc và phát file âm thanh từ thẻ SD thông qua Arduino. Các bạn phải đảm bảo trong thẻ SD đã có sẵn file âm thanh cần phát.
  • Ở đây, các bạn có thể sử dụng 2 file âm thanh có sẵn của mình cho bài ví dụ này (tải tại đây - dự phòng). Sau đó bỏ chúng vào thẻ SD của bạn.

Ngoài ra có thể chạy các file âm thanh khác (lưu ý chúng ta chỉ play được nhạc .wav được lưu ở dạng 8-bit). Vì sao? 

Vì nó là file âm thanh RAW, nghĩa là âm thanh được lưu ở dạng dữ liệu thô. Hay nói một cách khác, nó chưa được nén và chỉ cần đọc từng byte là ta sẽ có được mảng giá trị các nốt nhạc. Vì sao lại đọc từng byte mà không phải đọc từng word hay dài hơn? Bởi vì, Arduino dùng vi điều khiển ATmega328 - vi điều khiển 8 bit vì vậy xử lý 8 bit sẽ cực nhanh và đã có sẵn thư viện hỗ trợ :3. Muốn play được nhạc được nén như MP3 thì bạn cần phải có mạch giải mã nữa, nói chung là thêm mạch thêm lúa ra đi.

#include <SD.h>
//#define SD_ChipSelectPin 53  //sử dụng SS Pin 53 trên Mega2560
#define SD_ChipSelectPin 4  //thường sử dụng digital pin 4 trên arduino nano 328, hoặc chân tùy ý
#include <TMRpcm.h>
#include <SPI.h>

TMRpcm tmrpcm;
unsigned long time = 0;

void setup()
{

	tmrpcm.speakerPin = 9; //5,6,11 hoặc 46 trên Mega, 9 trên Uno, Nano. Vì sao, xem bài viết cứng của anh NTP_PRO http://arduino.vn/bai-viet/411-timercounter-tren-avrarduino

	Serial.begin(9600); //bật serial monitor ở mức baudrate 9600 :)
	if (!SD.begin(SD_ChipSelectPin))
	{
		Serial.println("SD fail");
		return;
	}
	else
	{
		Serial.println("OK");
	}
	
	tmrpcm.play("xinchao.wav");
	delay(3000);
	time = millis();
}



void loop()
{
	tmrpcm.play("tambiet.wav");
	delay(5500);
	digitalWrite(9, LOW);

	if(millis() - time > 50)
	{
		if (!tmrpcm.isPlaying())
			digitalWrite(9, LOW);
		time = millis();
	}
}

V. Phần mềm hỗ trợ

Để file âm thanh của bạn được đảm bảo chơi thành công, chất lượng bạn nên làm theo các bước sau đây.

1. Phần mềm Audacity: (nếu bạn muốn ghi âm âm thanh riêng)

Phần mềm này cho phép các bạn ghi âm, xử lí âm thanh theo ý muốn như cắt, ghép, chỉnh sửa âm thanh. (Tham khảo tại đây)

2. Phần mềm Total Audio Converte: (nếu bạn đã có sẵn file âm thanh) là một trong những phần mềm chuyển đuôi đơn giản và hiệu quả. (tải tại đây / pass: khopm.com). 

Bước 1: Chọn file âm thanh cần định dạnh và chọn loại định dạng là .wav

Bước 2: Chọn thông số như hình

Bước 3: Nhấn Start.

VI. Kết luận

Rất đơn giản phải không nào! Qua cách tiếp cận như thế này, bạn hoàn toàn có thể thực hiện các dự án kết hợp phát âm thanh. Bookmark lại sau này dễ tìm bạn nhé ;).

 

lên
21 thành viên đã đánh giá bài viết này hữu ích.
Hướng dẫn sử dụng các loại module

Nếu bạn đang muốn thực hiện hóa ý tưởng của mình mà không biết dùng loại module nào? Hãy tham khảo các module trong danh sách sau

Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results