Quanto código um Arduino uno

Quanto código um Arduino uno

Arduino e dispositivos baseados em microcontroladores de todos os outros usam a memória para armazenar dados. A memória é uma parte essencial de qualquer sistema de computação, especialmente quando se trata de sistemas e design incorporados. Alocar a memória do Arduino de uma maneira dinâmica melhora a eficiência das placas de Arduino. A memória pode armazenar entrada e saídas provenientes de sensores e outros dispositivos anexados ao Arduino. Aqui discutiremos quanto código Arduino Uno pode armazenar em sua memória.

Alocação de memória do Arduino UNO

Os microcontroladores usados ​​nas placas Arduino são específicos para aplicativos de sistema incorporados. Ao contrário de um computador convencional normalmente usado em nossas casas e escritórios, os microcontroladores têm tarefas bem definidas para o que eles projetaram. Os microcontroladores não têm memória em cache multicamada e memória virtual baseada em disco, como usado na CPU doméstico. Normalmente, enquanto programa o Arduino Uno, a memória não é considerada na maioria das vezes até que o código de alguém esteja preso devido a problemas de memória baixa. Para obter uma solução, precisamos entender o problema primeiro.

As placas Arduino consistem principalmente em três tipos de memória.

  • Sram é onde o Arduino cria variáveis ​​usadas em esboços e as manipula de acordo.
  • Clarão A memória é um espaço de programa em que escrevemos esboços de Arduino, e armazena o código Arduino.
  • EEPROM é um espaço que geralmente armazena dados de longo prazo presentes em nosso esboço.

O SRAM é uma memória volátil cujos dados serão perdidos assim que o Arduino for desligado enquanto Flash e EEPROM não são voláteis; Suas informações persistem mesmo se removermos o poder do Arduino.

Aqui está uma breve comparação de diferentes placas de Arduino, alocação de memória de microcontroladores:

Arduino Processador Clarão Sram EEPROM
Uno, Uno Ethernet, Pro mini, Nano 3.0 ATMEGA328 32kb 2kb 1kb
Leonardo, Micro ATMEGA32U4 32kb 2.5kb 1kb
Mega ATMEGA256 256kb 8kb 4KB

Quanto código Arduino uno pode segurar

Quanto código Arduino Uno pode armazenar? Resposta a esta pergunta é: tudo depende de como programamos Arduino Uno. Arduino Uno tem três tipos de memória, como discutido anteriormente, se excedermos qualquer um deles, nosso código não será compilado. Arduino Uno tem 32kb de Memória flash o que é suficiente para escrever milhares de linhas de código.

Normalmente enquanto escrevia o código Arduino Sram é a memória mais valiosa nas placas de Arduino. Arduino Uno tem apenas 2kb de SRAM, que é igual a 2048 bytes. Isso não é demais para programar Arduino UNO para uma extensa interface de usuário e aplicativos gráficos. Arduino é poderoso o suficiente para controlar motores, sensores e motoristas, mas não o suficiente para lidar com um robô humano em corrida inteira.

Para verificar quanto espaço é o esboço do Arduino utilizando, execute um programa e procure o uso de memória no saída janela.

Por exemplo, depois de compilar um simples Pisca de LED programa, obtivemos a saída como mostrado abaixo. Aqui 2% de Clarão A memória igual a 924 bytes de 32256 bytes (32kb) é usada pelo programa Blink escrito no Arduino IDE. Enquanto 9 bytes de SRAM do total de 2048 bytes (2kb) são utilizados na criação de variáveis ​​usadas no Sketch de LED pisca.

Quando compilamos o programa Arduino, o IDE dirá o tamanho do problema. Usando algumas técnicas de otimização, podemos aumentar a capacidade do programa Arduino. Abaixo da imagem mostra um exemplo de memória SRAM e flash que excede os limites de dados do microcontrolador.

Como otimizar a memória do Arduino

Observe que não há muita memória Arduino Uno disponível lá, como SRAM, é apenas 2kb. Pode ser facilmente usado usando algumas cordas inúteis em um esboço. Por exemplo:

Char Message [] = "Linuxhint.com ";

Declaração como essa pode comer muito SRAM. Aqui “Linuxhint.com ” coloca 14 bytes no SRAM cada um desses char pega 1 byte, mais 1 para o Terminator '\ 0'.

Como otimizar o código do Arduino para melhor uso da memória

A otimização do código do Arduino é essencial para projetos complexos, então aqui estão algumas maneiras de otimizar o esboço do Arduino.

Remova o código morto

Se o código do Arduino estiver chamando várias bibliotecas, pode haver uma chance de uma parte do código não estar em uso. Remova todas as bibliotecas, funções e variáveis ​​não utilizadas. Se não tiver certeza sobre eles, comente. Se o programa ainda compilar e funcionar bem, essa parte do código não será usada por Arduino.

As bibliotecas consomem muito SRAM, como o uso de uma biblioteca SD-card pode levar até 1kb de SRAM. Evite o uso desnecessário da biblioteca ao escrever esboços.

Armazene string constante na memória flash

As cordas estáticas podem ser uma das principais causas de resíduos de memória do Arduino. Por exemplo:

Serial.println ("linuxhint.com ");

Strings estáticas como essas são copiadas automaticamente em SRAM da memória flash. Para evitar isso, use F () macro função. Isso impedirá SRAM de chamá -lo diretamente e salva a memória. A função f () pode ser aplicada da seguinte maneira:

Serial.println (f ("linuxhint.com "));

Usando a macro f () na string acima, salvamos 14 bytes de SRAM.

Tipo de dados correto

Ao usar matrizes grandes e tabelas de pesquisa, use o tipo de dados de acordo com a necessidade. Use o menor tipo de dados que pode ajustar dados facilmente. Por exemplo, int vai pegar dois bytes enquanto byte vai levar apenas um. Da mesma forma, evite usar flutuação quando tiver um número inteiro, tente usar int. Isso economizará bytes extras no esboço de Arduino, que darão espaço extra para escrever esboços. Diferentes tipos de tipos de dados e memória que ocupam em Arduino são mostrados na tabela a seguir:

Tipo de dados Tamanho (bytes) Faixa de valores
Vazio 0 nulo
bool/booleano 1 Verdadeiro falso
Caracteres 1 -128 a +127
caracter não identifcado 1 0 a 255
Byte 1 0 a 255
Int 2 -32.768 a 32.767
não assinado int 2 0 a 65.535
Palavra 2 0 a 65.535
Longo 4 -2.147.483.648 a 2.147.483.647
não assinado por muito tempo 4 0 a 4.294.967.295
Flutuador 4 -3.4028235E+38 a 3.4028235E+38
Dobro 4 3.4028235E+38 a 3.4028235E+38
Corda - Array do personagem

Conclusão

Neste guia, abordamos quanto código Arduino Uno pode segurar, mais discutimos parâmetros diferentes que levam a problemas de baixa memória. A alocação de memória dinâmica usando funções Arduino pode ser muito útil na construção de projetos. Usando técnicas mencionadas, é possível otimizar o uso da memória do Arduino.