Arcade-knappen MIDI-Controller (7 / 10 steg)
Steg 7: programmering
Första saker först, vi behöva programmera Arduino styrelsen. Om detta är ditt första möte med en Arduino ombord, måste du installera Arduino IDE på datorn så det kan prata till Arduino och du kan läsa in program på den. För att göra detta helt enkelt följa den komma igång-guide på Arduino hemsida. Du måste också installera Timer1 bibliotek . Ladda ner den och packa upp den till/hårdvara/bibliotek/Timer1 /
Edit: Från och med MIDI_Controller_2011-03-21.zip, Timer1 behövs inte längre.
När din Arduino är igång, vi måste du läsa in en skiss på den som läser alla digitala och analoga kanaler och konverterar den information till MIDI-meddelanden. De MIDI-meddelandena skickas sedan seriellt via USB-kabeln till datorn.
Ladda ner den bifogade skissen och ladda upp den till din Arduino. Koden har dokumenterats så du kan se vad som händer. I ett nötskal avsöker koden ständigt alla digitala och analoga ingångar kontroll för förändringar. Om en förändring upptäcks har tryckt på en knapp eller ett reglage flyttades, ett MIDI-meddelande motsvarar indata skickas till datorn.
En sak att notera är att logiken för när en knapp är intryckt och släppt kan verka lite bakåt. När en knapp trycks den digitala ingång går "låg", och när det släpps det går "hög". Detta har att göra med den inre dra upp motstånd och knapparna är kopplad till marken i föregående steg.
När det finns ingen input till digital stift (ingen knapp som trycks), är input att dras upp, eller hög, därav namnet. Så för digital PIN-koden är hög. Varje knapp var kabelansluten marken så att när en knapp trycks stiftet kommer läsa låg.
Kod översyn historia:
2012-01-20
-Uppdaterad stöd Arduino 1.0 (uppdaterade Serial.print till Serial.write)
2011-10-23
-Tillagd standard #defines för Teensy 2.0 och Teensy++ 2.0 digital stift
-Tog bort #defines för Teensy 1.0 som usbMIDI stöds inte
2011-04-11
-Teensy USB-koden adderat (tack till Tim Crawford).
-Uppdaterad med #defines för Arduino Mega och Teensy USB för lätt sammanställning
2011-03-21
-Borttagna TimerOne bibliotek. Varje analog pin nu behåller sin tid eftersom det flyttades senast, i stället för en timer för alla stift. Detta stoppar sändande skakis rörelser på analoga ingångar som inte har berörts.
2011-03-14
-Modifierad analog ingång logik så enda stift flyttas inom perioden timer uppdateras, inte alla av dem.
-Experimentella koden som för högre hastighet (men mindre exakt) analog läser
-Minskad analoga timer längden från 1000ms till 250ms
2011-03-01
-Uppdaterad MIDI-format att skicka samma MIDI-signaler som officiella MIDI-Fighter
-Minskad debounce längd från 5ms till 2 MS
2011-02-22
-Första utgåvan