Estou desenvolvendo um medidor para um tanque de Diesel com Ultrasom + RTC + Log no SD + Temperatura + Pagina WEB.
Resumindo o programa esta muito grande, já fiz de tudo para reduzir o tamanho dele.
Usando o macro F() consegui rodar mas em partes isoladas, estou tentando rodar o programa completo no Arduino Nano ou Uno mas ainda não consegui.
Ai pintou a duvida. Usar PROGMEM da o mesmo resultado que macro F()?
A função das duas é parecida, ou seja armazenar dados fora da RAM, por isso pintou a duvida.
Fiz a maior parte da exibição web com client.println(F(" "));
obs: não fiz o teste comparativo pois ainda não consegui usar o PROGMEM no programa.
Tags:
Olá Willians.
Você fez certo em usar a macro F().
No entanto a diretiva PROGMEM só pode ser usada para valores constantes, ou seja que não vão ser alterados durante o programa.
Por exemplo, se você tiver um array no seu programa com valores que nunca se modificam, então com certeza você deve usar PROGMEM para declará-lo.
Obrigado pela rápida resposta!
Você pode me ajudar a gerar o PROGMEM? Não estou conseguindo.
Estou tentando usar a diretiva PROGMEM para imprimir a pagina HTML visto que posso dividir o HTML em partes e no meio dessas partes enviar as variáveis.
Dentro do HTML estou usando Canvas para criar 3 Gauges através dessa API do Google( https://developers.google.com/chart/interactive/docs/gallery/gauge ).
Estou pensando em gerar o PROGMEM com as partes fixas do HTML como por exemplo.
<html>
<head>
<script type='text/javascript' src='https://www.google.com/jsapi'></script>
<script type='text/javascript'>
google.load('visualization', '1', {packages:['gauge']});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Label', 'Value'],
['DIESEL' , 700 ]
]);
onde tem o 700 eu corto o PROGMEM, envio um client.print(F(" 700 ")); e depois envio o comando para imprimir o restante do PROGMEM.
No lugar do 700 vou usar uma variável proveniente do sensor.
A duvida é como imprimir um HTML completo usando PROGMEM.
Obrigado desde já.
Dica muito boa! Ajuda bastante.
Cheguei a conclusão que devido a baixa capacidade de memória do Uno//Nano preciso partir para um Mega ou fazer um cluster com 2 arduino Nano devido ao tamanho dele.
Estou estudando como funcionam as comunicações I2C e Serial para ver qual se enquadra melhor no projeto.
Obrigado pelas dicas!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por