MIDI-Light Show (6 / 7 steg)

Steg 6: Kodning begrepp



Här är den första stor bit av vår kod.

Detta är MIDI-kommandon för att interagera med arduino
byte midi_on = 0x90;
byte midi_off = 0x80;

/ * Dessa globala variabler används specifikt med
funktionen check_midi() som beskrivs senare i programmet * /
byte location_byte;
byte in_note;
byte in_volume;

Först ange vi en konstant variabel för meddelandet midi_on och midi_off meddelandet så att vi snabbt kan hänvisa till dem i koden. Därefter skapar vi 3 byte variabler för input av MIDI-funktioner som du märkt tidigare.

Nästa är MIDI-funktionerna igen:

Här är funktionen internet för att skriva ut på planen
void midi_send (byte cmd, byte Obs, byte volym)
{
digitalWrite(3,LOW);
Serial.write(CMD);
Serial.write(Note);
Serial.write(Volume);
}

läser den seriella porten för att se om det finns någon inkommande information
Boolean check_midi()
{
medan (Serial.available() > = 3) //when tre byte tillgängligt
{
om (Serial.available())
{
digitalWrite(3,HIGH);
location_byte = Serial.read (); //read första byten
in_note = Serial.read (); //read nästa byte
in_volume = Serial.read (); //read sista byte
return true;
}
}
}

Här är funktioner som vi nämnde tidigare. De kopieras bara för Kontinuitets skull. Att flytta...

Arduino specifika setup
Ogiltiga inställningar)
{
Serial.BEGIN(31250);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode (5, OUTPUT);

digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite (5, låg).
}

Detta är en mycket viktig del av Arduino. Detta ställer baudhastighet, eller den hastighet vid vilken Arduino läser de bitar som sänds till den kurs som MIDI-system kräver. Nästa anger det stift 3, 4 och 5 till utgångsstift. Det skriver slutligen utgångsstift off eller låg.

void light_on()
{
int switch_note = in_note % 12.
Switch(switch_note)
{
C
fall 0:
digitalWrite(3,HIGH);
bryta;
D
fall 2:
digitalWrite(4,HIGH);
bryta;
E
fall 4:
digitalWrite 5, hög,
bryta;
F
fall 5:
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
bryta;
G
fall 7:
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
bryta;
A
mål 9:
digitalWrite(3,HIGH);
digitalWrite(5,HIGH);
bryta;
B
mål 11:
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
bryta;
}
}

snabb samtal för att stänga av alla lampor
void light_off()
{
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
}

Den första funktionen är verkligen kött i koden, medan andra är helt enkelt en Snabbreferens uppmaning att stänga av alla lampor på en gång. Den första funktionen läser indata från variabeln in_note, delar det med 12 (eftersom det finns 12 toner i musik). Baserat på vad observera det, visar det på lämplig färg genom att skriva stiften till hög. Nu för sista kulmen på alla dessa:

den viktigaste loopen
void loop()
{
kontrollerar om det finns en midi att använda, sedan skickar den ut (ekon ekon ekon ekon)
IF(check_midi()) midi_send(location_byte,in_note,in_volume);

om (location_byte == midi_on & & in_volume! = 0)
{light_on();}
annat light_off();
}

Här är det viktigaste kretsar av funktionen. Det kontrollerar först, om det i MIDI-ingång kommer och om det är, skickar det genom funktionen midi_send. Eftersom check_midi() fyller de globala variablerna, kontrollera vi om det finns ett midi_on samtal och att volymen av inkommande anteckningen är inte 0. Om dessa villkor är uppfyllda, det går genom funktionen light_on() och sätter på lamporna. Annars släcks det lamporna som standard. Och det är det!

Se Steg
Relaterade Ämnen

Halloween Light Show

Halloween ljusshow. Alla älskar det! Du har det awesome Halloween hus som alla stannar och tittar på!Steg 1: Köpa ljus O Rama light ControllerOm du inte är en awesome programmerare är det mycket lättare att köpa styrenheten. Jag är en DIY typ av kill...

PRISVÄRDA LASER LIGHT SHOW

lasrar är kul, men vad annat kan de användas för? Laser ljus visar är ett alternativ. Jag har varit på många konserter där laser visar används. Jag har alltid velat ha en av mina egna, men de bra, färdiga uppställningar som vanligen används i konsert...

Diamond Ring Laser Light Show - SKYlasers Instructable

detta är en mycket enkel instructable på att skapa din egen laser ljusshow! Naturligtvis, pratar vi inte om någon vanlig ljusshow. Vi är här för att visa upp en laser ljus show från reflektioner av en diamantring. Någonsin undrar varför en diamant är...

Jay's 2008 datoriserade Halloween Light Show

detta är en del av min 2008 ljus-O-Rama Halloween ljusshow. Besök www.jayslights.com för att se resten av min show....

Jay's 2008 datoriserade Light Show (crypt2)

detta är en annan del av min 2008 ljus-O-Rama Halloween ljusshow. Besök www.jayslights.com för att se resten av min show....

Raspberry Pi Christmas Tree Light Show

Detta projekt innebär att man använder en Raspberry Pi att köra 8 AC butiker som är anslutna till Christmas Tree light ställer. AC lamporna är enkelt en färg trådar av ljus, men för att ge ett mer dynamiskt omfång till ljusshow där är också en 25 pro...

Lätt Laser Light Show

Beskrivning:Här är en väldigt cool laser ljusshow. Vad gör det svalare är att det kan göras med objekt i hemmet! Här är ganska enkel och tar inte mycket tid alls.Varning:Vara mycket försiktiga under byggnaden av och med hjälp av denna produkt, det är...

50W RGB LED Light Show

Vi var på en tag försäljning och jag såg en 6 fot spränga pumpa för $10. Det såg ut för att ha lite användning så jag tog den. Jag kom hem och fann han 5 lökar insidan slogs upp lite. Det är OK eftersom jag ville lägga till en arduino kontrollerad RG...

PICAXE - musik lyhörda, dimma producerar, LED Light Show och Audio förstärkare i ett

jagn detta instructable jag förklara och utföra processer som skärning och med olika utrustning, genom att imitera någon av processer i detta instructable du göra det på egen risk och följer du någon säkerhetsinformation för all utrustning som använd...

Personliga Wicked Laser Light Show

skapa din egen peronal laser ljusshow med vardagliga föremål. Klicka här för att få din egen Grön Lasern Pekpinnen Klicka här för att visa Laser pekare ForumVar noga med att kolla in den färdiga produkten i videon i slutet!Kolla in min andra Instruct...

Laser Light Show

Steg 1: leveranserLaserHögtalareNPPSpegel med sprickorSteg 2: vägbeskrivningTa frontplatta talaren så du kan se den blanka silver delen. Placera den spegel reflekterande sidan upp på silver delen. Montera lasern så att det syftar till att avspegla. A...

Jay's 2008 datoriserade Halloween Light Show (del 7)

detta är en annan del av min 2008 ljus-O-Rama Halloween ljusshow. Besök www.jayslights.com för att se resten av showen....

Christmas Light Show

Så har jag äntligen fått min jul ljusshow komplett och stabil.Jag kommer att ge koden för Arduino och den fysiska elektriska installationen nu.Om du behöver mer på hur till setup vixen 3 och något annat skicka mig ett meddelande och jag kommer att få...

Göra en vind Powered LED Light Show

detta är min andra instructable, jag kommer att visa dig hur man gör detta cool ljusshow, den finns på ebay på denna länk http://www.ebay.com/itm/160959250514?ssPageName=STRK:MESELX:IT&_trksid=p3984.m1555.l2649Steg 1: Vad du behöver 24" pvc pipe...

Jay's 2008 datoriserade Christmas Light Show (Wizards i vinter)

över 30,000 lampor synkroniseras till julmusik. Jag handgjorda alla bågar du se samt 20 fot mega träd och stjärnor på taket. Tittarna kan lyssna till showen antingen från högtalarna i min trädgård eller genom 99,9 FM i bilar....

Jay's 2008 datoriserade Christmas Light Show

över 30,000 lampor synkroniseras till julmusik. Jag handgjorda alla bågar du se samt 20 fot mega träd och stjärnor på taket. Tittarna kan lyssna till showen antingen från högtalarna i min trädgård eller genom 99,9 FM i bilar....

Fyra knappar light sequencer

jag väntar fortfarande på min beställning av bakbord etc. och jag inte känner lödning en ny styrelse från början, så jag har beslutat att göra ganska enkel Simon till en "light show" sequencer.(Musik: "prata med mig" av Boelo de Smit (...

Mini Arduino Multi funktion styrenhet med LCD-skärm

detta Instructable bygger på mini Arduino miljö monitor och mini Arduino EEGEN monitor Instructables.Det kan du styra upp till 4 reläer med tid, temperatur och/eller ljus, ditt sinne, eller vilken sensor du vill använda.Exemplen är prototyper, jag gå...

Vetenskapligt Experiment för barn: lätta Box Magic

Skapa ett roligt ljus show med dina barn och lära dem om attributen för ljus på samma gång.Lärande syfte: Introducera barnen till vetenskaplig metod och ljusbrytning.Ålder: förskola - elementärtav verkliga syftetSteg 1: motiveraFå dina barn glada för...