Étape 1: Code
#include < AF_Wave.h > //You aurez besoin la bibliothèque AF Wave
#include < avr/pgmspace.h >
#include « util.h »
#include « wave.h »
Carte de AF_Wave ;
Fichier f ;
Wavefile vague ;
#define redled 9
uint16_t taux d’échantillonnage ;
int puissance = 19 ;
void setup() {}
Serial.Begin(9600) ; mettre en place une bibliothèque série à 9600 bps
Serial.println ("vague test!") ;
randomSeed(analogRead(0)) ;
pinMode (sortie 2) ;
pinMode (3, sortie) ;
pinMode (sortie 4) ;
pinMode (5, sortie) ;
pinMode (redled, sortie) ;
pinMode (alimentation, sortie) ;
Si (! card.init_card()) {}
putstring_nl ("carte init. a échoué!") ; retour ;
}
Si (! card.open_partition()) {}
putstring_nl ("aucune partition!") ; retour ;
}
Si (! card.open_filesys()) {}
putstring_nl ("Impossible d’ouvrir filesys") ; retour ;
}
Si (! card.open_rootdir()) {}
putstring_nl ("Impossible d’ouvrir dir") ; retour ;
}
putstring_nl ("fichiers trouvés:") ;
ls() ;
}
ls() Sub {}
nom char [13] ;
int ret ;
Card.reset_dir() ;
putstring_nl ("fichiers trouvés:") ;
tandis que (1) {}
RET = card.get_next_name_in_dir(name) ;
Si (! ret) {}
Card.reset_dir() ;
retour ;
}
Serial.println(Name) ;
}
}
uint8_t tracknum = 0 ;
void loop() {}
capteur int = 0 ;
int sensorPin = 0 ;
capteur = analogRead(sensorPin) ;
uint8_t i, r ;
nom c, Char [15] ;
Card.reset_dir() ;
Faites défiler les fichiers dans le répertoire
//------------------------------------------------
IL S’AGIT DU BOUTON SI DÉCLARATION!!!
//
digitalWrite (puissance, faible) ; Cette option active le système de haut-parleurs
À l’aide d’un relais de powerSwitchTail
Quand aucune musique.
Vous n’avez pas besoin de cela si vous
envie de quitter vos enceintes sur
Si (capteur > 500) {/ / 300 est pour le capteur de distance infrarouge,
vous pouvez modifier ce nombre en fonction
le type de capteur que vous utilisez.
Ce capteur est sur la broche analogique 0.
digitalWrite (puissance élevée) ; Cela allume les enceintes à l’aide
le relais de powerswitchtail
pour (i = 0; i < tracknum + 1; i ++) {}
r = card.get_next_name_in_dir(name) ;
Si (! r) {}
manqué de pistes ! recommencer
tracknum = 0 ;
retour ;
}
}
putstring ("\n\rPlaying") ; Serial.Print(Name) ;
réinitialiser le répertoire, alors nous pouvons trouver le fichier
Card.reset_dir() ;
playcomplete(Name) ;
tracknum ++ ;
}
}
void playcomplete(char *name) {}
uint16_t potval ;
uint32_t newsamplerate ;
playfile(Name) ;
taux d’échantillonnage = wave.dwSamplesPerSec ;
tandis que (wave.isplaying) ; {
vous pouvez faire des choses ici !
Delay(500) ;
}
Card.close_file(f) ;
Delay(30000) ;
}
void playfile(char *name) {}
f = card.open_file(name) ;
Si (! f) {}
putstring_nl ("Impossible d’ouvrir le fichier") ; retour ;
}
Si (! wave.create(f)) {}
putstring_nl ("pas un valide" WAV") ; retour ;
}
OK le temps de jouer !
Wave.Play() ;
}
Je déteste quand les gens il suffit de joindre leur code, il essaie toujours de télécharger un fichier .tmp et qui semblent juste fragmentaires pour moi. Trop de gens intelligents sur ce site pour télécharger des fichiers aléatoires.