22 de out. de 2011

Controle de Servomotores

Olá, hoje vamos conhecer mais um componente interessante e muito utilizado na eletrônica e sistemas de controle, chamado Servomotor.




Servomotores são dispositivos eletromecânicos em que seu eixo se desloca em um movimento máximo de 180°, operando em malha fechada, ou seja, recebe um sinal de controle que indica a posição desejada e atua no eixo principal até que a posição informada seja alcançada, mantendo-se nesta posição até que o sinal de controle se altere novamente, caso seu curso seja alterado mecanicamente o sistema de malha fechada garante seu retorno a posição estabelecida pelo sinal de controle.
O controle de servomotores é feito através do sistema PPM (Modulação por posição de pulso), ou seja, deve se garantir um pulso que vária entre 1 e 2 milissegundos (podendo variar de fabricante para fabricante) repetindo se a cada 20ms, sendo que:


  •  1 ms       Corresponde à posição do braço do servo todo a esquerda ou 0º 
  •  1,5 ms    É o que chamamos de posição central do servo ou 90º
  •   2ms       Corresponde à posição do braço do servo todo a direita ou 180º

Este sinal pode ser gerado facilmente através do emprego de microcontroladores, e é isto que vamos ver neste post, como implementar o controle de servomotores com o microcontrolador PIC18F4550.



Interfaceamento com o microcontrolador:



Para que seja criado o sinal de controle dos servos, que por padrão tem uma frequência de 50Hz, poderíamos utilizar um dos 2 módulos PWM internos do PIC, porém como a frequência do PWM é muito baixa(50Hz), teríamos que alterar nosso clock principal para aproximadamente 500KHz para que o módulo interno de PWM conseguisse atingir a frequência desejada, o que reduziria drasticamente o desempenho do resto do programa, ou seja seria muito pouco eficaz, outra maneira de se gerar este pulso é utilizando o TMR0 para criar este PWM, este TMR é ajustado para estourar a cada 100us incrementando uma variável intitulada Top_Value, e a cada estouro é feita a comparação desta variável às variáveis de controle de canal, por exemplo, Top_Value1, neste caso referenciada ao sinal de controle do servo 1, conectado ao pino PORTC1, a quantidade de servos que pode ser controlada depende apenas da quantidade de pinos de I/O disponíveis.



 
Pinagem:


Cada fabricante possui seu padrão de pinagem, abaixo podemos observar alguns dos mais comuns encontrados no mercado, neste exemplo estamos utilizando o servo da marca Tower Pro, modelo 9G que segue o mesmo padrão da JR.



 
Como pode ver, o controle de servos é uma tarefa simples e que trás muitas vantagens, pois nos abre a possibilidade de criarmos movimentos com certa precisão e torque razoável, dependendo da marca e modelo escolhido. 




O projeto foi baseado na idéia de Ronald Willem Besinga.


 Grande abraço e bons projetos!

12 de out. de 2011

Voltímetro Digital (7 Segmentos)

Olá galera, gostaria de mostrar a vocês um projeto bem simples, mais ao mesmo tempo muito interessante, que é o voltímetro digital em display de sete segmentos.


O que torna este projeto interessante é o fato de multiplexar os 3 displays no mesmo barramento de dados (PORTB) sendo que sempre temos apenas um dos três displays acesos por vez, e a cada 5ms há a troca entre eles, isto é possível pelo fato  da persistência da visão ou persistência retiniana (O fato do olho humano não perceber alterações em imagens projetadas a um ritmo superior a 16 quadros por segundo).


Estes displays são muito utilizados nos mais variados equipamentos como, por exemplo, de instrumentação e automação, por serem de fácil visualização, normalmente encontrados em equipamentos como voltímetros, freqüencímetros, contadores, relógios, entre outros.


 
Teste de funcionamento

 Grande abraço a todos e bons projetos!

8 de out. de 2011

Mais do mesmo!!!

Olá galera, é muito bom estar de volta aos posts, após  algumas  semanas conturbadas com muitas provas de cálculo na faculdade, feiras e eventos,  venho hoje apresentar a vocês as três versões comercializadas da placa PK2Lab.



Todas as versões são construídas em cima da mesma plataforma, ou seja, são compatíveis com todos os exemplos e funções mencionadas neste blog e no manual de instruções.

Mais o que realmente muda então?

Muitas vezes, principalmente quando estamos na fase de aprendizagem, nossos recursos financeiros não são abundantes, pensando nisto, disponibilizamos a placa na versão PK2Lab V1.1 (Grav), que consiste da PCI com todos os componentes SMD já soldados e o gravador pronto para uso, para que o aluno/hobbista possa ter acesso a placa em forma de KIT, sem ter de pagar por recursos que não lhe são  interessantes nesta fase de aprendizagem. O aluno/hobbista deverá adquirir separadamente os componentes que lhe forem de interesse e proceder à instalação dos mesmos na placa, sendo este processo de fácil manuseio, acompanha CD  com todas as informações necessárias para uso do KIT como exemplos em linguagem C e assembly, esquema elétrico, compiladores.

Já a versão PK2Lab V1.1 (Sace), consiste da placa completa montada e 100% funcional, pronta para uso, acompanhada do microcontrolador 16F877A e CD com os arquivos como manuais, esquemas, programas, compiladores  e demais informações necessárias para correto manuseio da mesma.



Para concluir, temos a versão PK2Lab V1.1 (Cace), que nada mais é, do que a versão SACE com o microcontrolador PIC18F4550, mais os acessórios complementares sendo estes 2 cabos USB, um cabo serial padrão RS232, fonte de alimentação chaveada(Bi volt) de 12V-1A, e estojo em madeira para proteção e armazenamento da placa.


Em breve estaremos disponibilizando aos usuários da PK2Lab um curso em Assembly, totalmente baseado na placa, focado na linha 16F com ênfase no desenvolvimento de projetos simples e de fácil entendimento.