You are on page 1of 3

Montando Arduino na protoboard

No ltimo post (Gravando bootloader no ATMEGA328 usando Arduino) eu falei sobre como
gravar o bootloader no ATMEGA328 utilizando a prpria placa do Arduino como gravador, o
que permite que voc use o microcontrolador fora da placa Arduino. Lembre-se tambm que
na FILIPEFLOP voc tem a opo de comprar o chip j com o bootloader gravado e com todos
os componentes utilizados neste artigo.
Ok, legal, mas como eu uso o microcontrolador fora da placa Arduino ?
Projetos definitivos utilizando Arduino no precisam, na maioria das vezes, de atualizao
constante do programa contido no microcontrolador. Depois que voc testar o circuito na
protoboard e estiver tudo ok, voc pode transfer-lo para uma placa de circuito impresso e, com
alguns componentes adicionais, fazer com que ele funcione "sozinho".
Assim voc elimina, por exemplo, a necessidade do circuito regulador de tenso e tambm o
chip de comunicao USB com o computador, composto pelo ATMEGA16U2.
Fique atento ao fato de que, utilizando o ATMEGA328 desta forma, a alimentao do CI deve
ficar entre 1,8 e 5,5 volts, que so os valores limite fornecidos pelo fabricante e que constam
no datasheet do microcontrolador.
Testar o ATMEGA328 fora da placa bem simples e podemos usar praticamente o mesmo
circuito que montamos para gravar o bootloader do post anterior, com o acrscimo de um push
button para fazer a funo de boto de reset, e 2 capacitores cermicos de 22 pF para ligao
ao cristal.
Assumindo que temos um Arduino UNO, vamos colocar o microcontrolador no soquete e
carregar o seguinte programa :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

// Programa : Sequencial de leds - Teste ATMEGA328


// Autor : Arduino e Cia
int
int
int
int

pino_verde = 4; //Pino ligado ao led verde


pino_verm = 5; //Pino ligado ao led vermelho
pino_amar = 6; //Pino ligado ao led amarelo
tempo = 1000; //Controla o tempo de ativacao dos leds

void setup()
{
//Define os pinos dos leds como saida
pinMode(pino_verde, OUTPUT);
pinMode(pino_verm, OUTPUT);
pinMode(pino_amar, OUTPUT);
}
void loop()
{
digitalWrite(pino_verde, HIGH);
digitalWrite(pino_verm, LOW);
digitalWrite(pino_amar, LOW);
delay(tempo);
digitalWrite(pino_verde, LOW);
digitalWrite(pino_verm, HIGH);
digitalWrite(pino_amar, LOW);
delay(tempo);

27
28
29
30
31
32
33
34
35
36

digitalWrite(pino_verde, LOW);
digitalWrite(pino_verm, LOW);
digitalWrite(pino_amar, HIGH);
delay(tempo);
tempo = tempo-50;
if (tempo < 100)
{
tempo = 1000;
}
}

Esse programa aciona os 3 leds do circuito abaixo em sequncia, e a varivel TEMPO define o
tempo que o led ficar ligado/desligado. A cada sequncia a varivel tem o valor diminudo, o
que faz com que os leds acendam cada vez mais rpido. Quando a varivel TEMPO atinge um
valor menor do que 100 milisegundos, o processo reiniciado.

Com o programa carregado e devidamente testado, vamos agora utilizar o ATMEGA fora do
Arduino Uno. Retire o microcontrolador, coloque-o na protoboard e monte o circuito abaixo,
observando as conexes do ATMEGA328, sendo que agora vamos ligar o led verde
porta D4 (Pino 6 do ATMEGA), o led vermelho porta D5 (pino 11 do ATMEGA), e o led
amarelo ao D6 (pino 12 do ATMEGA). O resistor ligado ao pino 1 (Reset) tem o valor de 10K :

Alimente o circuito com pilhas/baterias ou outra fonte que fornea at 5.5 volts, e veja o seu
ATMEGA328

You might also like