sexta-feira, 3 de agosto de 2012

Projetos com microcontroladores AVR, PIC e Arduino

Nesta matéria apresento uma coletânea de gravadores para microcontrolador PIC, AVR e EEPROM. Todos os circuitos para gravadores de microcontrolador ou EEPROM são simples de serem montados. O usuário poderá tirar suas dúvidas nos comentários sempre que precisar.










Gravador AVR Serial

O gravador AVR consiste em um programador serial in-circuit e uma pequena placa com um socket DIP ao qual se encaixa o microcontrolador e programá-lo de maneira bem prática.
Este programador pode ser usado como uma estação de gravação in-circuit, isto é, vc pode conectar o gravador na placa final e programar o microcontrolador sem ter que remover o chip da placa.
Todo o programador foi construído usando componentes comuns e que cabem dentro do conector serial. A placa com o socket DIP foi criada para comportar um microcontrolador de 28 pinos AVR ATmega8, mas você poderá construir placas para qualquer outra série de diferentes formatos de circuito integrado. Este Gravador AVR é compatível com o popular software de programação PonyProg que mostra uma barra de progresso a medida em que o código binário é transferido para o chip.

AVR In-Circuit Serial Programmer






Placa do Socket AVR
A placa com o socket tem um número mínimo de componentes e é usado para a programação de seu microcontrolador de preferência fora da placa destinada.






A placa com o socket, do tipo DIP para 28 pinos, tem um ressonador de 4MHz, ou um cristal com dois capacitores de desacoplamento e mais dois conectores. O conector com dois pinos é uma entrada para o suprimento de uma tensão de +5V para o microcontrolador AVR e o conector com 6 pinos é o ICSP (In-Circuit Serial Programmer).
Ao suprir o microcontrolador com uma tensão externa de +5V como oposta àquela a partir do conector da porta serial do computador assegura que o chip receberá exatamente +5V e isso provê uma confiabilidade maior contra os erros de programação por instabilidade na tensão.

Este Gravador AVR é compatível com a seguinte linha de microcontroladores:

Linha ATmega: ATmega8, ATmega16, ATmega32, ATmega48, ATmega64, ATmega88, ATmega103, ATmega128, ATmega161, ATmega162, ATmega163, ATmega164, Tmega165, ATmega168, ATmega169, ATmega323, ATmega324, ATmega325, Tmega329, ATmega406, ATmega640, ATmega644, ATmega645, ATmega649, ATmega1280, ATmega1281, ATmega2560, ATmega2561, ATmega3250, ATmega3290, ATmega6450, ATmega6490, ATmega8515, ATmega8535
 
Linha ATtiny: ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny22, ATtiny24, ATtiny25, ATtiny26, ATtiny28, ATtiny44, ATtiny45, ATtiny84, ATtiny85, ATtiny261, ATtiny461, ATtiny861, ATtiny2313

Outros AVRs: AT86RF401, AT90CAN32, AT90CAN64, AT90CAN128, AT90PWM2, AT90PWM3, AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535

Volta ao índice



Gravador de EEPROM

É possível também gravar EEPROM utilizando este mesmo circuito gravador. É necessário somente fazer a interface para ligar o chip no gravador. Veja o esquema da figura abaixo:

Desta figura, os pinos de ligação são: 1 - Vcc, 4 - sck, 5 - mosi, 6 - miso, 10 - GND. Faça as associações de acordo com o esquema do gravador apresentado anteriormente.

Fonte: http://electronics-diy.com/avr_programmer.php



Volta ao índice



Gravador para Microcontrolador PIC

Nesta matéria mostro como construir um gravador PIC USB. O gravador de PIC USB apresentado aqui é baseado no usbpicprog que é um programador PIC Microchip "Open Source" para porta USB. Como o próprio termo indica "Open Source" implica que o software e o firmware estão todos liberados para download sem qualquer custo. Neste gravador o hardware foi idealizado o mais simples possível e a versão atual contém somente um único PIC18F2550, 4 mosfets e alguns componentes passivos. O Usbpicprog consiste de três principais componentes os quais podem ser listados abaixo:

1 - Hardware: O Layout de placa do gravador PIC USB contém os componentes necessários para interfacear a porta USB em um cabeçote ICSP Microchip. 

2 - Firmware: O software que roda no processador presente na placa de gravação. Este contém a pilha USB e as funções de níveis alto e baixo para a programação PIC in circuit. O firmware pode ser dividido em duas partes:

  • O bootloader que é carregado somente uma vez, depois disso esta parte do firmware pode ser atualizada através da interface usbpicprog.
  • A parte usbpicprog do firmware que contém os algoritmos de programação atuais para todos os dispositivos PIC implementados.
3 - Software PC: Um aplicativo que se comunica com o usbpicprog hardware/firmware. Este aplicativo foi pensado para ser bem funcional em Linux, Windows e MacOSX.

Esta implementação de programador PIC é uma das melhores da Internet. Neste momento estou tentando montar este gravador e, após terminá-lo, posto comentários e fotos. Se você está montando e tiver dúvidas ou conseguiu terminar primeiro comente logo abaixo.

Fonte: usbpicprog.org
Volta ao índice



Software Gravador PonyProg

Para que seja possível enviar arquivos .hex a partir do computador para o microcontrolador AVR é necessário baixar e instalar o PonyProg2000. Depois da instalação, a primeira coisa que você precisará fazer é configurar o PonyProg para funcionar com o nosso programador AVR. Para fazer isso vá ao menu "Setup" e selecione "Interface Setup". A seguinte tela irá ser mostrada e as áreas em destaque mostram exatamente quais opções devem ser modificadas ou selecionadas.




No próximo passo selecione "AVR micro" e o tipo do seu microcontrolador que irá ser programado (ex. ATmega8)




Até este ponto a configuração do PonyProg está completa e nos poderemos abrir o programa em .hex com o qual o microcontrolador vai ser gravado. Vá até o menu "File" , selecione "Open Program (FLASH File...", e clique no arquivo .Hex para que seja aberto. Após isso, você verá números em hexa na tela inferior. Se você ainda não conectou o seu programador na porta serial do computador este já é o momento para isso. Tenha certeza de que o programador AVR esteja fisicamente conectado ao seu microcontrolador AVR através do socket da placa ou através do conector de 6 pinos ICSP. Finalmente click sobre o ícone em destaque "Write Program Memory (FLASH), ou vá em "Command" e selecione "Write Program (FLASH)".



Clique em sim para confirmar a programação



Agora tenha paciência até que o processo termine. Haverá dois passos: Primeiro o "Writing..." e depois o "Verifing".



Após a gravação completa uma janela será exibida "Write Successful" permitindo que você saiba que o microcontrolado AVR foi gravado e que agora está pronto para ser utilizado.
Volta ao índice



Como utilizar internet no AVR, PIC ou Arduino

Internet para microcontroladores é muito importante hoje. Você vai aprender aqui como microcontrolador AVR, PIC ou Arduíno para acessar a internet. Para isso, você vai precisar do chip ENC28J60. Além deste chip é necessário construir uma interface entre o chip ENC28J60 e o cabo par trançado. Você pode fazer isso construindo uma placa com componentes discretos ou comprar a placa pronta.

O conector MagJack já vem com os indutores necessários para fazer o acoplamento entre o cabo par trançado e o chip ENC28J60. Assim fica mais fácil você trabalhar com o Arduino. Algumas versões podem vir até com LEDs indicativos. O circuito ilustrado pela figura abaixo é um exemplo de como se pode ligar o conjunto microcontrolador, AVR, PIC ou Arduino no chip de interface ENC28J60.


Volta ao índice



Utilizando LCD 16x2 com o Arduino

Você vai aprender nesta matéria a como utilizar LCD 16x2. Você vai precisar de um Arduino para conseguir fazer lcd 16x2 funcionar. Vamos mostrar todas as conexões e o programa necessário para rodar no Arduino. Veja na figura abaixo se o seu Display LCD 16x2 se parece com o mesmo desta matéria.

Em seguida você deve verificar a pinagem do lcd 16x2 que você possui. Na tabela abaixo você poderá conferir para que serve cada pino do LCD 16x2 e quais pinos serão ligados no módulo Arduino.

Observe na próxima figura as ligações do LCD 16x2 no módulo Arduino. Você poderá utilizar uma protoboard para auxiliar a ligação. Clique na figura abaixo para observar mais nitidamente os fios que conectam o LCD 16x2 nos pinos da placa do Arduino.

Abaixo apresentamos uma listagem de programa para você gravar no Arduino e fazer o display LCD 16x2 funcionar.

1:  // Controle LCD 16 x 2 para Arduino  
2:  #include <LiquidCrystal.h>  
3:  // Define os pinos de ligação na placa do Arduino  
4:  LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
5:  void setup()  
6:  {  
7:   // Configura o LCD 16 x 2  
8:   lcd.begin(16, 2);  
9:  }  
10:  void loop()  
11:  {  
12:   // Limpa a tela  
13:   lcd.clear();  
14:   // Posiciona o cursor na coluna 3, linha 0;  
15:   lcd.setCursor(3, 0);  
16:   // Escreve texto no display LCD 16x2  
17:   lcd.print("Meu LCD Arduino");  
18:   lcd.setCursor(3, 1);  
19:   lcd.print(" LCD 16x2");  
20:   delay(5000);  
21:   // Rola texto para esquerda  
22:   for (int pos = 0; pos < 3; pos++)  
23:   {  
24:    lcd.scrollDisplayLeft();  
25:    delay(300);  
26:   }  
27:   // Rola texto para direita  
28:   for (int pos = 0; pos < 6; pos++)  
29:   {  
30:    lcd.scrollDisplayRight();  
31:    delay(300);  
32:   }  
33:  }  
Volta ao índice