Sortie Arduino Audio (9 / 10 étapes)

Etape 09:40 kHz Echantillonnage

Pour ceux d'entre vous qui s’intéressent à la production audio à la fréquence d’échantillonnage de 40kHz, voici un code qui utilise des interruptions de minuterie pour vous permettre de le faire.  Interruptions de minuterie Arduino vous permettent d’interrompre ce que vous faites dans votre fonction principale loop() et passer à une fonction spéciale appelée « une routine d’interruption. »  Une fois terminée cette routine vous revenez où vous l’avez laissé dans le loop().  Configurer et spécifier la fréquence de ces interruptions dans la partie setup() de votre code.  Vous pouvez apprendre les détails de la mise en place d’interruptions ici, mais si vous êtes uniquement intéressé par interruptions 40kHz, alors vous pouvez juste copie parties du code ci-dessous.

Pour configurer les interruptions, vous devrez copier les lignes suivantes dans votre fonction setup() :

cli (); //disable interruptions
interruption timer0 réglé à 40kHz
TCCR0A = 0; / / set ensemble TCCR0A Registre à 0
TCCR0B = 0; / / Idem pour TCCR0B
TCNT0 = 0; //initialize valeur de compteur à 0
Comparez Set match registre d’avancements d’échelon 40kHz
OCR0A = 49; / / = (16 * 10 ^ 6) / (40000 * 8) - 1 (doit être < 256)
activer le mode de la CCT
TCCR0A | = (1 << WGM01) ;
Néc CS11 bit Prédiviseur 8
TCCR0B | = (1 << CS11) ;
activer minuteur comparer interruption
TIMSK0 | = (1 << OCIE0A) ;
SEI (); //enable interruptions

le contenu de la routine d’interruption est encapsulé dans la fonction suivante :

ISR(TIMER0_COMPA_vect) {//40kHz routine d’interruption
}

Vous voulez garder la routine d’interruption aussi courte que possible, que le nécessaire.  Vous pouvez faire toutes vos autres tâches (vérification sur les boutons, allumant des voyants, etc.) dans le loop().  Gardez à l’esprit que la mise en place d’interruptions peut-être affecter autres fonctions Arduino comme analogWrite et retard.

Dans le code ci-dessous, j’utilise la fonction d’interruption d’envoyer une nouvelle valeur des sinus [] à PORTD au taux de 40 kHz et incrémenter la variable « t ».  Figures 1 et 2 montrent la sortie (non filtrée) du code sur un oscilloscope.  Nous pouvons calculer la fréquence prévue comme suit :

fréquence = (fréquence d’échantillonnage) / (étapes par cycle)
fréquence = 40 000 / 100 = 400 hz

avec une fréquence de 40kHz, nous prévoyons la durée de chaque étape pour être :

durée de chaque étape de l’échantillon = 1 / (échantillonnage de fréquence)
durée de chaque étape de l’échantillon = 1/40 000 = 25us

 //Sine out w/ 40kHz sampling rate //by Amanda Ghassaei 

Articles Liés

Impulsions de sortie Arduino de mobile Android. Aucune programmation requise

Impulsions de sortie Arduino de mobile Android. Aucune programmation requise

IntroductionCe Instructable vous montre comment utiliser l'application gratuite, pfodDesigner, de concevoir un menu sur votre mobile Android qui flashe une sortie sur votre carte Arduino sans que vous ayez à écrire du code à tous. Le pfodDesigner gén
Shield Arduino Audio

Shield Arduino Audio

Dans cette vidéo nous montre les étapes simples pour le montage de votre dossier d'audio shield Arduino. Pour acheter un de ces cas, juste de retour mon projet kickstarter : Arduino Audio bouclierÉtape 1: Comment faire monter votre affaire de Shield
Entrée Arduino Audio

Entrée Arduino Audio

Envoyer son dans votre Arduino. Cet Instructable va vous montrer comment préparer audio afin qu'il peut être échantillonnée et traitée par un Arduino pour faire des projets de nature réactive sons et effets audio. (Cet article est un compagnon de Ins
Arduino Audio interrupteur déclenché

Arduino Audio interrupteur déclenché

Ever wanted votre divertissement à la maison ou le système de son pour mettre lui-même lors du branchement de votre iPod ou autre lecteur MP3 portable ?Regardez cette vidéo pour voir comment il fonctionne. Puis de parcourir les étapes pour savoir com
Facile Arduino Audio Annoyatron

Facile Arduino Audio Annoyatron

ce simple dispositif simple joue une petite mélodie à un intervalle aléatoire, entre 5 et 30 secondes, quand les lumières dans une pièce s'éteignent. Il peut être habilement dissimulé à l'intérieur d'une boîte de tissus, ou à l'intérieur ou sous n'im
Testeur de sortie Arduino à l’aide de LED #Xolcano

Testeur de sortie Arduino à l’aide de LED #Xolcano

il s'agit d'un simple et très utile projet chaque fois que vous travaillez sur un prototype, vous pouvez l'utiliser pour gagner du temps.. ! alors commencer le LannÉtape 1: Composants nécessaires 1) LED 3 mm-#72) 1 k résistance - #73) planche perforé
Boîte de sortie Arduino Home Automation

Boîte de sortie Arduino Home Automation

SON FAIT ! DÉCOUVREZ LA VIDÉO DANS LA DERNIÈRE ÉTAPE !Donc dans mon appartement, nous sommes censés pour avoir une prise commutée de sorte que vous pouvez allumer une lumière dès que vous entrez dans l'appartement. Je n'ai pu trouver ladite prise. Al
Log sortie Arduino pour jours avec un BeagleBone

Log sortie Arduino pour jours avec un BeagleBone

Voici un hack rapide pour le débogage des projets Internet of ThingsNous allons dire vous avez construit un gentil, connecté à Internet Arduino projet avec une interface Web fantaisie desservie par, par exemple l'Ethernet shield. Après un ou deux jou
Arduino Audio DSP bouclier

Arduino Audio DSP bouclier

Le bouclier de DSP Audio Arduino a modulation en anneau, echo, reverb, oscope, oscillateur, générateur de signaux arbitraires, etc.. C'est un système logiciel et matériel, un preneur de son, dans une boîte !Etape 1: Obtenir un bouclier audio arduinoL
Audio stéréo avec Arduino

Audio stéréo avec Arduino

Récemment j'ai été annonce beaucoup de projets qui utilisent un 8 bits échelle de résistanceconvertisseur numérique analogique (DAC) et un Arduino à faire sonner. (voir la boîte d'effets vocaux Arduino, l'échantillonneur de tambour Arduino et mon tut
Générateur de code pour des menus personnalisés Android/Arduino activer et désactiver les sorties de l’Arduino. Andriod/Arduino pour les débutants. Absolument aucune programmation requise

Générateur de code pour des menus personnalisés Android/Arduino activer et désactiver les sorties de l’Arduino. Andriod/Arduino pour les débutants. Absolument aucune programmation requise

Mise à jour : un utilisateur invité pour sous-menu soutien. pfodApp a toujours soutenu des sous-menus, mais j'ai ajouté des sous-menus à pfodDesigner. L'instructable Design A Custom Menu System vous montre comment utiliser pfodDesigner pour générer u
Transmission de données de Android Arduino sur prise jack audio

Transmission de données de Android Arduino sur prise jack audio

Avec ce projet, vous pouvez envoyer octets d'android Arduino en utilisant uniquement un connecteur jack audio.Comment ça marche ?Fondamentalement, android envoie un signal audio « morse » arduino. Arduino en revanche décoder le code morse en un octet
Comment changer un Arduino sous et hors tension de sortie de votre mobile Android.  Arduino pour les débutants

Comment changer un Arduino sous et hors tension de sortie de votre mobile Android. Arduino pour les débutants

Mise à jour : Voir Andriod/Arduino pour débutants - Design Custom Andriod menus pour activer et désactiver les sorties de l'Arduino. Absolument aucun programmation requis pour une alternative qui ne nécessite aucune programmation à tous.Comment les d
Guide du débutant pour Arduino

Guide du débutant pour Arduino

Après quelques années d'expérimentations avec Arduino, j'ai décidé que le moment est venu de partager les connaissances que j'ai acquis. Donc j'ai ici, il va, un guide pour Arduino, avec les bases nues pour les débutants et quelques explications plus