Egyszerû MIDI billentyûzet
Már évek óta ott porosodott
a szekrény tetejen egy "piacos" szintetizator. Gondoltam csinálok
belõle egy MIDI billentyûzetet. Az eredeti mátrix 12x4
-es volt (ha jól emlékszem), átkábeleztem 8x8
-asra. (Erre azért volt szükség, mert olyan poros volt,
hogy addig halogattam a levételét, míg az áramkört
teljesen meg nem terveztem, el nem készítettem. Természetesen
gondoltam, hogy nem 8x8-as lesz...)
A leütes erõsségét nem érzékeli,
de válalkozó kedvûek megoldhatják. Egyszerre
8 billentyû lehet lenyomva, de ez az érték változtatható
(lasd forrásprogram). Az RA3 -lábra csatlakoztatott nyomógombbal
léptethetünk egy-egy oktávot, ha kevés lenne
a billentyû (ld. még a forrásprogramot!).
A hardver
A kapcsolás lelke egy PIC 16F84 mikrovezérlõ
és a benne futó program. A mátrix meghajtásáról
a két 4051-es áramkör gondoskodik. Minden egyes mátrixpontban
található egy dióda a billentyû érintkezõivel
sorbakötve. Ezek a diódák azért kellenek, hogy
egyszerre több billentyût lenyomhassunk. Az RB6 láb és
a föld közötti ellenállás értékét
zavar esetén (ha csak úgy maguktól megszólalnak
a hangok) csökkenteni kell. Ha azonban a billentyûk ellenállása
túl nagy, akkor növelni. Az RA1, RA2 lábakra egy-egy
470 Ohmos ellenállással sorbakötött LED-et kötöttem.
Ezek jelen esetben felvillannak a program indulásakor. Az RA0 láb
az adatkimenet. Ez hajtja meg egy tranzisztoron keresztül a vevõoldali
optocsatolót.
Kapcsolási rajz
A csatlakozási pontokba feldarabolt IC foglalatokat érdemes
beforrasztani. A NYÁK-on van még két furat, ahol a
GND és a +5V van kivezetve, ez egyébb kiegészítõ
áramkörök táplálására használható.
Egy ötlet kiegészítõ áramkörnek:
Az általam használt hangkártya oldali MIDI illesztõ:
|
Botkormány csatlakozó
4. GND
9. +5V
15. MIDI BEMENET
|
A tranzisztor bázisa (6-os kivezetés)
zavarérzékeny lehet!
A szoftver
midikbrd.src
Elsõ lépés az inicializálás
(portok beállítása, regiszterek kezdõértékének
beállítása, stb.), majd "életjelet" adunk (két
LED felvillanása, teszthangok elküldése). Ezt követi
a fõciklus. A billentyûk letapogatása egyesével
történik. Ha nyitott megnézzük, hogy nem
-e volt lenyomva az elõzõ körben (puffer). Ha le volt
nyomva az elõzõ körben, akkor most el kell küldenünk
a billentyû NOTE OFF kódját és törölnünk
a pufferbõl ezt a kódot. Ha az érintkezõ
zárt, megnézzük, hogy a billentyû kódja
benne van -e a pufferben. Ha nincs benne, akkor elküldjük a billentyû
NOTE ON kódját, majd eltároljuk ezt a kódot
a pufferbe.
A program csak gyenge pergésmentesítést biztosít,
ezért elõfordulhat, hogy bizonyos esetekben ez kevés.
A fordítást az MPASM programmal végezhetjük.
Az áramkört SB PCI128 hangkártyával
és a JazzWare prgrammal teszteltem. A hangkártyához
való illesztõt 4N25 optocsatolóval oldottam meg, de
sok más típus megfelel.
Alkatrészlista:
-
PIC16F84 1db
-
4051 2db
-
7805 1db
-
BC557 vagy hasolnó 1db
-
1N4148 ahány billentyû van (max. 64db)
-
8MHz kvarc 1db
-
10k ellenállás 1db
-
10k SMD ellenállás 1db
-
1k ellenállás 1db
-
15pF kerámia 2db
-
100 microF/16V kisméretû 2db
-
IC foglalat 16 lábú 2db
-
IC foglalat 18 lábú 1db
-
billentyûzet
A lista nem tartalmazza a kiegészítõ-
és az illesztõáramkör alkatrészeit.
Sok sikert!
Boldizsár Iván
boldivi@freemail.hu
vagy
boldi@Anet.hu
2000
Ez az irás letölthetõ .zip (html) formátumban
elektronikai knyvtárunkból