// Define pin untuk mikrofon dan LED RGB
#define MIC_PIN 34 // Pin GPIO untuk mikrofon
#define LED_PIN_R 23 // Pin GPIO untuk LED merah
#define LED_PIN_G 22// Pin GPIO untuk LED hijau
#define LED_PIN_B 21 // Pin GPIO untuk LED biru
// Ambang untuk menyalakan LED berdasarkan tingkat kekerasan suara
const int AMBANG_SUARA = 50;
void setup() {
// Setup pin mikrofon sebagai input
pinMode(MIC_PIN, INPUT);
// Setup pin LED sebagai output
pinMode(LED_PIN_R, OUTPUT);
pinMode(LED_PIN_G, OUTPUT);
pinMode(LED_PIN_B, OUTPUT);
// Setup Serial untuk debugging
Serial.begin(115200);
}
void loop() {
// Membaca nilai analog dari pin mikrofon
int rawValue = analogRead(MIC_PIN);
// Melakukan konversi nilai analog ke dalam rentang yang diinginkan (misalnya, 0-100)
float meterValue = map(rawValue, 0, 1023, 0, 100);
// Debug: Tampilkan nilai tingkat kekerasan suara
Serial.println(meterValue);
// Mengaktifkan LED jika tingkat kekerasan suara melebihi ambang tertentu
if (meterValue > AMBANG_SUARA) {
// Nyalakan LED dengan warna tertentu (contoh: merah)
digitalWrite(LED_PIN_R, HIGH);
digitalWrite(LED_PIN_G, LOW);
digitalWrite(LED_PIN_B, LOW);
} else {
// Matikan LED jika tingkat kekerasan suara di bawah ambang
digitalWrite(LED_PIN_R, LOW);
digitalWrite(LED_PIN_G, LOW);
digitalWrite(LED_PIN_B, LOW);
}
// Delay sementara untuk mengurangi frekuensi pembacaan nilai
delay(100); // Ubah nilai delay sesuai kebutuhan
}