Spectacle de lumière de midi (6 / 7 étapes)

Étape 6: Concepts de codage

Ici est le premier segment majeur de notre code.

 //These are the midi commands to interact with the arduino byte midi_on = 0x90; byte midi_off = 0x80; /* These global variables are used specifically with the check_midi() function listed later in the program */ byte location_byte; byte in_note; byte in_volume; 

Tout d’abord, nous avons mis une variable constante pour le message midi_on et le message de midi_off, afin que nous pouvons référer rapidement à la leur dans le code. Ensuite, nous créons des variables de 3 octets pour l’entrée des fonctions midi comme vous l’avez remarqué plus tôt.

Viennent ensuite les fonctions midi à nouveau :

Voici la fonction internet à l’écriture du midi_send Sub pitch (octet cmd, remarque octet, volume octets) {digitalWrite(3,LOW) ; Serial.Write(cmd) ; Serial.Write(note) ; Serial.Write(volume) ; } //Here is the internet function for writing out the pitch void midi_send(byte cmd, byte note, byte volume) { digitalWrite(3,LOW); Serial.write(cmd); Serial.write(note); Serial.write(volume); } //reads the serial port to see if there is any incoming information boolean check_midi() { while (Serial.available() >= 3)//when three bytes available { if (Serial.available()) { digitalWrite(3,HIGH); location_byte = Serial.read();//read first byte in_note = Serial.read();//read next byte in_volume = Serial.read();//read final byte return true; } } } 

Voici les fonctions que nous avons mentionné plus tôt.  Ils sont copiés simplement pour l’amour de la continuité. Déplacement...

 //arduino specific setup void setup () { Serial.begin(31250); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5, OUTPUT); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5, LOW); } 

Il s’agit d’une partie très importante de l’Arduino.  Ceci définit la vitesse de transmission, ou le taux auquel l’Arduino lit les bits qu’il est envoyé au taux qui exigent des systèmes midi.  Il affecte ensuite broches 3, 4 et 5 broches de sortie.  Pour finir, il écrit les broches de sortie pour descendre ou faible.

void light_on() {int switch_note = in_note % 12 ; switch(switch_note) {//C case 0: digitalWrite(3,HIGH) ; break ; case //D 2: digitalWrite(4,HIGH) ; break ; case //E 4: digitalWrite (5, HIGH); break ; case //F 5: digitalWrite(3,HIGH) ; digitalWrite(4,HIGH) ; Pause //G cas 7: digitalWrite(4,HIGH) ; digitalWrite(5,HIGH) ; break ; //A cas 9: digitalWrite(3,HIGH) ; digitalWrite (5 ÉLEVÉ) ; rupture ; B cas 11 : void light_on() { int switch_note = in_note % 12; switch(switch_note) { //C case 0: digitalWrite(3,HIGH); break; //D case 2: digitalWrite(4,HIGH); break; //E case 4: digitalWrite(5, HIGH); break; //F case 5: digitalWrite(3,HIGH); digitalWrite(4,HIGH); break; //G case 7: digitalWrite(4,HIGH); digitalWrite(5,HIGH); break; //A case 9: digitalWrite(3,HIGH); digitalWrite(5,HIGH); break; //B case 11: digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,HIGH); break; } } //quick call to turn all the lights off void light_off() { digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW); } rupture ; composez le //quick}} pour mettre toutes les lumières light_off() Sub { //the main loop void loop() { //checks if there is a midi to use, then sends it out (echoes echoes echoes echoes) if(check_midi()) midi_send(location_byte,in_note,in_volume); if(location_byte == midi_on && in_volume != 0) { light_on(); } else light_off(); } 

La première fonction est vraiment la viande du code, tandis que le second est tout simplement un appel de référence rapide pour désactiver toutes les LED en même temps.  La première fonction lit l’entrée de la variable in_note, divise par 12 (car il y a 12 tons dans la musique).  Basé sur quelle note qu'il est, il allume la couleur appropriée en écrivant les broches à haute.  Maintenant pour l’aboutissement final de tous ceux-ci :

Voici la boucle principale de la fonction.  Tout d’abord, il vérifie pour voir si il en entrée d’entrée midi et si c’est, il envoie via la fonction midi_send.  Etant donné que la check_midi() remplit les variables globales, nous vérifions pour voir si il y a un appel de midi_on, et que le volume de la note entrante n’est pas 0.  Si ces conditions sont remplies, il fonctionne grâce à la fonction light_on() et allume les lumières. Dans le cas contraire, il allume l’éclairage par défaut.  Et c’est tout !

Articles Liés

Spectacle de lumière d’Halloween

Spectacle de lumière d’Halloween

Spectacle de lumière d'Halloween. Tout le monde aime ça ! Vous aurez cette maison Halloween génial que tout le monde s'arrête et regarde !Etape 1: Acheter lumière lumière O Rama contrôleurSauf si vous êtes un programmeur génial c'est beaucoup plus fa
Spectacle de lumière dans une 3D imprimé modèle

Spectacle de lumière dans une 3D imprimé modèle

Maintenant que l'impression 3D dans un matériau transparent est largement disponible, nous pouvons commencer vraiment pas s'amuser avec les modèles jouant avec la lumière. Il y a aussi des moyens super pratiques d'utiliser un nombre élevé de RVB LED
Spectacle de lumière Laser Wicked personnel

Spectacle de lumière Laser Wicked personnel

créez votre propre spectacle de lumière laser peronal avec les objets du quotidien. Cliquez ici pour obtenir votre propre Pointeur Laser Vert , cliquez ici pour voir le Forum de pointeur LaserN'oubliez pas de vérifier le produit fini dans la vidéo à
SPECTACLE de lumière LASER abordable

SPECTACLE de lumière LASER abordable

Lasers sont amusants, mais quoi d'autre peuvent ils être utilisés pour ? Spectacles de lumière laser sont une option. Je suis allé à beaucoup de concerts où spectacles laser sont utilisés. J'ai toujours voulu avoir un de mes propres, mais le bonnes,
Spectacle de lumière Laser facile

Spectacle de lumière Laser facile

Description :Voici un spectacle de lumière laser très cool. Ce qui le rend plus fraîches, c'est qu'il peut être fait avec des éléments autour de la maison ! Celui-ci est assez simple et ne prend pas beaucoup de temps du tout.Mise en garde :Soyez très
Spectacle de lumière sur la musique

Spectacle de lumière sur la musique

J'ai toujours voulu un moyen peu coûteux de faire un spectacle de lumière qui travaillent sur la musique. Dans ce instructable je vais vous montrer comment construire mon spectacle de lumière. J'espère que vous aimez la musique et les lumières et que
Spectacle de lumière EEAwesome

Spectacle de lumière EEAwesome

Cette instructable a été créée dans l'accomplissement de l'exigence de projet de le Makecourse-Art à l'Université de Floride du Sud (www.makecourse-art.com).Tout le monde devrait avoir quelque chose de cool pour montrer au loin autour de la maison. C
Mon spectacle de lumière d’Halloween

Mon spectacle de lumière d’Halloween

cette année pour Halloween, j'ai fait un spectacle de lumière qui a été synchronisé à la musique. J'ai utilisé un Arduino qui était contrôlé par logiciel light Vixen. Mon Arduino a été connecté à une seule puissance commutateur queue et quatre cartes
Spectacle de lumière contrôlée de mouvement

Spectacle de lumière contrôlée de mouvement

l'idée de ce projet a été frapper autour à l'intérieur de ma tête pour quelques années. J'ai finalement décidé de descendre mes fesses et faites-le. Soyez averti : c'est un long instructable car c'est une accumulation de plusieurs partie, et je suis
Spectacle de lumière laser musique

Spectacle de lumière laser musique

Avant de commencer je devrais sans doute vous dire que les lasers ne sont pas bons pour vos yeux. Ne laissez pas un faisceau laser rebondir hors d'un miroir non contrôlé vous frappez dans les yeux. Si vous ne croyez pas il peut arriver alors lisez ce
Spectacle de lumière pour le sapin de Noël framboise Pi

Spectacle de lumière pour le sapin de Noël framboise Pi

Ce projet consiste à utiliser un Pi de framboise pour piloter 8 prises AC qui sont reliés à l'arbre de Noël lumineux fixe. Les lumières de l'AC sont brins simples à une seule couleur des lumières, mais pour donner une gamme dynamique plus large à l'é
Spectacle de lumière Halloween informatisés 2008 de Jay

Spectacle de lumière Halloween informatisés 2008 de Jay

cela fait partie de mon Halloween 2008 Light-O-Rama Light Show. S'il vous plaît visitez www.jayslights.com pour voir le reste de mon spectacle.
Spectacle de lumière de Noël

Spectacle de lumière de Noël

Donc j'ai eu enfin mon Noël light show complet et stable.Je vais donner le code pour l'Arduino et physique de l'installation électrique maintenant.Si vous avez besoin de plus sur comment configurer vixen 3 et toute autre chose envoient moi un message
De sophie boîte à musique, spectacle de lumière et boîte à bijoux

De sophie boîte à musique, spectacle de lumière et boîte à bijoux

j'ai juste fini de construire une boîte à musique / lumière montrer / boîte à bijoux pour mon amie Sophie. Un microcontrôleur compatible Arduino est utilisé pour générer la boîte à musique acoustique et de contrôler les lumières. L'Arduino code émule