MIDI Piano Lighting (8 / 11 étapes)

Etape 8: Logiciel : minuteries et interruptions

Je ne sais pas quelles photos à poster pour expliquer le logiciel, alors, évidemment, sans doute mieux pour juste après une image avec un chat. En outre, le code complet arduino est disponible au téléchargement ci-dessus. (lbdOrganPWM.ino)

Minuteries et interruptions

Afin d’utiliser le matériel PWM en séquence avec la ligne ac déclenchement, tout ce que nous devons faire est de veiller à ce que le compteur qui est utilisé pour générer la valeur PWM est réinitialisé sur le passage à zéro de la tension d’alimentation secteur. Avec le circuit de déclenchement a expliqué à l’étape 7, nous attachons une interruption matérielle sur cette broche pour réinitialiser les compteurs lorsqu’il se déclenche.

Chaque minuterie est initialisée au début du programme pour le mode de génération de formes d’ondes du mode Fast PWM ICRn comme la valeur. Ce mode de minuterie est ce qui rend l’utilisation du matériel PWM possible.

Puisque nous avons 7-bit résolution dans la vélocité de la note MIDI, nous voulons obtenir assez proche de cette résolution pour l’intensité de l’ampoule. Honnêtement, tout ce qui dépasse 16 étapes est assez négligeable, mais puisque nous pouvons nous pourrions aussi bien. Donc si nous fixons le Prédiviseur des timers à 1024 (p. 161 du Datasheet Atmega2560), puis nous avons 16 Mhz / 1024 pour notre horloge = 15625 Hz. Notre fréquence de l’objectif de notre onde PWM total est 120Hz, pour faire correspondre le demi-cycle de la tension de ligne de 60Hz. Ainsi, nous divisons 15626/120 pour obtenir environ 130. Cela signifie que si nous fixons notre ICRn Registre 130, nous aurons une fréquence correspondant à la fréquence de ligne avec environ 130 marches. C’est parfait puisque nous avons 128 étapes dans la vélocité MIDI !

Après avoir essayé ceci dehors, il y a quelques variations dans la fréquence de la ligne, et donc je me suis retrouvé à l’aide d’une valeur supérieure (ICRn) de 122. Cela semblait être un coffre suffisamment de valeur où je m’assurerais que serait désactiver le triac à la Croix-zéro. Si vous allez trop loin au-delà du seuil de zéro-Croix, vous manquez et jamais, la lumière s’éteint ou s’estompe.

Dernière chose, à propos de la config de la minuterie est la polarité PWM. Parce que dès que le minuteur arrive à son point de terminaison, on veut s’assurer que le triac s’éteint (cela signifie que nous sommes près de la Croix-zéro), il faut utiliser le mode inversé de la goupille PWM, alors qu’une fois le Timer = 0, la goupille est faible. Cela signifie juste que quand nous obtenons une valeur de vitesse de 100, nous voulons vraiment régler le registre PWM à 127-100 = 27.

Pour la manutention de la Croix-zéro, la bibliothèque d’arduino possède une fonction intégrée pour cela en utilisant l’interruption matérielle :

 attachInterrupt(5,zeroCrossDetect,FALLING); 

Lorsque 5 est le nombre d’interruption (broche 18 sur le méga), FALLING indique il est déclenché uniquement sur le front descendant (1 -> 0, pas 0 -> 1) de l’axe de l’interruption, et zeroCrossDetect est la fonction ci-dessous.

Il fonctionne en définissant tous les compteurs utilisés par les broches PWM spécifiques, que j’ai choisi de zéro à zéro la Croix. Il met également en place le mode de génération Prédiviseur et forme d’onde pour chaque minuterie, la raison en est donc que la minuterie démarre sur le cycle à C.A. au début du programme, s’assurant il n’y a pas de décalage depuis le début.

 void zeroCrossDetect() { TCNT1 = 0; TCNT3 = 0; TCNT4 = 0; TCNT5 = 0; TCCR1B = (1<<WGM12) | (1<<WGM13) | (1<<CS10) | (1<<CS12); TCCR3B = (1<<WGM32) | (1<<WGM33) | (1<<CS30) | (1<<CS32); TCCR4B = (1<<WGM42) | (1<<WGM43) | (1<<CS40) | (1<<CS42); TCCR5B = (1<<WGM52) | (1<<WGM53) | (1<<CS50) | (1<<CS52); } 

Articles Liés

Carotte, Piano (projet MaKey MaKey A)

Carotte, Piano (projet MaKey MaKey A)

avez-vous jamais pensé qu'une carotte peut créer un tel bon son ? Avec l'aide d'un MaKey MaKey qu'ils peuvent. Mais juste avoir quelques touches n'est pas assez bon, nous allons construire un qui peut avoir 18 touches et 2 octave complète.Étape 1: ma
Let's Entertain

Let's Entertain

dans ce instructable, nous ferons un singe robot qui joue du piano à entratain personnes dans les fêtes d'enfants, restaurants, etc., c'est un très amusant proyect, vous pouvez faire avec aboute 500 $ et fera un morceau de la citè grande.Étape 1: mat
Lumières de télécommande Arduino avec télécommande universelle

Lumières de télécommande Arduino avec télécommande universelle

j'ai se sont penchés en domotique depuis un certain temps, mais n'ont pas commis à lui tout de suite, surtout à cause de l'étiquette de prix. L'année dernière (2010) j'ai acheté ces prise de commande à distance marche/arrêt interrupteurs donc je pour
Convertir un piano jouet pour travailler comme un périphérique midi et utilisez-le avec Synthesia

Convertir un piano jouet pour travailler comme un périphérique midi et utilisez-le avec Synthesia

but de ce projet :Convertir un piano jouet bon marché pour travailler comme un périphérique midi et utilisez-le avec Synthesia (http://www.synthesiagame.com/)Autres programmes qui utilisent les entrées midi peuvent également être utilisés.Approche :L
88 touches de Piano sensible - Bluetooth-MIDI. La recherche de fonds.

88 touches de Piano sensible - Bluetooth-MIDI. La recherche de fonds.

Salutaprès frustrés avec mon piano 5 octaves, essayant de jouer des partitions plus exigeantes de 6 octaves. J'ai décidé de construire un d'environ 7 octaves, MIDI, il peut être entendu par, bluetooch sur PC. Mon idée est de rechercher le financement
Arduino personnalisé MIDI Controller

Arduino personnalisé MIDI Controller

Bonjour et Bienvenue à cette instructable sur comment construire un contrôleur MIDI USB personnalisé, bon marché et facile, basé sur Arduino. Les meilleures nouvelles : aucun souci avec interfaces USB-MIDI ou outils logiciels tels que MIDI sans poil,
Simple prolongateur pédale Piano pour les enfants

Simple prolongateur pédale Piano pour les enfants

Ma fille de 6 ans est d'apprendre à jouer du piano et porte bien--c'est juste que vous n'avez à pattes courtes à cet âge. Son professeur a une extension pédale piano coûteuse, qui non seulement s'étend les pédales, mais elle permet également de repos
PiMiDi : Une framboise Pi Midi boîte ou How I Learned to Stop Worrying and Love MIDI

PiMiDi : Une framboise Pi Midi boîte ou How I Learned to Stop Worrying and Love MIDI

C'est mon deuxième instructable sur l'utilisation de la Pi de framboise pour l'audio numérique, vérifiez sur mon premier instructable pour savoir comment configurer et contrôler les effets audio personnalisés sur une facture pro forma de framboise.Si
Clavier MIDI miniature

Clavier MIDI miniature

Ce clavier a une octave complète des notes sous forme de bouton et peut être connecté à n'importe quel DAW, tels que Logic Pro ou Ableton Live. Il est construit autour d'une carte Arduino Makey Makey . Il n'y a aucune soudure requise ! Les photos mon
Contrôle MIDI s’allume Arduino

Contrôle MIDI s’allume Arduino

Salut, ce post est créé par Jesus Alberto Cejas et Pablo Javier Ruiz pour vous présenter notre projet sur un clavier musical, belles lumières et Arduino.Ce projet prévoyait que « Creative Electronics », une électronique de Beng génie 4ème module de l
MP3 to MIDI (Windows uniquement)

MP3 to MIDI (Windows uniquement)

il s'agit d'une démo pour convertir un MP3 en MIDI. MAIS un gros avertissement... cela a fonctionné pour moi avec 1 instrument. J'ai enregistré le concert de piano dans un digi-enregistreur. Alors traité le MP3. Ce processus est une façon pratique de
Laser Instrument MIDI pour personnes avec handicap physique

Laser Instrument MIDI pour personnes avec handicap physique

Ahoj,Je veux partager avec vous des instructions sur la façon de construire une interface de musique MIDI. L'interface est conçu pour être contrôlé par pointeur laser monté sur tête et peut produire la gamme de tonalités musicales et d'échelles.Vous
Ce qui est MIDI ?

Ce qui est MIDI ?

MIDI (Musical Instrument Digital Interface) est un protocole développé dans les années 1980 qui permet aux instruments électroniques et autres outils numériques musicales pour communiquer entre eux.  MIDI lui-même n'a pas de son, c'est juste une séri
Faire votre propre clavier ou contrôleur MIDI USB pas cher

Faire votre propre clavier ou contrôleur MIDI USB pas cher

Je cherchais un périphérique contrôleur USB MIDI (ou interface) pour les applications de musique comme le clavier de piano ou orgue ou pédalier. Après quelques recherches, j'ai voulu aller vers une solution plus « fait maison ». Mon choix a été final