Já faz algum tempo que não posto nada sobre Arduino / sistemas embarcados; bom, como você já deve saber... ok, não vou usar a velha desculpa de falta de tempo.
Estou aqui para dizer que não estou estagnado no meu aprendizado sobre o Arduino e também para falar sobre minha última vitória; a mais ou menos um ano e meio, eu comprei um módulo Ethernet (ENC28J60) igual ao que segue abaixo para fazer alguns experimentos.
Acontece que eu nunca consegui fazer o mesmo funcionar; acabei apelando e comprando um Ethernet Shield (baseado no W5100) o qual funcionou sem maiores problemas. Outro dia eu estava mexendo nas minhas tralhas de eletrônica e encontrei o dito cujo (aquele que eu não havia conseguido fazer funcionar) e decidi que iria tentar novamente.
Depois de ler vários blogs, artigos, etc na internet, acabei obtendo sucesso. Abaixo segue a configuração que eu utilizei:
- Arduino Leonardo
- Esta biblioteca para acesso ao ENC28J60 com as mudanças sugeridas aqui (estas modificações são necessárias/válidas apenas para o Arduino Leonardo)
- Conexões segundo o mesmo post citado anteriormente.
Veja abaixo como ficaram as conexões:
Veja abaixo um ótimo diagrama do Arduino Leonardo.
Observe que no Arduino Mega / Uno e outros, o conector ICSP também esta conectado aos pinos normais de I/O (mas não no Leonardo).
Como eu comentei, tive que fazer uma mudança na biblioteca utilizada para acessar o módulo. Básicamente no arquivo EtherCard/enc28j60.cpp eu mudei:
void ENC28J60::initSPI () { pinMode(SS, OUTPUT); digitalWrite(SS, HIGH); // rest of the code.... }
para:
void ENC28J60::initSPI () { pinMode(10, OUTPUT); digitalWrite(10, HIGH); // rest of the code....
Isso porque o pino SS esta definido com um valor (17) diferente do pino que eu escolhi, 10.
E pronto! Depois disso foi só abrir um dos exemplos da biblioteca, modificá-lo um pouco e temos temos um web server rodando no Arduino.
O que você acha? Eu acho isso muito massa ;)
Não hesite em deixar comentários / perguntas / sugestões / críticas.
Happy Coding.
OBS: Antes de postar eu notei no esquema de pinagens que no Leornardo o pino SS (17) é o pino A3; então teóricamente é possível utilizar a biblioteca citada sem modificações (basta ligar o pino CS do módulo no pino A3 do Arduino; teóricamente pois eu não testei :)
(Read this post in English)
No comments:
Post a Comment