Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Detektor Frekuensi Audio Arduino – Ukur Puncak Suara Terkeras dengan Modul Sensitivitas Tinggi

Komponen dan perlengkapan

Arduino UNO × 1

DEVMO High Sensitivity Sound Detection Module for Arduino × 1

Solderless Breadboard Full Size × 1

Komputer × 1

USB-A to B Cable × 1

Jumper wires (generic) × 1

Tentang proyek ini

Proyek Arduino ini menampilkan frekuensi mendekat dari suara terkeras yang terdeteksi oleh modul deteksi suara. Untuk proyek ini, output analog dari detektor modul suara mengirim sinyal audio analog yang terdeteksi ke A0 Arduino Uno. Sinyal diambil sampel dan dikuantisasi (dikigitalkan). Kemudian Fast Fourier Transform (FFT) dilakukan pada data yang telah dikigitalkan. FFT mengonversi data digital dari hasil domain waktu diskrit mendekat. Frekuensi maksimum dari hasil domain waktu diskrit mendekat kemudian ditentukan dan ditampilkan melalui Arduino IDE Serial Monitor.

Untuk informasi lebih lanjut tentang proyek ini, kunjungi tautan ini: More Information

Lihat proyek lanjutan saya dengan mengklik [tautan ini]

Kode

AudioFrequencyDetectorV1-0.inoArduino
Kode/sketsa ini menampilkan frekuensi mendekat dari suara terkeras yang terdeteksi oleh modul deteksi suara.
/* File/Sketch Name: AudioFrequencyDetector Version No.: v1.0 Created 12 Desember, 2019 Original Author: Clyde A. Lettsome, PhD, PE, MEM Description: Kode/sketsa ini menampilkan frekuensi mendekat dari suara terkeras yang terdeteksi oleh modul deteksi suara. Untuk proyek ini, output analog dari detektor modul suara mengirim sinyal audio analog yang terdeteksi ke A0 Arduino Uno. Sinyal diambil sampel dan dikuantisasi (dikigitalkan). Kemudian Fast Fourier Transform (FFT) dilakukan pada data yang telah dikigitalkan. FFT mengonversi data digital dari hasil domain waktu diskrit mendekat. Frekuensi maksimum dari hasil domain waktu diskrit mendekat kemudian ditentukan dan ditampilkan melalui Arduino IDE Serial Monitor. Catatan: Pustaka arduinoFFT.h perlu ditambahkan ke Arduino IDE sebelum mengompilasi dan mengunggah skrip/sketsa ini ke Arduino. Lisensi: Program ini adalah perangkat lunak gratis; Anda dapat mendistribusikannya dan/atau memodifikasinya berdasarkan ketentuan GNU General Public License (GPL) versi 3, atau versi lebih baru pilihan Anda, yang diterbitkan oleh Free Software Foundation. Catatan: Hak Cipta (c) 2019 oleh C. A. Lettsome Services, LLC Untuk informasi lebih lanjut kunjungi https://clydelettsome.com/blog/2019/12/18/my-weekend-project-audio-frequency-detector-using-an-arduino/ */ #include "arduinoFFT.h" #define SAMPLES 128 //SAMPLES-pt FFT. Harus berupa bilangan basis 2. Maks 128 untuk Arduino Uno. #define SAMPLING_FREQUENCY 2048 //Ts = Berdasarkan Nyquist, harus 2 kali frekuensi tertinggi yang diharapkan. arduinoFFT FFT = arduinoFFT(); unsigned int samplingPeriod; unsigned long microSeconds; double vReal[SAMPLES]; //buat vektor ukuran SAMPLES untuk menyimpan nilai real double vImag[SAMPLES]; //buat vektor ukuran SAMPLES untuk menyimpan nilai imajiner void setup() { Serial.begin(115200); //Kecepatan baud untuk Serial Monitor samplingPeriod = round(1000000*(1.0/SAMPLING_FREQUENCY)); //Periode dalam mikrosecond } void loop() { /*Ambil SAMPLES kali*/ for(int i=0; i<SAMPLES; i++) { microSeconds = micros(); //Mengembalikan jumlah mikrosecond sejak papan Arduino mulai menjalankan skrip saat ini. vReal[i] = analogRead(0); //Membaca nilai dari pin analog 0 (A0), mengkuantisasi dan menyimpannya sebagai istilah real. vImag[i] = 0; //Membuat istilah imajiner selalu 0 /*waktu tunggal yang tersisa di antara sampel jika diperlukan*/ while(micros() < (microSeconds + samplingPeriod)) { //jangan lakukan apa-apa } } /*Lakukan FFT pada sampel*/ FFT.Windowing(vReal, SAMPLES, FFT_WIN_TYP_HAMMING, FFT_FORWARD); FFT.Compute(vReal, vImag, SAMPLES, FFT_FORWARD); FFT.ComplexToMagnitude(vReal, vImag, SAMPLES); /*Temukan frekuensi puncak dan cetak puncak*/ double peak = FFT.MajorPeak(vReal, SAMPLES, SAMPLING_FREQUENCY); Serial.println(peak); //Cetak frekuensi paling dominan. /*Skrip berhenti di sini. Reset perangkat keras diperlukan.*/ while (1); //lakukan sekali } 

Skema

Proyek Arduino ini menampilkan frekuensi mendekat dari suara terkeras yang terdeteksi oleh modul deteksi suara.Detektor Frekuensi Audio Arduino – Ukur Puncak Suara Terkeras dengan Modul Sensitivitas Tinggi

Proses manufaktur

  1. Buat Sistem Ambilight Monitor Menakjubkan dengan Arduino
  2. Membuat Game Pong Klasik pada Arduino UNO dengan Layar OLED – Tutorial Langkah demi Langkah
  3. Buat Tamagotchi Arduino Sendiri: Proyek DIY Hewan Peliharaan Digital
  4. Cara Memutar Audio dengan Arduino UNO dan DFPlayer Mini – Panduan Langkah demi Langkah
  5. Pengontrol Saklar Lampu Nirkabel Smart Berbasis Arduino
  6. Tic Tac Toe Arduino dengan Matriks LED MAX7219 dan Kotak Kardus
  7. Senapan Air Cerdas Tergerak Gerakan dengan Arduino Nano
  8. Membuat Timer Hitung Mundur Arduino yang Andalan dengan Layar 7-Segmen SparkFun
  9. Matahari Buatan Arduino: Buat Bunga Matahari Pelacak Matahari
  10. Buat Mobil RC Porsche Sendiri dengan Arduino: Panduan Langkah demi Langkah