#include "fix_fft.h"
// fixed point Fast Fourier Transform library
/*
* Simple Wokwi Microphone Demo
https://spectrogram.sciencemusic.org/
https://vk.com/club171670176
https://github.com/juraspb/MusicToColor
https://mysku.club/blog/diy/57947.html
https://habr.com/ru/post/409893/?fl=ru,en
https://mysku.club/blog/diy/65801.html
https://learn.adafruit.com/gemma-powered-neopixel-led-sound-reactive-drums/circuit-diagram
https://www.tweaking4all.com/hardware/arduino/adruino-led-strip-effects/#cylon
*/
const byte pinA = 13;
const byte val_num_samples = 255;
int myOffset[] = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
void setup() {
Serial.begin(115200);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
//Serial.println("Hello Computer");
//Serial.println("Hello Serial 1");
//Serial.println("Hello Serial 2");
//Serial.println("Hello Serial 3");
analogReference(EXTERNAL);
}
void loop() {
for (byte i = 0; i < 10; i++)
{
digitalWrite(10, HIGH);
delay(5);
int sample = analogRead(A0);
Serial.print(abs(sample - 512)+myOffset[i]);
Serial.print(" ");
digitalWrite(13, abs(sample - 512) > 2 && abs(sample - 512) < 50);
digitalWrite(12, abs(sample - 512) > 51 && abs(sample - 512) < 100);
digitalWrite(11, abs(sample - 512) > 101 && abs(sample - 512) < 200);
digitalWrite(10, LOW);
delay(5);
}
Serial.println();
//delay(500);
//int sample = analogRead(A0);
//Serial.println(abs(sample - 512));
/*for (byte i = 0; i < numSamples; i++) { // read 128 analog input samples from ADC
digitalWrite(13, HIGH);
delay(500);
int sample = analogRead(A0);
Serial.println(sample);
//re[i] = sample / 4 - numSamples; // scale the samples to fit within a char variable
//im[i] = 0; // there are no imaginary samples associated with the time domain so set to 0
};*/
/*
*/
/*
if (abs(sample - 512) > 10)
{
}
*/
}