Escolar Documentos
Profissional Documentos
Cultura Documentos
Título: MICROCONTROLADORES
1. Sumário
2. ATMEGA328 E ATMEGA328P...........................................................................................3
2.1 DESCRIÇÃO.......................................................................................................................3
2.2 VERSÕES DE DIFERENTES ENCAPSULAMENTOS.................................................3
TQFP...................................................................................................................................3
2.3 CARACTERÍSTICAS..........................................................................................................3
3. EEPROM................................................................................................................................4
3.1 IMPORTÂNCIA...................................................................................................................4
3.2 DESCRIÇÃO.......................................................................................................................4
3.3 QUANTIDADE DE MEMÓRIA..........................................................................................4
4. TUTORIAL DE COMO USAR EEPROM...........................................................................5
4.1 CÓDIGO E INFORMAÇÕES.............................................................................................5
4.2 EXEMPLO............................................................................................................................5
5. CÓDIGOS DE EXEMPLO DE COMANDOS.....................................................................7
5.1 EEPROM.WRITE................................................................................................................7
5.2 FERROM.READ..................................................................................................................8
5.3 EEPROM WRITE................................................................................................................9
5.4 EEPROM READ................................................................................................................10
5.5 CONSELHO.......................................................................................................................11
6. DATA SHEET ATMEGA328 ou ATMEGA328P..............................................................12
6.1 VISÃO SUPERIOR DO MLF 348P.................................................................................12
6.2 MODELO DO 328P..........................................................................................................12
6.3 PORTAS DO ATMEGA 328............................................................................................13
6.4 MODELO DO 328-PU......................................................................................................13
6.5 TAMANHO DA MEMÓRIA...............................................................................................13
6,6 DIAGRAMA DE BLOCO..................................................................................................13
7. PINOS...................................................................................................................................15
7.1 DESCRIÇÃO.....................................................................................................................15
7.2 IMPORTÂNCIA DO PINO 0 E 1.....................................................................................16
7.3 PINOS PWM......................................................................................................................17
8. MELHOR SITE PARA COMPRAR COMPONENTES DE ARDUINO..........................18
9. BIBLIOGRAFIA....................................................................................................................19
2. ATMEGA328 E ATMEGA328P
2.1 DESCRIÇÃO
São microcontroladores da família de 8 bits da Atmel AVR
ATmega328p é uma versão de baixo consumo de potência.
2.3 CARACTERÍSTICAS
Arquitetura Harvard com 131 instruções.
Oscilador interno de 8 MHz.
Suporte a oscilador externo de até 20 MHz.
Memória de programa flash de 32 kB.
EEPROM de 1 kB.
2 kB de SRAM interna.
2 Contadores/Temporizadores de 8 bits e 1 de 16 bits.
6 canais de PWM.
6 canais de ADC de 10 bits.
1 interface de comunicação UART.
1 interface de comunicação I2C.
2 interfaces de comunicação SPI.
Diferentes modos de economia de energia.
3. EEPROM
3.1 IMPORTÂNCIA
A EEPROM está presente em todas as versões do Arduino, mas muitas vezes
a falta de conhecimento de sua existência é contornada com a instalação de
memórias EEPROM externas ou mesmo de um cartão de memória SD de
vários gibabytes para armazenar algumas poucas variáveis ou dados.
3.2 DESCRIÇÃO
Uma EEPROM (de Electrically-Erasable Programmable Read-Only Memory) é
um tipo de memória que pode armazenar valores que serão retidos mesmo
quando a energia é desligada e pode ser programada e apagada várias vezes,
eletricamente. Pode ser lida um número ilimitado de vezes, mas só pode ser
apagada e programada um número limitado de vezes, que varia normalmente
entre 100.000 e 1 milhão.
#include <EEPROM.h>
EEPROM.write(address, value);
4.2 EXEMPLO
Devemos montar um potenciometro na entrada 0 do arduino conforme
mostrado na figura abaixo, em seguida devemos fazer o upload do código do
sketch mostrado mais abaixo para o arduino. Este exemplo simplesmente salva
periodicamente na EEPROM os valores lidos na entrada analógica para que
possam ser acessados posteriormente.
5. CÓDIGOS DE EXEMPLO DE COMANDOS
5.1 EEPROM.WRITE
Aviso: Todas as palavras escritas depois dos sinais “//” são apenas
informações sobre extras e detalhes sobre o que os códigos vão fazer, portanto
não são necessárias para o funcionamento do programa
void setup()
{
}
void loop()
{
// é preciso dividir val por 4 porque o range da entrada analógica
// vai de 0 a 1023 e cada byte da EEPROM só pode guardar
// valores compreendidos entre 0 e 255.
int val = analogRead(0) / 4;
// escreve o valor de val na EEPROM no endereço selecionado em addr.
// este valor permanecerá guardado mesmo
// que placa seja desligada da fonte de alimentação
EEPROM.write(addr, val);
// avança para o próximo endereço indo até o byte 512 da
// EEPROM, quando então retorna para o byte 0.
addr = addr + 1;
if (addr == 512)
addr = 0;
delay(100);
}
Este sketch começa com a inclusão da biblioteca EEPROM e da declaração da
variável addr que define o endereço da EPROM a ser gravado. Em seguida é
iniciado o loop principal com a realização da leitura do valor presente na
entrada analógica 0 divido por 4 que é salvo em val. O valor de val é escrito no
endereço da EEPROM indicado por addr. Em seguida o endereço é
incrementado em uma unidade e se for igual a 512 é zerado. O programa
aguarda por 100ms para então repetir indefinidamente o loop principal.
Para ler uma determinada posição de memória, use:
Value = EEPROM.read(address);
Address: Posição da memória que será lido, é um inteiro entre 0 e 1023
(UNO);
Value: Valor do endereço da EEPROM é um inteiro entre 0 e 255 (um único
byte).
5.2 FERROM.READ
EEPROM Read: Lê o valor de cada byte da EEPROM e imprime na tela do
computador.
void setup()
{
Serial.begin(9600); // inicializa o canal de comunicação serial
}
void loop()
{
// lê o byte no endereço atual da EEPROM
value = EEPROM.read(address);
// envia o valor lido para o computador pela porta serial
Serial.print(address);
Serial.print("\t");
Serial.print(value, DEC);
Serial.println();
// avança para o próximo endereço da EEPROM
address = address + 1;
// quando atingir o endereço 512 retorna
// para o endereço 0
if (address == 512)
address = 0;
delay(500);
}
void setup()
{
}
void loop()
{
// lê o valor na entrada analógica e guarda em val
int val = analogRead(0);
// divide val que é um inteiro de 16 bits em dois bytes
byte hiByte = highByte(val);
byte loByte = lowByte(val);
void setup()
{
Serial.begin(9600); // inicializa o canal de comunicação serial
}
void loop()
{
// lê o byte no endereço atual da EEPROM
byte hiByte = EEPROM.read(address);
byte lowByte = EEPROM.read(address +1);
value = word(hiByte, lowByte);
Sempre que utilizar faça um mapa das variáveis que estão sendo guardadas e
os seus respectivos endereços, para assegurar que nenhum endereço seja
usado por mais de uma variável, e que os valores de bytes múltiplos não
sobrescrevam outras informações.
É isso, a EEPROM é um recurso muito útil e fácil de usar no Arduino, porém
relativamente pouco utilizado.
6. DATA SHEET ATMEGA328 ou ATMEGA328P
6.1 VISÃO SUPERIOR DO MLF 348P