Tenue de Rebecca (6 / 7 étapes)

Étape 6: Code d’Arduino

/ * n’oubliez pas de télécharger la bibliothèque WaveHC, disponible ici :
* http://www.ladyada.net/make/waveshield/download.html
*
* code modifié de http://www.ladyada.net/media/wavshield/SampleRateMod.pde
*
* L’orientation de l’accéléromètre est importante pour que ce code s’exécute correctement. Le
* accéléromètre doit être à peu près parallèle à l’Arduino, avec la commande de volume sur le dessus comme le
* dispositif repose sur la hanche.
*/

#include < WaveHC.h >
#include < WaveUtil.h >

Carte de SdReader ; Cet objet conserve les informations de la carte
Vol FatVolume ; Il conserve les informations pour la partition sur la carte
FatReader racine ; Il conserve les informations pour le répertoire racine de volumes
Fichier FatReader ; Cet objet représente le fichier WAV
WaveHC vague ; C’est le seul objet (audio) de la vague, puisque nous allons jouer seulement un à la fois

/*
Définir des macros pour mettre des messages d’erreur dans la mémoire flash
*/
#define error(msg) error_P(PSTR(msg))

Trucs de LED
intervalle long = 1000 ;
int ledPin = 7 ; le nombre de l’axe de la LED

int ledState = faible ; ledState permet de définir la LED
long previousMillis = 0 ; va stocker la dernière fois mise à jour de LED

//////////////////////////////////// SETUP
void setup() {}
pinMode (ledPin, sortie) ;
Serial.Begin(9600) ;
Serial.println ("vague test!") ;

Essayez card.init(true) si des erreurs se produisent sur bouclier vague V1.0
Si (! card.init()) {}
erreur ("carte init. a échoué!") ;
}
Enable optimiser la lecture - certaines cartes peuvent timeout
card.partialBlockRead(true) ;

Si (! vol.init(card)) {}
erreur ("aucune partition!") ;
}
Si (! root.openRoot(vol)) {}
erreur ("Impossible d’ouvrir racine") ;
}
putstring_nl ("fichiers trouvés:") ;
root.ls() ;
}

declarition avant
void playcomplete (FatReader & fichier) ;

//////////////////////////////////// LOOP
void loop() {}
uint8_t i, r ;
nom c, Char [15] ;
dir_t dir ;

root.Rewind() ;
Faites défiler les fichiers dans le répertoire
tandis que (root.readDir(dir) > 0) {}
seulement jouer. Fichiers WAV
Si (! strncmp_P ((char *) & dir.name[8]. PSTR("wav"))) continuer ;

Si (! file.open (vol, dir)) {}
putstring ("Impossible d’ouvrir ») ;
printEntryName(dir) ;
continuer ;
}
putstring ("\n\rPlaying") ;
printEntryName(dir) ;
Serial.println() ;
playcomplete(file) ;
file.Close() ;
}
}

/////////////////////////////////// HELPERS
/*
imprimer des message d’erreur et arrêter
*/
void error_P (const char * str)
{
PgmPrint ("erreur:") ;
SerialPrint_P(str) ;
sdErrorCheck() ;
while(1) ;
}
/*
imprimer des message d’erreur et en cas d’erreur d’e/s SD, idéal pour le débogage !
*/
Sub sdErrorCheck(void)
{
Si (! card.errorCode()) retourner ;
PgmPrint ("\r\nSD I/O erreur:") ;
Serial.Print(Card.ErrorCode(), HEX) ;
PgmPrint (",") ;
Serial.println(Card.ErrorData(), HEX) ;
while(1) ;
}
int16_t lastpotval = 0 ;
#define hystérésis 3
/*
* lire le fichier avec les modifications de taux d’échantillonnage
*/

void makeLEDsblink() {}
unsigned long currentMillis = millis() ;
putstring ("currentMillis =") ; Serial.println(currentMillis) ;
putstring ("prevMillis =") ; Serial.println(previousMillis) ;
putstring ("interval =") ; Serial.println(Interval) ;
Si (currentMillis - previousMillis > intervalle) {}
enregistrer la dernière fois vous cligna des yeux la LED
previousMillis = currentMillis ;

Si le voyant est éteint le faire tourner sur et vice versa :
Si (ledState == faible) {}
ledState = élevé ; }
else {}
ledState = bas ;
}

Définissez la LED avec la ledState de la variable :
digitalWrite (ledPin, ledState) ;
}
}

void playcomplete (FatReader & file) {}
int16_t potval = 450 ;
uint32_t newsamplerate ;
int counter1 = 0 ;
int counter2 = 0 ;
int accelValue ;

Si (! wave.create(file)) {}
putstring_nl ("pas un valide" WAV") ; retour ;
}
OK le temps de jouer !
Wave.Play() ;

alors que {(wave.isplaying)
makeLEDsblink() ;
accelValue = analogRead(0) ;
Serial.println(accelValue) ;
Si {(accelValue < 350)
counter2 ++ ;
}
Si {(counter1 > 30)
Serial.println(counter2) ;
potval = (counter2 * 18) + 450 ;
counter1 = 0 ;
counter2 = 0 ;
}
Si (((potval-lastpotval) > hystérésis) || ((lastpotval-potval) > hystérésis)) {
putstring ("pot =") ; Serial.println (potval, DEC) ;
putstring ("tickspersam =") ; Serial.Print (wave.dwSamplesPerSec, DEC) ; putstring ("->") ;
newsamplerate = wave.dwSamplesPerSec ;
newsamplerate * = potval ;
newsamplerate / = 512 ; Nous voulons « split » entre accéléré et ralenti.
Si (newsamplerate > 48000) {}
newsamplerate = 48000 ;
}
Si {(newsamplerate < 1000)
newsamplerate = 1000 ;
}
wave.setSampleRate(newsamplerate) ;
intervalle = 7500000/newsamplerate ;
putstring ("interval =") ; Serial.println (potval, DEC) ; Serial.println(Interval) ;
Serial.println (newsamplerate, DEC) ;
lastpotval = potval ;
}
Delay(100) ;
counter1 ++ ;
}
sdErrorCheck() ;
}

Articles Liés

Martin le bûcheron & son amie Rebecca - poupées de théâtre

Martin le bûcheron & son amie Rebecca - poupées de théâtre

Projet de menuiserie de ce week-end était sculpture. Le week-end dernier, nous avons fait l'écharpe/moufle/étagère à chapeauxqui pourrait être considéré assez utilitariste, donc nous avions prévu de faire quelque chose de fantaisiste pour notre deuxi
Supernatural point de croix : Tenues de Dean

Supernatural point de croix : Tenues de Dean

Motif de point de croix (dans excel et photo forme) pour les diverses tenues Dean porte dans SupernaturalÉtape 1: matériauxTissu de comte aida 14 (modèle rédigé pour un frame 5 x 7")Couleurs (nombre de couleur de soie standard donné)** Pour tous (sau
Tenue de chien affaires

Tenue de chien affaires

Vous avez un dur travail chiot à la maison nécessitant quelques fringues casual-vendredi ? Cet Instructable va vous montrer comment transformer vos vieux vêtements de travail en l'aspect professionnel, que votre chien a si désespérément besoin de mar
Adapté détenu vin - prêt à boire dans 1 à 3 semaines.

Adapté détenu vin - prêt à boire dans 1 à 3 semaines.

Si vous êtes un connaisseur de vin, ce projet ne peut faire appel à vous, mais si vous aimez vin et essayer de faire certains à la maison d'une manière facile et peu coûteuse qui produit un vin assez décent avec equiptment vous avez autour de la mais
Lien tenue de bébé

Lien tenue de bébé

j'ai fait ce costume de Link taille bébé comme un cadeau de douche de bébé pour un couple d'amis qui sont des grands fans de Zelda lorsqu'ils attendaient leur premier enfant il y a quelques années. Leur enfant a depuis long outrgrown la tenue, mais v
GoPro tenu dans la main sous l’eau monopode

GoPro tenu dans la main sous l’eau monopode

j'ai fait cela pour un ami qui était aller naviguer au schnorchel.Nous avons jeté autour de quelques idées de comment faire une main sous l'eau qui s'est tenue le monopode pour son logement de plongée GoPro. Toutefois, il peut être utilisé pour n'imp
Ianina tenue et chapeau de Dr Who

Ianina tenue et chapeau de Dr Who

Les tenues couronnant de gloire a été la coiffure et du chapeau. J'ai les cheveux courts donc acheté quelques extensions de cheveux pas cher en boucles.J'ai eu ensuite un base chapeau de feutre,Envelopper certains filets lâches sombre autour de la pa
Comment faire deux tenues de Daft Punk avec des casques

Comment faire deux tenues de Daft Punk avec des casques

pour mon 30ème anniversaire, j'ai décidé de faire la fête sur le thème D costume, mon amie Kylie et j'ai décidé que nous allions de Daft Punk. Les costumes étaient très impliqués à faire, mais nous avons eu beaucoup de plaisir et ils était magnifique
Guide de chaussures féminines: 5 trucs infaillibles pour le choix des chaussures pour votre tenue

Guide de chaussures féminines: 5 trucs infaillibles pour le choix des chaussures pour votre tenue

Avouons-le : les femmes ont une relation privilégiée avec leurs chaussures et les sacs. Ce sont des accessoires, que nous porterons à partir du moment où que nous sommes jeunes, jusqu'à ce que nous sommes vieux. Chaussures et sacs peuvent faire beauc
Parfaite tenue de l’enseignement

Parfaite tenue de l’enseignement

enseignement travaille sur les vêtements, et tenue vestimentaire professionnelle et pourtant durable et flexible serait une chose merveilleuse d'avoir !Il pourrait commencer par quelque chose d'aussi simple que la robe de base...la robe doit être à m
Comment débloquer toutes les tenues DLC sans achat !

Comment débloquer toutes les tenues DLC sans achat !

Ici, je vais vous montrer comment débloquer et utiliser toutes les tenues DLC sans achat de la DLC survivant ultime que vous pouvez acheter sur Steam. En raison des limites vous pouvez seulement faire ceci pour solo sauf si vous envoyez la personne q
DIY Style garde-manger tenue

DIY Style garde-manger tenue

un de mes clients préférés m'a envoyé cette photo. Elle a voulu recréer ce look. Sur un budget. Je pense qu'il s'est bien passé. Qu'en penses-tu?Étape 1: jupe j'ai trouvé cette robe au magasin d'aubaines.Étape 2: Le Tee Il s'agit de tee-shirt pour ho
Tenue de l’école

Tenue de l’école

Étape 1: T-shirt blanc j'ai trouvé ce t-shirt blanc à Old Navy pour quelques dollarsÉtape 2: Chemise Floral j'ai trouvé cette chemise florale aux épargnants pour quelques dollarsÉtape 3: Pull/gilet Ce pull/cardigan est ma mère qui elle a l'habitude d
Tenue d’outil, brasage titulaire, troisième mains, mains secourables

Tenue d’outil, brasage titulaire, troisième mains, mains secourables

facilement faire une troisième main tenant l'outil à l'aide de 2 pinces pour certains aimants jouet balle et bâton et 2 clous têtes plates.Attachez chaque pince crocodile à un clou tête plat en sertissage, soudure ou les deux (souder fonctionne mieux