Tentang proyek ini
Proyek ini adalah tentang memantau data tingkat suara yang dikeluarkan, diproduksi, atau dikeluarkan(?) oleh speaker.
Aaah... ini adalah hasil dari rasa penasaran dan kebosanan.
Saya menggunakan modul sensor suara mikrofon [KY-038] untuk mengambil nilai yang kemudian saya kumpulkan dari Serial Monitor, ditransfer ke spreadsheet, disusun ke urutan menaik kemudian memilih nilai yang muncul lebih berulang daripada yang lain atau hanya yang saya Suka.
Saya memilih sejumlah variabel dari rentang terendah hingga rentang menengah dan tinggi.
Variabel dari rentang nilai terendah akan mengaktifkan LED Kuning, variabel rentang menengah akan mengaktifkan LED Hijau, dan variabel rentang tinggi akan mengaktifkan LED Merah.
LED akan diaktifkan atau dinyalakan saat nilai sensor tertentu tercapai atau terdeteksi oleh sensor suara.
Saya juga menyertakan LCD opsional untuk melihat nilai secara real time hanya untuk bersenang-senang.
Saya pada dasarnya baru saja memutakhirkan kode ini
Menambahkan beberapa kode dari sini
Dan di sini
Kode LCD berasal dari proyek saya sebelumnya
Dan Komentar Nama Pengguna MAS3 di sini
Saya mengalami masalah di mana data yang muncul di LCD memiliki beberapa digit sisa dari nilai sensor sebelumnya. Seperti, ketika nilai saat ini seharusnya 619 yang ada di Serial Monitor, tetapi menjadi 6194, karena nilai sebelumnya adalah 1234.
Unduh file .cpp dan .h di sini.
************************************************** ****************************
Tautan Media Sosial Untuk Diikuti (maksud saya, jika Anda mau):
Facebook - https://fb.me/HeathenHacks
Twitter - https://twitter.com/HeathenHacks
Instagram - https://instagr.am/HeathenHacks
************************************************** ****************************
https://drive.google.com/file/d/15NRocdFjr-DG7Hu2zyyvSvRz7bcncvU7/
Kode
SoundSensorLEDwDataArduino
Saya menambahkan komentar pada kode untuk beberapa penjelasan. Saya harap saya tahu apa yang saya lakukan. lol.#include "Arduino.h" #include "LiquidCrystal_PCF8574.h" #define LCD_ADDRESS 0x27#define LCD_ROWS 2#define LCD_COLUMNS 16#define SCROLL_DELAY 150#define BACKLIGHT 255LiquidCrystal_PCF;/AddiCrystal_PCF8574 bulb pada breadboard + Di mana terhubung pada Arduino.// LED1 adalah LED Bulb 1 pada breadboard dan 3 adalah Digital PWM 3 pada Arduino.int LED1=3;int LED2=4;int LED3=5;int LED4=6;int LED5=7;int LED6=8;int LED7=9;int LED8=10;int soundSensor=2; // Pin Digital 2 pada Arduino adalah tempat "DO" dari Sensor Suara terhubung.int sensorValue =analogRead(A0); //Di sinilah "AO" dari Sensor Suara terhubung.boolean LEDStatus=false;void setup () { Serial.begin(9600); LCDi2C.begin(LCD_COLUMNS, LCD_ROWS, LCD_ADDRESS, BACKLIGHT); //Ini adalah yang kita definisikan sebelumnya. pinMode(Sensor suara,INPUT); //Karena Sensor Suara kami adalah Perangkat Input. pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); pinMode(LED5, OUTPUT); pinMode(LED6, OUTPUT); pinMode(LED7, OUTPUT); pinMode(LED8, OUTPUT); pinMode(Nilai sensor, OUTPUT); //sensorValue dideklarasikan sebagai output karena akan dicetak pada LCD dan Serial Monitor.}void loop() { int sensorValue=analogRead(sensorValue); int SensorData=digitalRead(suaraSensor); if(SensorData=1){ if(LEDStatus==false){ LEDStatus=benar; Serial.println(Nilai sensor); //Ini akan dicetak di Serial Monitor hanya untuk memastikan bahwa data di LCD sama. LCDi2C.setCursor(0,0); //Ini untuk membuat teks tidak scroll ke atas dan menghilang kemudian muncul kembali saat data sensorValue ditambahkan. LCDi2C.print("Data Tingkat Suara:"); //Teks yang akan muncul dan tetap berada di Baris 1 LCD. LCDi2C.setCursor(0,1); //Ini untuk membuat teks tidak scroll ke atas dan menghilang kemudian muncul kembali saat data sensorValue ditambahkan. LCDi2C.print(Nilai sensor); // Data yang akan muncul di LCD. LCDi2C.print(" "); // Ini untuk mencegah digit tambahan dari nilai sebelumnya muncul pada nilai saat ini. Seperti, ketika nilai masa lalu adalah 1234, maka saat ini seharusnya 619, tetapi muncul sebagai 6194. } if(sensorValue>=750) { // sensorValue lebih besar dari atau sama dengan XX. Nomor XX dikumpulkan dari data terbaru di Serial Monitor. Disalin dan ditempelkan pada spredsheet, kemudian disusun dari tingkat volume suara terendah hingga semi tertinggi. digitalWrite(LED8,TINGGI); // Anda dapat menggunakan nilai yang berbeda dari sensor pada setiap bohlam LED jika Anda ingin itu bertindak seperti sensor dengan menampilkan atau menyalakan bohlam LED yang sesuai sesuai dengan data nilai sensor. } // Seperti lampu LED Kuning akan menyala ketika sensor mengambil suara volume rendah alias. Tingkat volume minimum, lampu LED Hijau menyala saat tingkat Volume OK, dan Lampu LED Merah menyala saat volume mencapai ambang volume Keras. else{ // Atau, Anda bisa menambahkan nilai yang sama ke semua LED jika Anda ingin semuanya bereaksi pada waktu yang sama. Status LED=salah; // Anda juga dapat bermain dengan nilai sensor untuk membuat LED menari. Menata ulang nilai sensor secara acak misalnya. Atau membuat 2 LED bereaksi pada nilai yang sama dan LED lainnya bereaksi terhadap nilai lain. digitalWrite(LED8,RENDAH); } if(Nilai sensor>=735) { digitalWrite(LED7,HIGH); } else{ LEDStatus=salah; digitalWrite(LED7,RENDAH); } if(Nilai sensor>=725) { digitalWrite(LED6,HIGH); } else{ LEDStatus=salah; digitalWrite(LED6,RENDAH); } if(Nilai sensor>=720) { digitalWrite(LED5,HIGH); } lain{ LEDStatus=salah; digitalWrite(LED5,RENDAH); } if(Nilai sensor>=715) { digitalWrite(LED4,HIGH); } lain{ LEDStatus=salah; digitalWrite(LED4,RENDAH); } if(Nilai sensor>=700) { digitalWrite(LED3,HIGH); } lain{ LEDStatus=salah; digitalWrite(LED3,RENDAH); } if(Nilai sensor>=675) { digitalWrite(LED2,HIGH); } lain{ LEDStatus=salah; digitalWrite(LED2,RENDAH); } if(Nilai sensor>=650) { digitalWrite(LED1,HIGH); } lain{ LEDStatus=salah; digitalWrite(LED1,RENDAH); } } else{ LEDStatus=false; // Tidak begitu yakin mengapa saya menambahkan ini. Tertawa terbahak-bahak. digitalWrite(LED1,RENDAH); digitalWrite(LED2,RENDAH); digitalWrite(LED3,RENDAH); digitalWrite(LED4,RENDAH); digitalWrite(LED5,RENDAH); digitalWrite(LED6,RENDAH); digitalWrite(LED7,RENDAH); digitalWrite(LED8,RENDAH); } }
Skema
Ikuti saja kabelnya dari ujung ke ujung.