Khác biệt giữa các bản “Cảm biến âm thanh tích hợp MAX9814 + AGC”

Từ ChipFC Wiki
Bước tới: chuyển hướng, tìm kiếm
(Tạo trang mới với nội dung “Category:Sensor {{Đang viết}} == Giới thiệu == 400px|phải * Cảm biến âm thanh tích hợp MAX9814 với khả n…”)
 
(Sử dụng)
 
(Không hiển thị 20 phiên bản của một người dùng khác ở giữa)
Dòng 3: Dòng 3:
  
 
== Giới thiệu ==
 
== Giới thiệu ==
[[Tập tin:Att1.png|400px|phải]]
+
[[Tập tin:Att2.png|400px|phải]]
 
* Cảm biến âm thanh tích hợp MAX9814 với khả năng tự động điều chỉnh độ khuếch đại (AGC- Automatic Gain Control), điều này có nghĩa là các âm thanh lớn khi qua mạch sẽ tự động giảm tới mức ấn định và cũng tương tự các âm thanh nhỏ khi qua mạch sẽ tự động tăng tới mức ấn định.
 
* Cảm biến âm thanh tích hợp MAX9814 với khả năng tự động điều chỉnh độ khuếch đại (AGC- Automatic Gain Control), điều này có nghĩa là các âm thanh lớn khi qua mạch sẽ tự động giảm tới mức ấn định và cũng tương tự các âm thanh nhỏ khi qua mạch sẽ tự động tăng tới mức ấn định.
  
 +
== Đặc điểm ==
 +
* Three Gain Settings (40dB, 50dB, 60dB)
  
== Các thông số cơ bản ==
+
* Programmable Attack Time
  
* Three Gain Settings (40dB, 50dB, 60dB)
 
* Programmable Attack Time
 
 
* Programmable Attack and Release Ratio
 
* Programmable Attack and Release Ratio
* Đáp ứng tần số 20Hz - 20kHz
+
 
* Điện áp đầu vào 2,7 -5,5V
+
* Nguồn cấp 2.7V - 5.5V  
* THD thấp: 0.04% (typ)
+
 
* Chế độ tắt máy điện năng thấp
+
* Low Input-Referred Noise Density of 30nV/√Hz
 +
 
 +
* Low THD: 0.04% (typ)
 +
 
 +
* Low-Power Shutdown Mode
 +
 
 
* Internal Low-Noise Microphone Bias, 2V
 
* Internal Low-Noise Microphone Bias, 2V
* Low Input-Referred Noise Density of 30nV/√Hz
 
  
 +
== Sơ đồ chân ==
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
 
! Thứ tự chân !! Tên gọi    !! Mô tả
 
! Thứ tự chân !! Tên gọi    !! Mô tả
Dòng 24: Dòng 29:
 
| 1          || GND        || mass
 
| 1          || GND        || mass
 
|-
 
|-
| 2          || Vdd        || nguồn của vi điều khiển
+
| 2          || Vdd        || Nguồn từ vi điều khiển
 
|-
 
|-
| 3          || Gain      || nguồn của vi điều khiển
+
| 3          || Gain      || Nguồn từ vi điều khiển
 
|-
 
|-
| 4          || Out        || Tín hiệu đầu ra (Analog hoặc Digital)
+
| 4          || Out        || tín hiệu đầu ra
 
|-
 
|-
 
| 5          || AR        ||  
 
| 5          || AR        ||  
 
|}
 
|}
 
  
 
== Sử dụng ==  
 
== Sử dụng ==  
 +
[[Tập tin:Attt5.png|750px|phải]]
 +
* Sơ đồ kết nối
 +
{| class="wikitable sortable"
 +
|+ Kết nối chân tới Arduino
 +
|-
 +
! Thứ tự chân !! Tên gọi !! chân tại Arduino
 +
|-
 +
| 1          || GND    || GND
 +
|-
 +
| 2          || VDD    || 5V
 +
|-
 +
| 3          || OUT    || chân A0
 +
|-
 +
| 4          || Gain    ||
 +
|-
 +
| 5          || AR      ||
 +
|}
  
Sơ đồ kết nối
+
* Chúng tôi sử dụng mức âm thanh từ 20Hz - 20kHz để test. [https://www.youtube.com/watch?v=e8c5Zd79_iA tại đây]
  
<!-- hình -->
+
* Source code mẫu:
[[Hình:ShieldRelay_ketnoiden.jpg|400px]]
 
  
<!-- link nếu có -->
+
<syntaxhighlight lang="cpp">
Tải về source code mẫu [http://abc.com tại đây]
 
  
 +
const int sampleWindow = 50; // lấy mẫu 50ms (50 mS = 20Hz)
 +
unsigned int sample;
  
Source code mẫu:
+
void setup()
 +
{
 +
  Serial.begin(9600);
 +
}
  
{| style="border-radius: 6px 6px 6px 6px;border: 1px dotted"
+
void loop()
|<syntaxhighlight lang="cpp">
+
{
 +
  unsigned long startMillis= millis();
 +
  unsigned int peakToPeak = 0; 
 +
  unsigned int signalMax = 0;
 +
  unsigned int signalMin = 1024;
  
<!-- nội dung source code -->
+
  // collect data for 50 mS
 +
  while (millis() - startMillis < sampleWindow)
 +
  {
 +
      sample = analogRead(0);
 +
      if (sample < 1024) 
 +
      {
 +
        if (sample > signalMax)
 +
        {
 +
            signalMax = sample;  // lưu lại giá trị max
 +
        }
 +
        else if (sample < signalMin)
 +
        {
 +
            signalMin = sample;  // lưu lại giá trị min
 +
        }
 +
      }
 +
  }
 +
  peakToPeak = signalMax - signalMin;  // max - min = peak-peak amplitude
 +
  double volts = (peakToPeak * 5.0) / 1024;  //chuyển sang volts
 +
  Serial.println(volts);
 +
}
  
 
</syntaxhighlight>
 
</syntaxhighlight>
|}
 
 
 
 
 
== Các rắc rối có thể bạn gặp phải ==
 
 
<!-- các trường hợp lỗi có thể xãy ra -->
 
 
== Tham khảo thêm ==
 
 
<!-- link tham khảo -->
 
 
[https://www.abc.com Link hướng dẫn tiếng Anh]
 

Bản hiện tại lúc 11:53, ngày 2 tháng 3 năm 2018

Editor.png

Bài viết này đang được phát triển hoặc chỉnh sửa lớn.
Bạn có thể đóng góp để bài viết hoàn thiện hơn.
Sau khi chỉnh sửa xong thông báo này sẽ được gỡ bỏ.

Giới thiệu

Att2.png
  • Cảm biến âm thanh tích hợp MAX9814 với khả năng tự động điều chỉnh độ khuếch đại (AGC- Automatic Gain Control), điều này có nghĩa là các âm thanh lớn khi qua mạch sẽ tự động giảm tới mức ấn định và cũng tương tự các âm thanh nhỏ khi qua mạch sẽ tự động tăng tới mức ấn định.

Đặc điểm

  • Three Gain Settings (40dB, 50dB, 60dB)
  • Programmable Attack Time
  • Programmable Attack and Release Ratio
  • Nguồn cấp 2.7V - 5.5V
  • Low Input-Referred Noise Density of 30nV/√Hz
  • Low THD: 0.04% (typ)
  • Low-Power Shutdown Mode
  • Internal Low-Noise Microphone Bias, 2V

Sơ đồ chân

Thứ tự chân Tên gọi Mô tả
1 GND mass
2 Vdd Nguồn từ vi điều khiển
3 Gain Nguồn từ vi điều khiển
4 Out tín hiệu đầu ra
5 AR

Sử dụng

Attt5.png
  • Sơ đồ kết nối
Kết nối chân tới Arduino
Thứ tự chân Tên gọi chân tại Arduino
1 GND GND
2 VDD 5V
3 OUT chân A0
4 Gain
5 AR
  • Chúng tôi sử dụng mức âm thanh từ 20Hz - 20kHz để test. tại đây
  • Source code mẫu:
const int sampleWindow = 50; // lấy mẫu 50ms (50 mS = 20Hz)
unsigned int sample;

void setup() 
{
   Serial.begin(9600);
}

void loop() 
{
   unsigned long startMillis= millis();  
   unsigned int peakToPeak = 0;   
   unsigned int signalMax = 0;
   unsigned int signalMin = 1024;

   // collect data for 50 mS
   while (millis() - startMillis < sampleWindow)
   {
      sample = analogRead(0);
      if (sample < 1024)  
      {
         if (sample > signalMax)
         {
            signalMax = sample;  // lưu lại giá trị max
         }
         else if (sample < signalMin)
         {
            signalMin = sample;  // lưu lại giá trị min
         }
      }
   }
   peakToPeak = signalMax - signalMin;  // max - min = peak-peak amplitude
   double volts = (peakToPeak * 5.0) / 1024;  //chuyển sang volts
   Serial.println(volts);
}