Stap 7: programmeren
Eerste dingen eerst moeten we voor het programmeren van de Arduino board. Als dit uw eerste kennismaking met een Arduino board, moet u setup van de Arduino IDE op uw PC, zodat het met de Arduino praten kan en kunt u programma's aan het laden. Ga dit gewoon als volgt de gids aan de slag op de startpagina van de Arduino. U moet ook de Timer1 bibliotheek installeren. Download deze en unzip het naar/hardware/bibliotheken/Timer1 /
Edit: Vanaf MIDI_Controller_2011-03-21.zip, Timer1 niet langer nodig is.
Zodra je Arduino gebruiksklaar is, zullen wij moeten laden een schets op het die alle van de digitale leest en analoge kanalen en zet die info in MIDI-berichten. Deze MIDI-berichten worden vervolgens serieel verzonden via de USB-kabel aan op de PC.
Download de bijgevoegde schets en upload het aan uw Arduino. De code is gedocumenteerd zodat u kunt zien wat er gaande is. In een notendop controleert de code voortdurend alle van de digitale en analoge ingangen controleren op wijzigingen. Als een verandering wordt ontdekt (een knop werd ingedrukt of een schuifregelaar werd verplaatst), een MIDI-bericht dat overeenkomt met de ingang op de PC wordt verzonden.
Een ding om op te merken is dat de logica voor wanneer een knop is ingedrukt en losgelaten een beetje achteruit lijkt misschien. Wanneer een knop wordt ingedrukt de digitale ingang gaat 'laag', en wanneer het wordt vrijgegeven het gaat 'hoog'. Dit heeft te maken met de interne pull up weerstand en de knoppen worden bedraad aan de grond in de vorige stap.
Als er geen invoer naar de digitale pin (geen knop wordt ingedrukt), wordt de input getrokken omhoog, of hoog, vandaar de naam. De standaardstatus van de digitale pin is zo hoog. Elke knop was bedraad aan grond, zodat wanneer een knop wordt ingedrukt, de pin laag zal lezen.
De geschiedenis van de herziening van de code:
2012-01-20
-Bijgewerkt naar ondersteuning Arduino 1.0 (bijgewerkte Serial.print naar Serial.write)
23-10-2011
-Added standaard #defines voor Teensy 2.0 en Teensy++ 2.0 digitale pinnen
-Removed #defines voor Teensy 1.0 als usbMIDI wordt niet ondersteund
2011-04-11
-Teensy USB-code toegevoegd (met dank aan Tim Crawford).
-Bijgewerkt met #defines voor Arduino Mega en Teensy USB voor gemakkelijke opstelling
21-03-2011
-Removed TimerOne bibliotheek. Elke analoge pin onderhoudt nu zijn eigen tijd sinds het laatste was verhuisd, in plaats van een timer voor alle pinnen. Hiermee stopt u verzenden zenuwachtig bewegingen op analoge ingangen die nog niet geraakt.
2011-03-14
-Gewijzigde analoge ingang logica zodat alleen pinnen binnen de timerperiode verplaatst worden bijgewerkt, niet alle van hen.
-Experimentele code toegevoegd voor hogere snelheid (maar minder nauwkeurig) analoge leest
-Analoge timer lengte van 1000ms teruggebracht tot 250ms
2011-03-01
-Updated MIDI-uitgang voor het verzenden van dezelfde MIDI-signalen als officiële MIDI vechter
-Verminderde ontdendering lengte van 5ms tot 2ms
2011-02-22
-Eerste Release