Medidor de Vu de Arduino neo Pixel (6 / 6 paso)

Paso 6: El código.

Este código fue proporcionado por Adafruit para su LED Ampli-corbata. He cambiado algunas cosas para mi proyecto.

/*
LED VU-metro para Arduino y LEDs de NeoPixel Adafruit.

Requisitos de hardware:
-La mayoría Arduino Arduino-compatible con tablas o (ATmega 328p o mejor).
-Amplificador de micrófono Electret Adafruit (ID: 1063)
-Adafruit Flora RGB inteligente de píxeles (ID: 1260)
O
-Tira LED Digital de NeoPixel Adafruit (ID: 1138)
-Opcional: batería para uso portátil (más energía a través de USB o adaptador)
Requisitos de software:
-Biblioteca Adafruit NeoPixel

Conexiones:
-3.3V al amplificador de mic +
-Toma de tierra para amplificador de mic-
-Pin analógico a la salida del micrófono (configurable por debajo)
-Pin digital para entrada de datos del LED (configurable por debajo)
Ver notas en setup() respecto a 5V y 3.3V juntas - puede haber un
conexión adicional para hacer y una línea de código para activar o desactivar.

Escrito por Adafruit Industries.  Distribuido bajo la licencia BSD.
Este apartado debe incluirse en cualquier redistribución.
*/

#include < Adafruit_NeoPixel.h >

#define N_PIXELS 30 / / número de píxeles en filamento
#define MIC_PIN A5 / / micrófono está conectado a este pin analógico
#define LED_PIN 6 / filamento de NeoPixel LED está conectado a este pin
#define DC_OFFSET 0 / / DC offset en señal de mic - si unusure, deja 0
#define ruido 20 / / zumbido/ruido/interferencia en señal de micrófono
#define 40 muestras / / longitud del búfer para el ajuste dinámico del nivel de
#define superior (N_PIXELS + 2) / / permitir a punto ir un poco fuera de escala
#define PEAK_FALL 60 / / tasa de pico cayendo punto

bytes
pico = 0, / usa para punto cae
dotCount = 0, / / marco contador para retrasar la velocidad de caída por el punto
volCount = 0;      Contador para almacenar los últimos datos del volumen
int
Vol [muestras], / / colección de muestras de volumen previa
LVL = 20 / / corriente "humedecido" nivel de audio
minLvlAvg = 0, / / para el ajuste dinámico del gráfico baja y alta
maxLvlAvg = 512;
Adafruit_NeoPixel
tira = Adafruit_NeoPixel (N_PIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {}

Esto es necesario sólo en 5V Arduinos (ONU, Leonardo, etc.).
Conectar 3, 3V al mic y a AREF en ARDUINO y habilitar esta
línea.  Muestras de audio son 'limpiador' a 3.3V.
COMENTE ESTA LÍNEA DE 3.3V ARDUINOS (FLORA, ETC.):
analogReference(EXTERNAL);

memset (vol, 0, sizeof(vol));
Strip.Begin();
}

void loop() {}
uint8_t.
uint16_t minLvl, maxLvl;
int n, altura;

n = analogRead(MIC_PIN);                  Primas de mic
n = abs (n - 512 - DC_OFFSET); Centro en el cero
¿n = (n < = ruido)? 0: (n - ruido);             Sacar ruido/zumbido
LVL = ((lvl * 7) + n) >> 3.    "Humedecido" lectura (otro aspecto de TICs)

Calcular altura mín/máx dinámica niveles (punto fijo) de la barra:
altura = superior * (lvl - minLvlAvg) / (largo) (maxLvlAvg - minLvlAvg);

Si (< 0L) altura = 0;      Clip salida
otra cosa if(height > TOP) altura = superior;
if(height > Peak) pico = altura; Mantener punto de 'pico' en la parte superior

Pixeles de color basados en degradado de arco iris
para (i = 0; i < N_PIXELS; i ++) {}
Si (i > = altura) strip.setPixelColor (i, 0, 0, 0);
strip.setPixelColor(i,Wheel(map(i,0,strip.numPixels()-1,30,150))) otra cosa;

}

Dibujar punto pico
Si (pico > 0 & & pico < = N_PIXELS-1) strip.setPixelColor(peak,Wheel(map(peak,0,strip.numPixels()-1,30,150)));

Strip.Show(); Tira de actualización

Cada pocos marcos, hacer el pixel pico caer por 1:

Si (++ dotCount > = PEAK_FALL) {//fall tasa

Si pico (pico > 0)--;
dotCount = 0;
}

Vol [volCount] = n;                      Guardar muestra para nivelación dinámica
Si (++ volCount > = muestras) volCount = 0; Contador de avance/rollover muestra

Obtener rango de fotogramas anteriores
minLvl = maxLvl = vol [0];
para (i = 1; i < muestras; i ++) {}
Si (vol [i] < minLvl) minLvl = vol [i];
else if (vol [i] > maxLvl) maxLvl = vol [i];
}
minLvl y maxLvl indican el rango de volumen sobre marcos previos, utilizados
para escalar verticalmente la gráfica de salida (por lo que parece interesante
independientemente del nivel de volumen).  Si están demasiado juntos aunque
(por ejemplo a niveles muy bajos) el gráfico se convierte en súper grueso
y 'nerviosos'... así que mantenga cierta distancia mínima entre ellos (esto
también permite el gráfico va a cero cuando no se reproduce sonido):
Si ((maxLvl-minLvl) < TOP) maxLvl = minLvl + tapa;
minLvlAvg = (minLvlAvg * 63 + minLvl) >> 6; Reducir niveles de min/max
maxLvlAvg = (maxLvlAvg * 63 + maxLvl) >> 6; (falso media acumulada)

}

Un valor de 0 a 255, para obtener un valor de color de entrada.
Los colores son una transición r - g - b - a r.
uint32_t rueda (bytes WheelPos) {}
if(WheelPos < 85) {}
volver la tira. Color (WheelPos * 3, 255 - WheelPos * 3, 0);
} else if(WheelPos < 170) {}
WheelPos-= 85;
volver la tira. Color (255 - WheelPos * 3, 0, WheelPos * 3);
} else {}
WheelPos-= 170;
volver la tira. Color (0, WheelPos * 3, 255 - WheelPos * 3);
}
}

Artículos Relacionados

Medidor de capacitancia con arduino y Temporizador 555

Medidor de capacitancia con arduino y Temporizador 555

MEDIDOR DE CAPACITANCIA CON ARDUINO Y EL CHIP TEMPORIZADOR 555Este proyecto pretende construir un medidor de capacitancia simple, un dispositivo para la medición de la capacitancia en nanoFarads y μF, con una gama de cerca de 1 nanofaradio a cientos
Usando un medidor VU con un Arduino

Usando un medidor VU con un Arduino

Muchos de nosotros nos han encontrado con tecnología antigua que le queremos dar vida a otra vez. En este caso tenemos un viejo medidor VU, esencialmente un indicador de volumen, que estamos tratando de conseguir mover otra vez. Es un proceso bastant
Electricidad, agua y calefacción centralizada medidor de lectura usando Arduino, WR703N router y webcams para Linux

Electricidad, agua y calefacción centralizada medidor de lectura usando Arduino, WR703N router y webcams para Linux

archivos describen cómo avanzar hacia la casa inteligente y sistema de lectura de medidores de energía y agua de.-Sensor óptico de lectura de disco de medidor de electricidad. Funciona bien. Vivo en http://barbara320.gotdns.com:8083 /-Webcam idea med
Medidor analógico 'anillo' Arduino pantalla TFT a color

Medidor analógico 'anillo' Arduino pantalla TFT a color

Otro proyecto de Arduino para la visualización de las lecturas del sensor etc..El bosquejo de ejemplo incluido en el instructivo comprende la función a utilizar en sus propios proyectos de dibujo, la función no es en una biblioteca por lo que podría
Medidor de capacitancia con arduino y op-amp 741

Medidor de capacitancia con arduino y op-amp 741

Este proyecto comprende el diseño y construcción de un medidor de capacitancia simple capaz de medir capacitores en la gama de sobre 20 picoF a cientos de microF.Esto puede ser una herramienta muy útil al revisar nuestros condensadores y también nos
Medidor de distancia de Arduino

Medidor de distancia de Arduino

Este un proyecto he estado trabajando desde hace algún tiempo. Es un dispositivo que se muestra en una pequeña pantalla LCD la distancia hasta el objeto más cercano que puede encontrar, generalmente el piso, el techo y dos paredes o columnas. Por lo
MEDIDOR de VU de ARDUINO

MEDIDOR de VU de ARDUINO

hey persona leyendo esto.la semana pasada un amigo mío que no esté tan familiarizado con arduino y electrónica necesita un vu-metro para su proyecto de escuela. él me suministra con un arduino y un lcd. el resto dependía de mí. he buscado por interne
Módulo de detección de medidor humedad suelo para Arduino jardinería

Módulo de detección de medidor humedad suelo para Arduino jardinería

Hola chicos,Han creado el programa sensor de suelo detectado utilizando arduino que ayuda a determinar la condición del suelo antes de plantar y regar las plantas.La esperanza de que se ha ayudado con esto instructable.saludosPaso 1: Usando arduino U
Medidor de vu de Arduino con amplificador

Medidor de vu de Arduino con amplificador

sus cuatro partes principales para este proyecto son un Arduino, un LoLshield y un amplificadorEl LoLshield es un circuito impreso que viene con una biblioteca que permite controlar individualmente una matriz de LEDs.  Una vez que tenga la biblioteca
Administrador de sonido de ambiente

Administrador de sonido de ambiente

Hola a todos,Este es mi primer proyecto y les espero guste.La Idea:Mi idea era hacer algo que podría coger el ruido donde es y mostrar al usuario como una variación de color.¿Por qué? Hay algunas personas que tienen mascotas o incluso preguntando sob
Medidor de capacitancia con el arduino y el temporizador 555

Medidor de capacitancia con el arduino y el temporizador 555

MEDIDOR DE CAPACIDAD CON ARDUINO Y EL CHIP TEMPORIZADOR 555Se trata de la construcción de un sencillo capacímetro, o sea un dispositivo para medir la capacidad en microFaradios y nanoFaradios de los capacitores con un rango mínimo de 1 nanoFaradio y
Arco iris Neo reloj

Arco iris Neo reloj

Este reloj fue hecho como regalo pero estaba tan contento con lo que pensé que haría un instructable para él. El reloj utiliza 2 Neo Pixel anillos de Adafruit Industries , así como el microcontrolador Arduino Mini Pro y un Reloj de tiempo Real DS1307
Arduino controla inteligente montaña

Arduino controla inteligente montaña

La elegante montaña es una montaña inteligente para sus bebidas. Reconoce que los diferentes tipos de bebidas colocan encima de ella, con un cóctel de la montaña Smart brilla en algunos colores atmosféricos y lentamente cambiantes. Si pones una taza
Arduino: Luz, sonido, vibración, interruptor

Arduino: Luz, sonido, vibración, interruptor

Se trata de una guía paso a paso para hacer un conjunto de Arduino con alimentación remoto que produzca sonido, luz y vibración durante 1 segundo una vez que se presiona un interruptor. Proporcionaré el código de arduino y pasos para una configuració