Arduino nano + módulo ethernet ENC28J60 + módulo s/ fio NRF24L01


#1

Boa noite pessoal.

Estou tentando ligar um arduino nano a um módulo ethernet ENC28J60 e a um módulo sem fio NRF24L01, porém as esquemáticas de ligação (se for assim mesmo que se chama aqueles DE-PARA entre módulo e arduino) de ambos os módulos utilizam os pinos 11, 12 e 13.

Vocês teriam uma dica como eu posso fazer?

Outra dúvida, vocês conhecem alguma biblioteca que converta um char* em uma struct que eu possa usar no arduino? Contruí uma, que funciona arduino mega, já procurei otimiza-la, porém o compilado, utilizando também a uip ethernet, está quase acabando a memória do nano.

Atenciosamente.
Fabricio


#2

Os 2 módulos são SPI. Dá uma olhada aqui:
https://forum.arduino.cc/index.php?topic=109750.0

Quanto ao array de char, vc quer fazer parsing pra alimentar uma struct? Não sei se é mais leve fazer split numa string ou usar o strtok_r:
p = strtok_r(NULL,":",&i);
Ou string:
string.substring(from, to)


#3

Primeiramente obrigado pela dica, com o termo “SPI” consegui pesquisar, e encontrei especificamente o que eu queria no link. Porém ainda não tive tempo de testar, vejo se monto a bancada no fim de semana e posto meus resultados aqui.
Desculpe a minha ignorância, no meu curso de sistemas de informação não aprendi tanto relacionado a robótica.

Quanto ao array de char, então, até daria pra fazer dessa forma, se o Json fosse de uma estrutura mais simples (“campo”:“valor”), porém é um pouco mais complexo, vem em uma coleção, com vários campos. A primeira versão que eu fiz do compilado eu utilizava a classe String, porém quando eu fui tentar implementa-lo no nano estourou o tamanho aceitável. Então eliminei todas as dependências (da parte que eu escrevi) da classe, reescrevi algumas funções em C, como substring, replace e indexof (isso pq eu não havia conseguido achar uma que funcionava como as das demais linguagem), usando os arrays. No fim construí uma função fromJson, que retorna uma lista encadeada das structs. (vou postar algumas das funções aqui para vc ver como ficou)

https://gist.github.com/anonymous/6d1af24d7a0ba48d8cd381e356c9a581


#4

Só um palpite; nunca se desculpe por buscar conhecimento.
Legal que seu código tá funcionando. Se tiver problema com espaço, substitua os int cujo valor não passe de 255 por byte (acá unsigned char).
flw!


#5

Boas dicas muito bem vindas, vou fazer os testes aqui. Abrass