quer saber quais são e como funcionam as memórias do Arduino é fundamental para que você consiga desenvolver projetos com mais funcionalidades e também com maior performance você tem que saber pelo menos o básico de para onde seu código tá indo no Arduino e como ele está sendo executado para conseguir otimizar os códigos ou seja deixar os códigos mais rápidos ocupando o mínimo de memória possível E também rodando de forma mais confiável eu sou Marlon Nardi Professor especialista em eletrônica e programação eu utilizo Arduino há mais de 10 anos em meus projetos e eu tenho um convite muito especial para te fazer se você quer saber como criar projetos incríveis quadrinhos e tirar as suas ideias na sua cabeça e transformar em linhas de código eu creio meu minicurso 100% gratuito chamado de descomplicando o argumento ele vai acontecer no dia cinco a Dez de Julho Bora já tá pertinho serão quatro aulas totalmente gratuitas que vão acontecer aqui no meu canal no YouTube onde eu vou te mostrar os primeiros passos que você precisa dar mesmo que você seja totalmente iniciante que você nunca e guarde mina na vida para você tirar as suas ideias aqui da cabeça e transformar em linha de código sem depender de control c control V se interessou então clique aqui no link da descrição mestres do arduino. com já anota na sua agenda de cinco a Dez de Julho Quem que tá escrito aqui vai receber os materiais em PDF que eu vou disponibilizar durante os complicando Arduino que vai te ajudar muito na sua jornada rumo a se tornar um mestre do alimento Inclusive eu vou entregar certificado para quem assistiu o curso inteiro e chinês que entrou aqui embaixo lente universo do arduino. com e para quem já tá interessado no meu método completo mestres do Arduino calma assistiu descomplicando ordem mesmo primeiro que eu vou te dar os primeiros passos para você entrar no mundo lado menos depois no final dos com pecando Arduino eu vou liberar nas pessoas para meu curso completo do Mestre do Ar doentes Bora por 20 esse daqui é o Arduino Uno que provavelmente é o argumento que você tem aí um dos argumentos mais populares Inclusive eu recomendo para você começar aprender e no coração dele nós temos aqui o microcontrolador atmega328p a digitar mas na internet atmega328p nós vamos encontrar os achei que seria como se fosse o manual desse me controlador tá aqui então esse daqui é um documento em PDF com 654 páginas bem grande com tudo o que você precisa saber sobre me controlador e Se nós formos aqui em overview ele vai mostrar através desse diagrama em blocos tudo que tem dentro de si me controlador desse mini computador Afinal é isso que é homem controlador então Aqui nós temos um quadrado um retângulo né quadriculado e aqui dentro desses blocos tudo que tem ali dentro me controlador todos os periféricos que ele tem aqui no centro podemos notar uma CPU do tipo a VR certo a memória flash a memória é se Hum então logo de cara aqui nós podemos concluir que esse homem controlador com arquitetura do tipo Harvard onde a o código que você escreve a memória de programa é separado da memória de dados que a memória que o processador usa para auxiliar n a executar as operações Nós já vamos falar disso então esse não é o meu comprador corre o tempo vamos Norma por exemplo na arquitetura com Norma a memória de dados e de programa tá junto a lê o fato de cimento controlador possuir arquitetura Harvard é muito bom porque arquitetura rádio uma das vantagens dela é que ela consegue executar códigos de forma muito rápida o processador consegue executar uma instrução enquanto ele já está lendo a outra lá na memória flash aqui no centro nós temos a CPU que é do tipo abr a empresa que fabricou Originalmente esses esses servimos esse me controlador essa arquitetura a CPU nada mais é do que a unidade de processamento Central ela tem a função de garantir com que o programa seja executado corretamente então é esse CPU que vai lá na memória busca instruções executa e faz cálculos por exemplo aritméticos lógicos e operações de bit a bit ele que é o nosso principal componente aquele nosso me controlador a gente possa comparar com um computador que você tem aí desktop ou notebook ele seria como o processador E5 E7 hein Esse é um AMD por exemplo seria dá para comparar com essa parte do seu computador nós podemos ver que nós temos aqui ó o barramento de dados e essa setinha indica que pode haver uma comunicação tanto da Flash como da CPU enquanto da CPU com a Flash e essa é a primeira memória que nós temos no nosso Arduino Uno nano microcontrolador do nosso Arduino é nessa memória flash que fica armazenado os códigos que você escreve lá na ideia todas as instruções que você dá para o computador precisa ficar salvo no lugar e essa é a responsabilidade da memória flash ela vai memória que pode ser escrita eletronicamente Então você faz isso através de USB do seu computador e também apagada eletronicamente você também pode fazer isso através do seu computador da ideia do hino e ela é uma memória do tipo não volátil ou seja os dados nela vão se manter mesmo que você designer ghisi o Arduino para você consegue armazenada nos dela Tirar o Arduino da alimentação da tomada e esses dados vão E durante muito tempo inclusive sobre a quantidade de tempo que ela pode reter uma memória tá escrito aqui na primeira página Nossa tecido ó a retenção de dados é de 20 anos o que já é muito a 85 graus Celsius ou 100 anos a 25 graus Celsius ou seja se você manter o Arduino numa temperatura de 25 graus Celsius uma temperatura ambiente as informações vão ficar salvas lá dentro por no mínimo 100 anos garantida pelo fabricante é tempo para caramba agora se você utiliza esse Arduino dentro de um capô de um carro por exemplo onde o ambiente quente e se você utilizar eles tenham uma boa proteção térmica ele vai durar menos você memória vai reter esses dados durante menos tempo porém ó 85 graus Celsius ainda duraria 20 anos então dura para caramba outra característica de todas as memórias é que elas não são infinitas muita gente muitas vezes a gente compra por exemplo pendrive acha que dá para gravar e apagar as informações nele de forma infinita e não tudo tem um tempo de vida Tá certo e aqui na primeira página da Tati também encontramos essa informação número de ciclos de leitura/apagadas da memória flash é dez mil vezes então você pluga o celular do menino no computador carrega o código para ele depois você carrega outro foi um seco porque lá em quando você carrega o novo Código na ideia do hino ele apaga o que tava lá e você pode fazer isso 10 mil vezes pode parecer até pouco 10 mil porém é muita coisa para vocês terem uma noção trabalham com Arduino há mais de dez anos e nunca consegui acabar com a memória flash da doença claro que eu programa em vários então foi meio que distribuído as gravações apagadas entre eles porém mesmo assim é muita coisa uma coisa interessante sobre a organização dessa memória flash é que como as todas as funções da CPU do tipo a VR são de 16 bits ou 32 bits a memória ela não é assim 8 bits 8-bits 8-bits né vários bytes um em cima do outro na verdade o organizado da seguinte forma nós temos um byte numa linha outro bate na mesma língua então nós temos 2 bases e depois 16 mil e poucos conjuntos desses dois bytes formando os nossos 32 cards aqui nós podemos ver que a memória flash que também é chamada de memória de programa porque ela armazena o seu código o endereço dela de início vai d0000 até 3fff esse a gente converter esse valor de 3fff quem é que está decimal para decimal podemos ver que o valor vai dar Olá 16383 ou seja essa memória consegue armazenar 16.
384 endereços de 2 bytes cada esse nós multiplicarmos 16. 384 porque o endereço 10 também conta x 2 vamos obter 32. 768 endereços da por isso que essa memória você vai lá no site do Arduino como 32 carros na verdade é sempre um pouquinho a mais do que 32 porque não der exato né Por exemplo 1 cadigan seria 1020 de 32k seria 32.
768 porque quando você acrescenta 10 número binário você acaba aumentando ele pelo dobro de dados então nunca vai dar exato curiosidade interessante né você já deve ter escutado a palavra bootloader nas suas pesquisas sobre Arduino né quando você vai programar o microcontrolador normalmente você precisaria de um gravador externo para poder carregar algum código nele porém esses me controladores da atmel que hoje é microchip permite com que você carrega o bootloader dele seria um código Zinho programinha que vai ser salvo na memória flash que esse programa vai ser responsável por capturar dados da cereal e fazer a gravação da própria memória flash sem utilizar um gravador e nós podemos ver aqui ó que tá escrito aqui é boot Flash Action ou seja o bootloader também é armazenado um espacinho da memória flash por segurança voltar aqui para o diagrama em blocos do nosso me controlador nós temos outra memória que também é muito importante que seria e esse rapaz é só uma memória que ao contrário da Flash ela é volátil certo Ou seja quando você tira a energia dela ela perde todos os dados tirou energia já era ela vai zerar E por que que ela não retém os dados porque colocar uma memória que não retém os dados ali porque não precisa porque essa memória ela só serve para auxiliar o microprocessador a funcionar que é um exemplo imagina que eu te peço para fazer o seguinte cálculo 497 x 798 mais 494 x 795 São duas multiplicações mais uma soma né O que que provavelmente você faria É difícil fazer isso da cabeça você provavelmente pegar um pedaço de papel faria a primeira multiplicação que seria uma operação anotaria no papel depois Faria segunda multiplicação e a autoria do papel não papel Então você teria duas informações que daí bastaria você ler o papel e somar aqueles dois valores nesse caso nessa não no dia que eu tô te dando o papel seria se fosse a memória você calculando o seu cérebro seria como se fosse o processador e o papel como a memória RAM é exatamente o que acontece o processador consegue executar nesse caso aqui somente uma instrução por vez então para ajudar ele a fazer cálculos como esse que eu dei de exemplo ele vai salvando o certo as coisas para ele pegar depois na memória por isso que na memória RAM é armazenado variáveis que vão mudar durante a execução do seu código se tem algum dado que vai mudar durante a execução do código que você escreveu ela não é salvo na Flash porque o processador não consegue alterar a memória flash porém ele consegue alterar a memória ram tem um exemplo Imagine que você declarou por exemplo a variável leitura do sensor ultrassônico você montou um projeto com Arduino que tem um sensor ultrassônico que tá lendo a distância essa variável que você usou para armazenar distância do valor do sensor ultrassônico vai mudar durante a execução do código vai você carregou o programa Arduino ou sensor começa a ler a distância essa distância variável ela vai mudar logo processador do Arduino vai jogar uma eu já tô na flash para a ram para que ele possa alterar esses dados durante a execução do código então em resumo o que dados vão para a memória é se hum vão todos os dados que podem mudar durante a execução do seu código tanto variáveis globais quanto locais para memória se Hum também vão as variáveis locais e funções endereços de retorno e funções e também de funções que serve interrupções E por que que tem esse esse na frente da hum SS pessoal ele significa estepe Ou seja que a memória RAM estática existem dois tipos basicamente a de Ram e acirra a de Ram é a memória dinâmica por isso que eu tenho CD de dynamic é uma memória RAM que ela precisa estar sendo atualizada um tempo todo senão mesmo energizada ela começa a perder os seus dados porque ela possui capacitores com correntes de vazamento ali né com o resto de fuga que eles vão se descarregando já uma memória é serrando tipo esse tática ela não precisa ficar sendo recarregado o tempo todo como ela com som ou menos energia e ela seria especial para mim controlador ela seria uma opção muito inteligente para mim contador e normalmente é utilizado em aplicações de baixa energia Vale lembrar que a memória RAM do seu processador tem que ser muito mais muito rápido o tempo de leitura dela tem que ser muito corpo tem que ser muito rápido porque o processador trabalha do Arduino Uno nesse caso 16 megahertz ou seja para Esse processador ele vai executar 16 milhões de instruções por segundo então a memória precisa ter um tempo altíssimo para não atrasar o lado do processador por isso que novamente a memória RAM são caras Porque elas precisam fazer muito elas precisam ter uma velocidade muito grande como por exemplo As Memórias RAM do seu computador né Elas são caras se comparadas a outros tipos de memória e outra por que que a memória RAM normalmente tem um monte de pino de comunicação Para justamente de velocidade para quanto mais penas a gente tem maior velocidade e esses pinos da placa-mãe do seu computador são conectados ao processador muito fumaça né galera agora tem uma memória quem tem pouca gente utiliza e que pode acrescentar funções extras a seu projeto se você mora aqui ó aí retro a memória então é uma memória que possui um kilobyte ou seja mil bikes aqui no Arduino né na verdade são 1024 bytes e ela é uma memória não-volátil ou seja assim como a Flash ela não vai perder os seus dados quando um desenergizada ela mantém os seus dados naquele tempo que nós vamos ali 20 anos 85 graus ou 100 anos a 25 graus e essa memória ela não armazena o programa que você escreve ela serve como uma memória extra para você poder armazenar dados por exemplo assim ah vamos pensar no seguinte caso que você está com seu projeto lendo a distância com sensor ultrassônico e você quer armazenar essas informações a cada 5 minutos você pode pegar essas informações e salvar na memória época mesmo que você desligar o Arduino mesmo que passa um bom tempo essas memórias essa esses valores ainda não continuar Salmos nessa memória como essa memória no armazenar nem seu código e nem serve para ajudar um processador a funcionar ela não precisa ser uma e rápida Então essa é a memória com o tempo de leitura e escrita mais alta que tem aqui ela demora em torno de três. 3 mil e segundo que é um tempo alto até para você poder gravar um dado nela ou apagar então se atente isso o seu código e outro detalhe Ela também tem uma duração por exemplo ela pode ser inscrita/apagada 100 mil vezes então se você ficar escrevendo e apagando dentro de vó de loop dela por exemplo você pode acabar com a sua memória Apple de forma muito fácil então toma cuidado porque o pode look ali né o processador executa o código muito rápido então ao invés de utilizar o método. Rite da biblioteca Apple Nativa do Arduino Eu recomendo utilizar o método.