Tazas interactivos (10 / 10 paso)

Paso 10: códigos

Descargar arduino 1.0.
También, antes de usar el código vaya a http://www.ladyada.net/make/waveshield/use.html.
Usted debe formatear la tarjeta SD, convertir archivos de audio como se sugiere en este sitio.
Además, no te olvides de poner el audio se puede convertir a la tarjeta SD.

Código de Arduino que utilizamos:

#include < FatReader.h >
#include < SdReader.h >
#include < avr/pgmspace.h >
#include "WaveUtil.h"
#include "WaveHC.h"

Tarjeta SdReader;    Este objeto contiene la información de la tarjeta
FatVolume vol;    Contiene la información de la partición en la tarjeta
FatReader raíz;   Esto contiene la información para el sistema de archivos en la tarjeta
FatReader f;      Esto contiene la información del archivo estamos jugamos

Ola WaveHC;  Este es el único objeto (audio) de la onda, puesto que sólo jugaremos uno a la vez

#define DEBOUNCE 100 / botón debouncer

Esta práctica función devolverá el número de bytes actualmente libres en RAM, ideal para depuración!
int freeRam(void)
{
extern int __bss_end;
extern int * __brkval;
int free_memory;
Si ((int) __brkval == 0) {}
free_memory = ((int) & free_memory)-((int) & __bss_end);
}
Else {}
free_memory = ((int) & free_memory)-((int) __brkval);
}
volver free_memory;
}

void sdErrorCheck(void)
{
Si (! card.errorCode()) retorno;
putstring ("\n\rSD I/O error:");
Serial.Print(Card.ErrorCode(), hexagonal);
putstring (",");
Serial.println(Card.errorData(), hexagonal);
while(1);
}

void setup() {}
Configurar puerto serie
Serial.Begin(9600);
Serial.println(freeRam());      Si es menor de 150 bytes escribe con problemas!

Configurar los pines de salida para el control de la DAC. Este los pernos se definen en la biblioteca

Si (! card.init(true)) {//play con spi de 4 MHz si 8MHz no funciona para usted
Si (! card.init()) {//play con spi de 8 MHz (por defecto más rápido!)
putstring_nl ("tarjeta init. no se pudo!");  Algo salió mal, permite imprimir por qué
sdErrorCheck();
while(1);                            entonces 'detener': ¡ no!
}

permiten optimizar la lectura - algunas tarjetas pueden tiempo de espera. Desactivar si tienes problemas
card.partialBlockRead(true);

Ahora buscaremos una partición FAT!
parte de uint8_t;
para (parte = 0; parte < 5; parte ++) {/ / tenemos hasta 5 ranuras en
Si (vol.init (tarjeta, parte))
rotura;                             encontró uno, permite la libertad bajo fianza
}
Si (parte == 5) {/ / si terminamos por no encontrar uno :(
putstring_nl ("No válida partición FAT!");
sdErrorCheck();      Algo salió mal, permite imprimir por qué
while(1);                            entonces 'detener': ¡ no!
}

Permite decir que el usuario lo que encontramos
putstring ("partición de uso");
Serial.Print (parte, DEC);
putstring (", el tipo es grasa");
Serial.println(Vol.fatType(),DEC);     ¿FAT16 o FAT32?

Intente abrir el directorio raíz
Si (! {root.openRoot(vol))}
putstring_nl ("no se puede abrir raíz dir!"); Algo salió mal,
while(1);                             entonces 'detener': ¡ no!
}

¡ UF! Llegamos pasado las partes difíciles.
putstring_nl("Ready!");
}

void loop() {}
putstring(".");            Sin comentarios para ver si no está ejecutando el bucle
int sensorValue;

sensorValue = analogRead(2);   leyó el pin de entrada analógica 2

if(sensorValue<100) {/ / determina la canción que tocamos
playcomplete ("agua. WAV");
playcomplete ("viernes. WAV");
}

else if (sensorValue > = 100 & & sensorValue < 250) {}
playcomplete ("milkbaby. WAV");
playcomplete ("bebé. WAV");}

Else {playcomplete ("coque. WAV");
playcomplete ("myjeans. WAV");
}
}

void playcomplete(char *name) {}
llamar a nuestro ayudante para buscar y reproducir este nombre
playfile(Name);

mientras (wave.isplaying) {//while es jugar!

int16_t potval = 450;
newsamplerate de uint32_t;
int16_t lastpotval = 0;
#define histéresis 3


int sensorValue;
sensorValue = analogRead(5); leer entrada 5 que es el sensor de luz ambiente

if(sensorValue<10) {}
Break;} Si tenemos cerca el sensor de luz ambiente, detiene la canción y cambiar a otra música


Este es el código que cambia la velocidad
potval = analogRead(0); leer el sensor de curva y este código cambia la velocidad según el sensor
Si (((potval-lastpotval) > histéresis) || ((lastpotval-potval) > histéresis)) {
newsamplerate = wave.dwSamplesPerSec;  obtener la frecuencia de muestreo original
newsamplerate * = potval;                       escala el valor analógico
newsamplerate = 512;   queremos 'split' entre 2 x acelerado y desacelerado.
wave.setSampleRate(newsamplerate);  ponerlo inmediatamente!
Serial.println (newsamplerate, DEC);  para la depuración
lastpotval = potval;

}

Serial.Print(potval,DEC);
Delay(100);
}
su hecho reproduciendo
}

void playfile(char *name) {}
ver si el objeto ola está haciendo algo
Si (wave.isplaying) {/ / así que ya está reproduciendo algo, stop!
Wave.STOP();

Basta
}
Buscar en el directorio raíz y abre el archivo
Si (! f.open (raíz, nombre)) {}
putstring ("no puede abrir archivo"); Serial.Print(Name); retorno;
}
Leer bien el archivo y convertirlo en un objeto de onda
Si (! {wave.create(f))}
putstring_nl ("no un válido WAV"); retorno;
}

OK el tiempo para jugar! iniciar la reproducción
Wave.Play();}

Artículos Relacionados

¿La aventura de la electricidad: un diorama interactivo luz

¿La aventura de la electricidad: un diorama interactivo luz

dónde viene la electricidad? ¿Quién inventó la bombilla? ¿Cómo las ciudades utilizar esta tecnología hoy?Estas son algunas preguntas que esperamos atender en este diorama interactivo, la aventura de la electricidad!Este proyecto fue diseñado con fine
Decoupage tazas

Decoupage tazas

Convertir una taza de café ordinario en un regalo personalizado utilizando recortes de revistas viejas de papel de embalaje!Paso 1: Lo que necesitaráLo que usted necesita son los siguientes...tazas de café (estoy usando tazas blancas y amarillas)revi
Caliente la taza de cohete

Caliente la taza de cohete

Hacer propio cohete taza!!!!Este diseño puede contener hasta 200 ml de una bebida caliente como café, té o incluso vino caliente!Este diseño tiene una cáscara doble capa para proteger los dedos de bebidas calientes.Paso 1: Dimensiones y material Altu
Taza fiesta discoteca LED!

Taza fiesta discoteca LED!

Bienvenida a mi inescrutable para el uso de 'Discoteca LED fiesta Cup!' en las fiestas o para añadir emoción a una noche tranquila en! Los clips de 'puck' inferior en la parte inferior de un plástico partido Copa y luces hasta el ritmo!Paso 1: Lista
5 ingredientes congelados yogur tazas

5 ingredientes congelados yogur tazas

Estos son uno de los favoritos de mis hijos después de meriendas escolares. Es caliente todo el año aquí en Vietnam, y tener estos deliciosos congelados tazas de yogur en el congelador hace un placer rápido y saludable para ellos cuando regresan a ca
Tazas de desayuno

Tazas de desayuno

Me encanta cocinar. Es decir, me encanta cocinar. Me encanta probar nuevas ideas de recetas de internet, pero a veces todo se puede encontrar es una imagen con ninguna receta. Tal es el caso de estos chicos malos. Vi varias imágenes de la ' red, pero
Tazón de fuente de CHOCOLATE desayuno

Tazón de fuente de CHOCOLATE desayuno

Algunas personas encuentran muy fácil que se salte el desayuno, yo no. Yo soy una de esas personas que necesitan tener algo de comida dentro de 30 minutos de despertarse. Estos tazones de fuente de chocolate yogur son uno de mis desayunos favoritos c
Tostadas en una taza

Tostadas en una taza

¡ Hola momoluvers! Es Momo y hoy pensé sería preparar un desayuno delicioso para ustedes. Pasteles de taza pueden conseguir una mala reputación por ser baboso y asqueroso. Pero esta torrija es una comida rápida puede hacer menos de 20 minutos que es
Desde un registro a un tazón de fuente en un día

Desde un registro a un tazón de fuente en un día

sólo tomó la manía de tornear madera y como principiante no tengo mucha paciencia todavía. Quiero ver el resultado ahora.He pasado las últimas dos semana de semanas ver casi cualquier video de YOUTUBE que pude encontrar sobre el tema y ahora soy una
El tazón de fuente del Toro

El tazón de fuente del Toro

Esto no es para los débiles de corazón.Tomar un registro y convertirlo en el toro el tazón de fuente no es un proyecto de principiantes, se necesita un amplio conjunto de habilidades que lleva mucho tiempo a perfeccionar a un nivel lo suficientemente
Taza Chocolate pastel de Hot

Taza Chocolate pastel de Hot

Hola chicos. Esta semana pasada ha sido lluvioso y gris. Claramente este tiempo quería descansar para el día. Por lo tanto, hice un par de taza de chocolate caliente tartas. Este pastel de chocolate Ingredientes 3 es cubierto con ganache de chocolate
Juego de estudio interactivo

Juego de estudio interactivo

Un cuestionario de la encuesta vienen a la vida! Utilizar (casi) cualquier objeto para recopilar datos útiles a través de una encuesta de opción múltiple interactivo, atractivo y divertido.Este proyecto utiliza el microcontrolador Makey Makey en comb
Sopa de queso de cerveza en un tazón pan

Sopa de queso de cerveza en un tazón pan

Grande para el poco de fiesta con amigos :)Paso 1: Tazón de pan Cortar la parte superior del pan, como se muestra en la foto, situado a un lado superiorHacer una cruz cortada para el interior del pan, sacar y cortar en cubosColoque los cubitos de taz
Tazón de fuente revista bricolaje!

Tazón de fuente revista bricolaje!

Hola, en este tutorial mostrará usted cómo hacer que este increíble plato hecho de revistas viejas! Esto me llevó sobre una hora y media, así que dejar de lado un poco de tiempo.Paso 1: materialesPara este tutorial necesitarásRevistaPegamento (pegame