Det är inte alltid lämpligt att ha en knapp per ingång på processorn. Det blir helt enkelt klumpigt.
Du får bestämma dig för hur många knappar du ska ha och sedan kan man koppla in dessa på ett fåtal pinnar på processorn med hjälp av lite olika finesser.
Här ser du t.ex. hur man har kopplat in 72 knappar på 17 pinnar.
MIDI Keyboard Encoder
Nu vet inte jag vad en MIDI-controller gör, men jag antar att det främst inte är en keyboard, utan har en massa andra kontroller och rattar för att fixa med signalen?
Om du ska ha rattar och sliders så är det ju analoga ingångar som krävs, och då behövs det säkert lite annan hårdvara kring dessa - exakt vad beror helt på hur noggrant , brusigt och snabbt det behöver vara.
Använder du
shiftregister så räcker det med tre, eller t.o.m. två pinnar för att läsa av flera hundra knappar.... (två-pinnars varianten rekommenderas inte om man
kan använda tre pinnar!)
Vilken 8-bitars microcontroller som helst borde duga, bara den har UART ( = seriekommunikation som behövs för MIDI-signalen) och tillräckligt med I/O-pinnar.
Frågan är - om di ska ha flera kanaler - om det då innebär flera UART-interface? Vad jag vet å finns det processorer med två, och fyra UART... Fler vet jag inte.... Att skicka ut olika data på flera UART är enkelt, men det är lite lika lätt att kunna ta emot data från flera linjer samtidigt om man inte har separata UART i processorn.
Inom AVR-serien finns t.ex.
ATMega88A som har 28 eller 32 pinnar eller om du vill ha en lite större:
ATMega644A med 40 eller 44 pinnar. Jag skulle valt den lilla ytmonterade varianten, men för en nybörjare kanske det kan finnas en fördel med hålmoterat - om du sätter den i en hållare så kan du byta controller lätt om du skulle förstöra den (finns viss risk!).
Andra skillnader mellan ATMega88A och ATMega644A är bl.a. storleken på programminnet (flash), SRAM (statiskt RAM-minne för lagring av data) samt storleken på EEPROM (som kan lagra data permanent, men går att skriva till flera gånger).
Här är ett enkelt projekt:
How to Build a MIDI Controller (Hardware)
(Om jag hade byggt den så hade jag satt 4051-kretsarna på samma kort som knapparna, inte på processorkortet - på så vis slipper man de extremt breda kablarna).
Det är en hel del att tänka på och läsa om du ska komma igång med microcontrollers, så prova att göra ett par enkla projekt först, innan du ger dig på det stora. Och då menar jag inte det jag länkade till ovan, utan bara koppla upp en microcontroller med en MIDI-utgång, en MIDI-ingång och ett par lysdioder och kanske fyra knappar. Så får du försöka få den att göra något
