terça-feira, 15 de abril de 2014

Mais uma fonte de bancada...

2 comentários
Como eu havia dito no post sobre transformadores, estava precisando de uma fonte simétrica para alguns testes com amplificadores operacionais. A principio precisava apenas de uma fonte com saídas de +15V e -15V e escolhi um dos transformadores com saída de 18V+18V daqueles que mostrei. Como o transformador escolhido possui mais duas saídas aproveitei para gerar mais duas tensões (+33V e +29V). O esquema final é este aqui:
Esquema da fonte simétrica
A maioria dos componentes foram recuperados da sucata. Só os CI´s 7815 e 7915 e os resistores eram novos (os bornes de saída também). Por isso as tensões de isolação dos capacitores de filtragem estão bem exageradas. Os resistores em cada saída servem pra descarregar os capacitores ao desligar a fonte. Com estes valores eles demoram em torno de 15 segundos para descarregar. Ainda estou vendo se convém diminuir os valores.

A caixa para a fonte é daquele estabilizador de tensão do vídeo log 2. Um pouco de acetona e o painel ficou limpinho. Vejam o antes e depois abaixo:
Caixa da fonte antes

Caixa da fonte depois

A montagem do circuito foi feita, como sempre, em placa padrão:

Fonte de alimentação por dentro

Nas saídas usei destes bornes banana fêmeas que não são tão bons, mas que tenho uma certa quantidade que comprei na China e preciso usar. Quando acabarem comprarei bornes melhores, não recomendo estes daí não. As porcas são finas demais e difíceis de apertar.

Fonte montada e testada ela foi colocada em cima da outra, que recebeu uma atualização recente de um medidor de tensão digital:

Fontes de bancada

Na foto ainda faltam as indicações do painel. Fiz uma provisória com caneta preta e vou procurar por aí por uma cartela de Letraset...

segunda-feira, 14 de abril de 2014

Potenciômetro com memória 2 - Agora com Arduino

0 comentários
Bom, como diriam os BORG: "Resistir é inútil". Então lá fui eu dar uma conferida no Arduino. Resolvi começar por algo conhecido para não ter muitas surpresas e refiz o "potenciômetro com memória" na plataforma. Segue o vídeo:


Montei o potenciômetro numa placa separada, com as chaves:
Potenciometro Alps RK168

Além da placa Arduino usei um clone do "motor shield" da Adafruit. O Arduino também é um clone Chines, e ao colocar o shield tive um problema com a conexão do motor 1A que ficou em cima do conector USB, provocando um curto circuito. Ainda bem que o L293D tem proteção contra curto na saída e apenas esquentou o CI. A solução foi cortar o pino mais rente a placa e isolar o conector USB com fita isolante:
Arduino Motor Shield

Com o motor shield instalado não existe a possibilidade de usar estes fios para protoboard encaixados nos conectores do Arduino, por isso tive que soldar diretamente na placa:
Arduino Motor Shield
As chaves de controle do circuito foram conectadas a duas entradas analógicas do Arduino, também por causa do motor shield. Ele ocupa quase todas as portas digitais do Arduino, sobrando apenas as duas da porta serial. O esquema ficou assim:

Esquema potenciometro com memória em Arduino


Quanto ao código não foi tão difícil converter do C usado na primeira versão (feito no Code Warrior da Freescale) para o Arduino. Achei a IDE fraca e senti falta de um debugger, mas para quem quer começar a brincar com microcontroladores ela é até que muito boa. 

A biblioteca do motor shield funcionou perfeitamente, foi só instalar e usar. O código de controle do potenciômetro ficou muito parecido com o original, apenas acrescentei uma função para fazer a média de 64 amostras da leitura do potenciômetro (na verdade ela soma as 64 amostras de 10 bits criando um valor de 16 bits, para maior precisão).

Segue o código do sketch (preciso encontrar uma forma melhor de publicar códigos no blog):

 //******************************  
 // Potenciometro com memoria  
 // http://www.pakequis.com.br  
 //******************************  
 #include <AFMotor.h>  
   
 const int Min_Value = 5;   //Valor minimo da leitura do potenciometro  
 const int Max_Value = 65000; //Valor maximo da leitura do potenciometro  
   
 AF_DCMotor motor(1);  //Define motor para a saida 1 do shield  
 int KeyStatus = 0;      //Valor da tecla  
 unsigned int Mem_Value = 0; //Valor memorizado do potenciometro  
   
 void setup(){  
  motor.setSpeed(200); //Velocidade maxima  
  motor.run(RELEASE);  //Desativa o motor  
 }  
   
 void loop(){  
  KeyStatus = analogRead(A4);  //Verifica a tecla de memoria  
   
  if (KeyStatus > 950){    //Tecla pressionada?  
   Mem_Value = AvgMeasure();  //Memoriza o valor do potenciometro  
   if(Mem_Value > Max_Value){  //Verifica se ultrapassou os limites  
    Mem_Value = Max_Value;   //Limite maximo atingido  
   }  
   if(Mem_Value < Min_Value){  
    Mem_Value = Min_Value;   //Limite minimo atingido  
   }  
   KeyStatus = 0;        //volta ao estado de tecla nao pressionada  
  }  
   
  KeyStatus = analogRead(A2);      //Verifica tecla de recuperar memoria  
  if (KeyStatus > 950){         //Tecla pressionada?  
   if (Mem_Value > AvgMeasure()){    //  
    while(Mem_Value >= AvgMeasure()){ //Ateh chegar na posicao correta  
     //Serial.println(analogRead(A0));  
     motor.run(FORWARD);       //aciona o motor  
    }    
    motor.run(RELEASE);        //Desliga o motor  
    delay(250);            //250ms de atraso  
   }else{  
    while(Mem_Value <= AvgMeasure()){ //Ateh chegar na posicao correta  
     motor.run(BACKWARD);       //Aciona o motor  
    }  
    motor.run(RELEASE);        //Desliga o motor  
    delay(250);            //250ms de atraso  
   }  
   KeyStatus = 0;        //volta ao estado de tecla nao pressionada  
  }  
 }  
   
 //Calcula a media de 64 amostras da entrada A0  
 //(de 10 bits para 16 bits)  
 unsigned int AvgMeasure(){  
  int i;  
  unsigned int Temp = 0;  
  for (i=0;i<64;i++){  
   Temp += analogRead(A0); //Soma 64 amostras do A0  
  }  
  return Temp; //Retorna valor da media  
 }  

terça-feira, 1 de abril de 2014

Tutorial rápido: Como usar um osciloscópio digital

0 comentários
Ok, um colega sugeriu que eu fizesse este vídeo tutorial pra hoje. ;-)

O tutorial é bem rápido e serve para uns 90% das medidas com um osciloscópio digital. E, como lembrou o meu colega, se você só mexe com Arduino o tutorial resolve uns 190% dos problemas com medidas (não sei como ele fez esta conta).

Mas atenção, se você for tentar usar este tutorial com o osciloscópio da escola ou da faculdade E a escola ou faculdade for boa e/ou seu professor de laboratório for esperto, não vai conseguir. ;-)


quarta-feira, 26 de março de 2014

Sobre protoboards...

0 comentários
Tentando arrumar a bagunça aqui acabei separando os meus protoboards (ou matriz de contatos ou breadboard ou pront-o-labor ou outro nome qualquer) e tirei umas fotos pra mostrar pra vocês e contar algumas histórias.

Começando do começo, meu primeiro contato com estas placas foi por volta de 1987-88 vendo minha irmã montando os trabalhos do curso técnico. Alguns anos depois foi a minha vez, na mesma escola e provavelmente com as mesmas placas. Como os "protos" já haviam passado pelas mãos de muitos alunos não era dificil encontrar algum mau contato, furos alargados, plástico derretido e outras falhas. E foi no terceiro ano que meu grupo na feira anual da escola resolveu montar um robô seguidor de trilha. O robô tinha quase um metro de comprimento, era pesado e podia levar uma pessoa em cima (pelo menos nos testes ele aguentou). O circuito de controle estava espalhado por três protoboards daqueles grandes, todo com lógica discreta. Naquela época eu ainda estava começando a aprender Z80. Claro que não funcionou e acabamos não apresentando nada...

Pula alguns anos (1999 e já na faculdade e também numa feira anual) lá estava a Séfora com o seu protoboard montando um circuito de acionador de cargas via telefone (clássico DTMF com MT8870) faltando algumas horas para começar a feira. Ela me pediu ajuda e lá fui eu ajudar a descascar fios e montar o circuito, com o esquema desenhado a mão numa folha de papel toda amassada. Não me lembro quando nem como aconteceu, mas este protoboard acabou aqui em casa e está comigo até hoje. Quem acompanha o blog já deve ter visto ele em algum vídeo ou postagem (é um PL-553):


Ele ainda está com a montagem da fonte de tensão negativa. Este é dos antigos, com a placa de baixo de metal e o nome da empresa que fabricava ainda era Shakomiko. Hoje as placas de baixo são de plástico e a empresa se chama só Shako.

Há uns dois anos ganhei da Séfora (não sei onde ela conseguiu) um destes protos com placa plástica, do modelo PL-551. Retirei a parte de baixo e coloquei numa placa de protótipos da Sure Electronics:


No momento está montado um circuito de testes com a decepcionante placa "Freedom Board" da Freescale (preciso escrever sobre isso). Quando concluir os testes vou montar os componentes, que vieram numa caixa plástica bem legal:

Normalmente uso os protoboards para pequenos testes. Prefiro mais usar placas padrão de fenolite ou fibra de vidro que podem ser cortadas no tamanho apropriado, não apresentam tantos problemas e podem servir até como montagem final.

Ah, lembrei de outra história. Havia um pessoal por aqui na década de 80 e inicio dos 90 que faziam montagens em protoboard sob encomenda. Lembro que era cobrado por conexão, quanto mais fios mais caro ficava. E o pessoal caprichava, com os fios dobrados em angulos de 90 graus, cores combinando e tudo mais. Ficava muito bonito (e funcionava).

Outro protoboard que tenho aqui é este modelo mais recente (PL-554H), também com placa metálica:


Encontrei ele num ferro velho recentemente. Preciso desmontar e dar uma limpada.

E dos ferro velhos da vida veio esta outra aqui, que veio com um circuito montado:

Alguém teve um certo trabalho montando o circuito e fiquei com pena de desmontar. Já pensei várias vezes em fazer isso, mas sempre desisti. Gostei do circuitinho. Ele tem uma EPROM 2716, dois contadores CD4024 e mais dois CIs CD4050, além de um LED laranja. Não sei o que ele faz, mas se desta vez eu realmente desmontar a placa já pensei em dar uma olhada no que está gravado na EPROM. Comprei ela na mesma época em que encontrei aquele arcade MSX (2009).

O curioso deste protoboard é que ele também é uma montagem. São duas placas básicas aparafusadas em cima de uma placa de fenolite cheia de furos com duas cantoneiras de aluminio. Olha a parte de baixo:

segunda-feira, 24 de março de 2014

Pedal de efeitos: Parte final (finalmente!)

0 comentários
Bom, antes tarde do que nunca...

Há três anos montei um pedal de efeitos para guitarras e publiquei o andamento do projeto em cinco partes aqui no blog. Faltou finalizar e postar o código fonte. Era pra ser mais completo e com oito efeitos diferentes, mas engavetei (literalmente) o pedal e só agora recuperei, fiz um vídeo dele funcionando e dei uma conferida no software para ver se estava "publicável". Como estou fazendo uma limpeza nas coisas velhas por aqui e vou ter que dar um fim para o pedal (desmontar) achei melhor publicar os resultados até o ponto que parei. Vai que aparece um maluco que queira continuar ou fazer algo parecido...

Esta versão tem quatro efeitos: delay de aproximadamente 10ms até 250ms, delay até próximo de 800ms, delay de 1ms a 14ms (não é muito útil) e uma versão experimental de reverberação que não ficou muito boa. No vídeo abaixo dá pra ver os efeitos em ação. Como não tenho uma guitarra (e nem sei tocar), usei o Garage Band no iPad para simular a guitarra, com todos os efeitos (do Garage Band) desligados.



E para ficar registrado seguem, novamente, os esquemas do pedal. Primeiro a parte analógica com os amplificadores e filtros de entrada e saída:

Esquema pedal delay
E a parte digital:
Esquema pedal delay

O pedal:


A montagem interna (ninho de gato):

Mais detalhes podem ser encontrados nos posts anteriores:


Agora o software. Lembrando que não é a versão final e que não haverá modificações. Todo o software roda na interrupção do conversor AD. Como o software é pequeno e a memória do microcontrolador é grande (256kB) usei várias tabelas indexadas pelo valor da tensão no potenciômetro que seleciona o valor do delay. Não lembrava que havia feito isso, só agora revisando o código é que vi...

Para baixar o código fonte clique aqui! (Não ligue para a bagunça, o software ainda estava em testes...). Como sempre a licença é WTFPL.
Related Posts Plugin for WordPress, Blogger...