Arduino tono generador SD registro luego reproducción (3 / 3 paso)

Paso 3: Introduce el código

#include < SdFat.h >

nombre de archivo de este ejemplo
char nombre [] = "NEWSONG. REGISTRO";
char toneline [5];
int n, titular;

Chip SD seleccione pin
const uint8_t chipSelect = SS;

objeto de sistema de archivos
SdFat sd;

crear secuencia Serial
Cout(Serial) de ArduinoOutStream;

almacenar cadenas de error en flash para ahorrar memoria RAM
#define error (es) sd.errorHalt_P(PSTR(s))

int playtone;
cpon int;

void setup()
{
pinMode (8, salida);
pinMode (A5, entrada);
Serial.Begin(9600);
Si (! sd.begin (chipSelect, SPI_HALF_SPEED)) sd.initErrorHalt();
startupsong();
}
void loop()
{

Si (! sd.begin (chipSelect, SPI_HALF_SPEED)) sd.initErrorHalt();
ofstream sdout (nombre, ios::out | ios::app);

Si (! sdout) error ("open error");
Delay(200);

randomSeed(analogRead(5));
/ * Si usted tiene un pin analógico inconexos,
recogerá el ruido aleatorio de la
entorno (ondas de radio,
rayos cósmicos, interferencia electromagnéticos-netic
de los teléfonos celulares y las luces fluorescentes,
y así sucesivamente). * /

dlayer larga = +180000 (180000) al azar;
/ * originalmente este código fue por un azar más con al menos un retraso de 3 minutos. Así que puede cambiar el dlayer a un tiempo más corto si quieres. */
dlayer int = 180000;
mientras (dlayer < 0) {dlayer = random +180000 (180000);}
Serial.end();
Serial.Begin(9600);
Serial.Print ("retardo 1 es");
Serial.Print (dlayer/1000, DEC);
Serial.Print ("segundos, aprox");
Serial.Print (dlayer/1000/60, DEC);
Serial.println ("minutos");
Delay(dlayer);

Playtone = random(2000);
Serial.Print ("tono 1 es");
Serial.println(Playtone);
tono (8, playtone);
Delay(50);
noTone(8);
Delay(50);
sdout << playtone << endl;
sdout.Close();

Playtone = random(7000);
Serial.Print ("tono 2 es");
Serial.println(Playtone);
tono (8, playtone);
Delay(50);
noTone(8);
Delay(50);
sdout << playtone << endl;

Playtone = random(5000);
Serial.Print ("tono 3 es");
Serial.println(Playtone);
tono (8, playtone);
Delay(50);
noTone(8);
Delay(50);
sdout << playtone << endl;

sdout.Close();

readsong();
}

void startupsong() {}
Serial.println ("tocando la canción de inicio.");
tono (8, 2500);
Delay(50);
noTone(8);
tono (8, 2500);
Delay(50);
noTone(8);
Delay(50);
tono (8, random(7000));
Delay(Random(250));
noTone(8);
Delay(50);
tono (8, random(5000));
Delay(50);
noTone(8);
Delay(50);
}

void readsong() {}
SdFile rdfile («canción. SESIÓN", O_READ);
mientras que ((n = rdfile.fgets (toneline, sizeof(toneline))) > 0) {}
/*
Si (toneline [n - 1] == '\n') {}
cout < <> ' ' << toneline;
} else {}
cout << '#' << toneline << endl;
}
*/
titular = atoi(toneline);
tono (8, titular);
Delay(50);
noTone(8);
Delay(50);
Serial.Print("+");
Serial.println(Holder);
cout << titular << endl;
}
char c;
ifstream archivo ("sonidos. REGISTRO");
Si (! file.is_open()) sd.errorHalt ("Abra fallado");

Copie el archivo en serie
mientras que ((c = file.get()) > = 0) cout << c;

cout << "Hecho" << endl;
}

Artículos Relacionados

RegisterWrite - extender las salidas del Arduino/microcontrolador con los registros de cambio

RegisterWrite - extender las salidas del Arduino/microcontrolador con los registros de cambio

Registrar escriba es un ejemplo de programa para ampliar las salidas de Arduino usando un registro de cambio.He escribí un bosquejo sencillo que usa 3 salidas de Arduino para manejar el registro de desplazamiento.Escribí esto como no pude encontrar n
Portable MIDI tono generador en-el-barato

Portable MIDI tono generador en-el-barato

IntroducciónEstoy tomando el Funkatron eléctrico a un evento de cursillo que se fuera con tomas de corriente limitada.  Mi configuración es generalmente Funkatron, que dispara notas de un teclado Alesis QS7, que es amplificada por un amplificador de
Controlador de matriz de Led Arduino 8 * 8 con registros de 2 * 74HC595 shift

Controlador de matriz de Led Arduino 8 * 8 con registros de 2 * 74HC595 shift

Compré una matriz de Led 8 x 8 incluye un tablero de conductor con un chip MAX7219CNG. Por desgracia, este chip no estaba funcionando correctamente. Así que decidí construir mi propio controlador con la ayuda de 2 registros de desplazamiento 74HC595.
Binguino: Un basada en Arduino Bingo generador de números

Binguino: Un basada en Arduino Bingo generador de números

Bingo!Mi nieta le gusta jugar Bingo, así que salió y compró unjuego barato en una tienda de descuento local. Las tarjetas y los marcadores están bien,pero el disco de la ruleta para seleccionar los números es un pedazo de basura.Voló aparte unos diez
Instalar un LED en un tono generador circuito para visualizar una onda cuadrada

Instalar un LED en un tono generador circuito para visualizar una onda cuadrada

en esta foto Instructable te instalas y LED en mi circuito de generador de tono para ayudarle a visualizar la salida de tono de la onda cuadrada del Temporizador 555 en modo astable IC.Por favor revise mi Instructable paso a paso, "construir un gener
Vernier sensores y Arduino (o Teensy) para registro de datos

Vernier sensores y Arduino (o Teensy) para registro de datos

veamos cómo recopilar datos de sensores educativos Vernier con una Junta de desarrollo de microcontrolador Arduino-compatible.Si sólo necesita una sonda con un equipo de interfaz y quieres que todo funcione, probablemente debe comprar un Vernier Go!
Arduino Shield consejos del registro

Arduino Shield consejos del registro

Geek viejo perezoso este ha estado utilizando Arduinos para un tiempo y me llegó recientemente a hacer mi propio PCB:Recientemente yo necesitaba hacer mi propio escudo para mi estación meteorológica.Punta: Bueno, navegando a través de mis bibliotecas
El registro del cambio del 74HC164 y su Arduino

El registro del cambio del 74HC164 y su Arduino

registros de desplazamiento son una parte muy importante de la lógica digital, actúan como pegamento entre los mundos paralelos y en serie. Reducir cuentas de alambre, perno uso e incluso ayudar a tomar la carga de tu cpu por ser capaces de almacenar
Las poluciones nocturnas: Mi Arduino Internet habilitado sueño generador

Las poluciones nocturnas: Mi Arduino Internet habilitado sueño generador

todos tenemos que soñar más, así que he creado este Arduino Powered "generador ideal" para ayudar a plantar las semillas para algunos locura pensar grande.  Cuando te acercas el generador de un sensor ultrasónico de Maxbotix activa luces y músic
Generador de tono de Tac TIC... y otras cosas...

Generador de tono de Tac TIC... y otras cosas...

Aquí es su próximo proyecto, denominado 'generador de sonido de Tic Tac - y otras cosas'. Se llama, porque es sobre todo otro tipo de oscilador. No es como el anterior circuito de prueba caja MVB - utiliza 2 transistores de oponerse a las polaridades
TimeDuino - 7 segmento de reloj de Arduino (no hay registros de cambio necesitados!)

TimeDuino - 7 segmento de reloj de Arduino (no hay registros de cambio necesitados!)

Hey todos los asistentes instructable! Este es mi primer proyecto. Sí, sé las palabras generalmente el estereotipo actitud de "Esto no va a ser un buen proyecto", pero llevo esperando mucho tiempo para un proyecto que merece posiblemente rompien
Arduino 16 LEDs con dos registros de desplazamiento 74HC595 (pins ilimitados)

Arduino 16 LEDs con dos registros de desplazamiento 74HC595 (pins ilimitados)

Este es mi primer instructivo, espero que te guste. He estado jugando con LEDs para un tiempo y me di cuenta de que estoy bastante limitada con los pines de Arduino y no se pueden hacer grandes proyectos que requiere una gran cantidad de pines. Se tr
Arduino básico: Hacer sonido

Arduino básico: Hacer sonido

el arduino es sin duda el pequeño micro controlador que podría. Usted puede hacer mucho con ella! En instructables hemos estado teniendo tan divertido con los arduinos, Queríamos mostrar a la comunidad de hacer algunos de los conceptos básicos.Este p
Interrumpe el temporizador de Arduino

Interrumpe el temporizador de Arduino

Interrupciones de Timer permiten realizar una tarea a intervalos muy específicamente programado independientemente de qué está sucediendo en el código. En este instructable voy a explicar cómo configurar y ejecutar una interrupción temporizador claro