sábado, 31 de agosto de 2013

Octoswitch

OCTOSWITCH - CHAVEADOR DE PEDAIS

Dado o know-how que obtive ao desenvolver o hexaswitch, consegui fazer um chaveador mais simples, usando um PIC com menos pinos. Essa versão não permite que se escolha bancos de presets, assim ele pode selecionar e armazenar apenas 8 presets (patches) de 8 loops, que ficam gravados na memória EEPROM de forma a não perder as configurações quando o equipamento for desligado.

Como o 16F628 possui apenas 16 portas de entrada/saída, e destes 8 são usados para acionar os relés/chaves dos loops e respectivos leds, sobraram 8 portas pra acionar um display e ler as chaves de seleção e programação. Aí começam os malabarismos pra aproveitar ao máximo as portas que sobraram. Como são 8 chaves (momentâneas) para selecionar os presets e mais duas chaves de controle (programa e bypass) totalizando 10 chaves. A princípio eu pensei em fazer uma matriz de chaves, mas isso consumiria mais portas do que desejava pois para acionar 8 leds também deveria ter um sistema de matriz ou multiplexação. Optei por usar um display de 7 segmentos para mostrar o número do preset selecionado e um decodificador BCD para 7 segmentos que é o ci CD4511, que usa 4 entradas em binário. Assim, tirando as 4 portas para acionar o 4511, sobraram 4 portas pra ler as chaves.
Havia a opção de usar outro ci que seria um codificador de 16 entradas para 4 saídas binárias. Mas como eu não queria usar mais integrados, resolvi usar uma técnica de codificação usando simples diodos, o que funcionou nas simulações. Em tese 4 entradas codificadas poderiam distinguir até 16 chaves. Mas como 10 eram suficientes e isso simplifica o layout, deixo sobrando 6 possibilidades, para futuras expansões.

O esquema é o abaixo:

E o firmware para o 16F628(A):

:10000000712883178001840AFF3E031D02286C2893
:1000100083161C141A0883169B0A6C280301831686
:100020009A001C1555309D00AA309D009C149C1808
:1000300017281C119B0A6C28A301A200FF30A207FD
:10004000031CA307031C6C280330A100DF302A2007
:100050001E28A101E83EA000A109FC30031C3328A2
:10006000A00703183028A0076400A10F302820182B
:100070003928A01C3D2800003D280800A2000530BA
:10008000A80023082102031D47282208200204306B
:1000900003180130031902302805031DFF306C28B6
:1000A000A501A4011030A600210DA40DA50D220864
:1000B000A4022308031C230FA502031866282208A4
:1000C000A40723080318230FA5070310A00DA10DF3
:1000D000A60B542820086C28831303138312640092
:1000E00008008316F03085008601831207309F00D8
:1000F0002030840060300220A03084005030022084
:10010000203084003030012083167E309B00831223
:100110000820B80083167F309B0083120820B900A6
:100120006400E1300502031C9728B801B901E830EA
:10013000A0000330A1003908A30038083E20031DA9
:10014000A2289028B80A0319B90A83167E309B00AA
:10015000831238080F2083167F309B0083123908E2
:100160000F200130BA0064003A08013C031DC42886
:10017000013085000130BB003B0883169B008312D1
:100180000820BD003D08860064003A08023C031DBB
:10019000D528023085000230BB003B0883169B0047
:1001A00083120820BD003D08860064003A08033C25
:1001B000031DE628033085000330BB003B0883168F
:1001C0009B0083120820BD003D08860064003A08A9
:1001D000043C031DF728043085000430BB003B08B5
:1001E00083169B0083120820BD003D088600640032
:1001F0003A08053C031D0829053085000530BB0081
:100200003B0883169B0083120820BD003D08860032
:1002100064003A08063C031D1929063085000630A3
:10022000BB003B0883169B0083120820BD003D08DD
:10023000860064003A08073C031D2A290730850020
:100240000730BB003B0883169B0083120820BD00CB
:100250003D08860064003A08083C031D3B2908302D
:1002600085000830BB003B0883169B0083120820E2
:10027000BD003D08860064003A08093C031D412981
:10028000512964003A080A3C031D4F2964003C18B8
:100290004C2986013C144F293D0886003C10AD21B5
:1002A000B3288501AD2164003A08013C031D5C2997
:1002B0000130BD063D08860064003A08023C031D7B
:1002C00065290230BD063D08860064003A08033CFB
:1002D000031D6E290430BD063D08860064003A08FF
:1002E000043C031D77290830BD063D0886006400E4
:1002F0003A08053C031D80291030BD063D088600E4
:1003000064003A08063C031D89292030BD063D08DB
:10031000860064003A08073C031D92294030BD0660
:100320003D08860064003A08083C031D9B29803084
:10033000BD063D08860064003A08093C031DAC294F
:100340003B0883169B0083123D080F203B08850065
:100350003D088600BA01B32851290508BE00F030D7
:10036000BE053E08A000A1011030A200A30150204C
:10037000BE0064003E08013C031DC1290130BA00E3
:100380000A2A64003E08023C031DC9290230BA0053
:100390000A2A64003E08043C031DD1290330BA0038
:1003A0000A2A64003E08083C031DD9290430BA001B
:1003B0000A2A64003E08033C031DE1290530BA0007
:1003C0000A2A64003E08053C031DE9290630BA00EC
:1003D0000A2A64003E08093C031DF1290730BA00CF
:1003E0000A2A64003E08063C031DF9290830BA00B9
:1003F0000A2A64003E080C3C031D012A0930BA0099
:100400000A2A64003E080A3C031D092A0A30BA0081
:100410000A2ABA0164003A08003C0319132A013081
:0C042000A3002C301D2008006300142AEB
:02400E00103F61
:00000001FF

Aqui um rascunho do layout em placa 10x5cm:


A operação é simples. Ao ligar o chaveador, entra no preset 1. As chaves P1 a P8 selecionam os presets com os loops (são 8) acionados indicados pelos respectivos leds.  A chave BYPASS simplesmente desliga todos os loops (e leds) e mantém o preset atual. Ao apertar BYPASS novamente, volta ao preset que estava com os loops que estavam ativados.  Para programar os loops em cada preset, basta escolher primeiro o preset a ser configurado e apertar PROGRAM, que o display vai mostrar 0 (indicando que está em modo de programa) e as chaves P1 a P8 passam a ligar e desligar os loops (P1 para o loop 1 e assim por diante). O led do loop aceso indica se ele vai estar ativo ou não. Para sair do modo de programa, basta apertar a chave de PROGRAM novamente que o display volta a apresentar o número do preset que foi programado.
O Nevio do Handmades, montou esse chaveador e fez alguns vídeos bem instrutivos demonstrando o funcionamento:
https://www.youtube.com/watch?v=CEMsefys2do
http://www.youtube.com/watch?v=xtyX6BHv2Ro