Pessoal boa noite. Estou bem e vocês? Ah, que bom então!

Tenho um projeto que preciso executar, e minha programação dentro do Arduino Uno ultrapassa os 32.256 bytes e a aplicação não deixa fazer upload. Sim, é difícil de acreditar, mas ultrapassa hahaha, Enfim...

Deve ter como criar minha própria biblioteca, mas não tenho nem idéia de como fazer isso, pesquisei no YT e não achei nada. Alguém poderia me dar um exemplo?

Exibições: 682

Responder esta

Respostas a este tópico

Exatamente o que seu projeto faz?

sabendo isso,fica mais facil ajudar.

Rafael, ele capta sinais IR de controle remoto. E cada sinal gera cerca de 50 linhas de dados, e quando eu tento mapear todas as teclas de um controle da SKY, por exemplo, e tento passar para o Arduino, ele diz que existem muitos dados.e não permite.

Segue o sketch que eu uso pra isso:

https://skydrive.live.com/redir?resid=1890643B97C7B442!119&authkey=!AOKw0vl8Dso6_go&ithint=file%2c.rar

ae amigo uma sugestao

1  da pra vc declara os pinos dos leds, q estao como  int, como char 

2 nessa parte do programa:

void Controle(char data) {

switch(data){

case '1': //teclas do botão 1

pulseIR(8820);
delayMicroseconds(4380);
pulseIR(560);
delayMicroseconds(1640);
pulseIR(540);
delayMicroseconds(1640);
pulseIR(560);
delayMicroseconds(1640);
pulseIR(540);
delayMicroseconds(560);
pulseIR(540);
delayMicroseconds(560);
pulseIR(520);
delayMicroseconds(560);
pulseIR(540);
delayMicroseconds(560);
pulseIR(540);
delayMicroseconds(1620);
pulseIR(540);
delayMicroseconds(580);
pulseIR(520);
delayMicroseconds(1640);
pulseIR(540);
delayMicroseconds(1640);
pulseIR(560);
delayMicroseconds(1620);
pulseIR(560);
delayMicroseconds(1640);
pulseIR(560);
delayMicroseconds(560);
pulseIR(520);
delayMicroseconds(1640);
pulseIR(540);
delayMicroseconds(560);
pulseIR(540);
delayMicroseconds(560);
pulseIR(520);
delayMicroseconds(1640);
pulseIR(560);
delayMicroseconds(560);
pulseIR(520);
delayMicroseconds(560);
pulseIR(540);
delayMicroseconds(560);
pulseIR(520);
delayMicroseconds(560);
pulseIR(540);
delayMicroseconds(560);
pulseIR(520);
delayMicroseconds(560);
pulseIR(540);
delayMicroseconds(1620);
pulseIR(560);
delayMicroseconds(560);
pulseIR(540);
delayMicroseconds(1620);
pulseIR(560);
delayMicroseconds(1640);
pulseIR(560);
delayMicroseconds(1620);


break;

da pra vc usar isso aqui:


int date[13][71]={
{8820,4380,560,1640,560,1620,540,1640,560,560,520,580,520,560,540,560,520,1640,560,560,520,1660,520,1640,560,1620,560,1640,540,560,540,1620,560,560,520,1640,560,560,520,580,520,560,540,560,520,560,540,560,520,560,(540),560,520,1640,540,1640,560,1640,540,1640,540,1640,560,1620,560,1640,540,38240,8820,2200,560},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},
{},

};

void Controle(char data) {

switch(data){
case '1': //teclas do botão 1

for(char i=1; i<=72; i+=2 ) // verifica todas as posiçoes
{
pulseIR(date[1][i]); // sempre impar
delayMicroseconds(i+1); // sempre par
}
break;

e fazer isso com o resto, economiza memoria e linhas do codigo!!!!!!

Estava lendo isso hoje - o Sketch do Arduino pode gastar 5 vezes mais bytes do que um programa C usando um compilador AVR GCC, 

http://www.nongnu.org/avr-libc/

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço