Stap 10: Ontvangen MIDI-berichten met Arduino
De meeste projecten van Arduino MIDI sturen MIDI-berichten uit, maar u kunt ook de Arduino te ontvangen van MIDI-data. Hier zijn enkele ideeën:
een Arduino-synthesizer die MIDI-berichten gebruikt voor de bouw van de geluidsgolven
een apparaat dat gebruikmaakt van MIDI om leiden tot mechanische gebeurtenissen, zoals het rinkelen van verschillende grootte klokken
een MIDI controle voltage(CV) apparaat-communicatie tussen MIDI- en analoge synthesizers
Onderdelen lijst:
MIDI aansluiting Digikey CP-2350-ND
Weerstand van 220 Ohm-1/4 watt Digikey CF14JT220RCT-ND
1N4148-diode Digikey1N4148-TAPCT-ND
10kOhm 1/4 watt weerstand Digikey CF14JT10K0CT-ND
Weerstand van 470 Ohm-1/4 watt Digikey CF14JT470RCT-ND (ik gebruikte 2 x 220 in plaats daarvan)
6N138 optocoupler Digikey 751-1263-5-ND
Andere delen
(1 x) Arduino Uno Amazon
(1 x) USB-kabel Amazon
(1 x) breadboard (dit komt met jumper draden) Amazon
(1 x) jumper draden Amazon
(1 x) MIDI naar USB kabel Amazon
De installatie van de hardware is lichtjes ingewikkelder voor de ontvangst van MIDI, dan is het voor het verzenden. Zoals u in het schema hierboven zien kunt, moet u instellen van een optoisolator tussen de MIDI-aansluiting en de Arduino. Bent u verward over de MIDI pin aansluitingen, verwijzen naar fig 1. Ik zet dit circuit op een breadboard in vijgen 4 en 5.
De volgende code deze berichten ontvangt, leest ze en slaat ze op de juiste manier. Zie de opmerkingen voor meer informatie.
<pre>/*Receive Midi By Amanda Ghassaei July 2012 <a href="
Om ervoor te zorgen dat alles goed werkt, probeert u de onderstaande code. Deze code schakelt de led op pin 13 op kort wanneer zij een opmerking over bericht voor MIDI noot 60 (midden C ontvangt). Merk op hoe ik opgenomen "& & velocityByte > 0" in de als verklaring-dit ervoor dat we te maken hebben met een opmerking over verklaring, zorgt als u dit niet het licht opneemt zal voor beide notitie op knipperen en Let op met snelheid = 0 (uit) meldingen.
<pre>/*Receive MIDI and check if note = 60 By Amanda Ghassaei July 2012 <a href="
Als u wilt doen een heleboel dingen in de hoofdlus, of als u verwacht te ontvangen een heleboel MIDI-data en timing belangrijk voor u is, u ook met behulp van een timer-interrupt periodiek onderbreken de hoofdlus en controleer proberen kunt of er binnenkomende MIDI. Het zal als volgt uitzien:
<pre>/*Receive Midi with interrupt By Amanda Ghassaei July 2012 <a href="