O teste completo envolve o uso do slot microSD. Você pode usar apenas ele ou pode usar o w5100 sem o acesso ao cartão. Aproveitando essa independência, certifique-se de que você já tenha sido capaz de colocar o shield para funcionar usando os exemplos que vem com o IDE Arduino. Não tente partir direto para um teste completo, quando você pode testar as partes primeiro.
Tenha em mente que ao lidar com arquivos no arduino você vai precisar voltar no tempo e relembrar (ou se familiarizar com) as diferenças entre FAT16 (FAT) e FAT32 e suas limitações. Em geral, o menor denominador comum, garantido de funcionar em todos os casos, será um cartão de até 2GB formatado em FAT16 (FAT). Maior que isso ou formatado com outro sistema e você poderá ter problemas.
Testando o w5100 (arduino 0022 ou 1.01):
File->Examples->Ethernet->Webserver
Altere o endereço IP no sketch para que combine com sua rede e tente acessá-lo usando o browser. Se tudo correr bem você verá uma lista dos valores nas entradas analógicas do arduino.
Testando o slot microSD (arduino 0022 ou 1.01):
File->Examples->SD->Files
Coloque o cartão no slot e abra o monitor serial. Se tudo estiver OK você verá algo parecido com isto:
1 2 3 4 5 6 |
Initializing SD card...initialization done. example.txt doesn't exist. Creating example.txt... example.txt exists. Removing example.txt... example.txt doesn't exist. |
Se você encontrar algo muito diferente, como a mensagem “initialization failed!”, não adianta prosseguir com o teste completo. Verifique se o cartão está corretamente formatado. Testado com um cartão FAT16 de 2GB e com um cartão FAT32 de 8GB.
Teste completo
Requerimentos:
- Um cartão microSD corretamente formatado. Eu padronizei meus testes com um cartão de 2GB formatado com FAT16, mas já testei sem problemas com um cartão de 8GB formatado com FAT32.
- O IDE Arduino 0022 (veja em “Previous IDE versions”). Todos os meus testes são feitos com essa versão, mas se quiser usar a versão 1.01, veja o final deste texto.
- A biblioteca SDFATlib – Extraia o conteúdo do ZIP e coloque o diretório SDfat no diretório libraries. Importante: use a versão do meu link. A versão mais recente não compila no arduino 0022.
- O sketch SDWebBrowse da Adafruit (use a versão .pde)
Mude o sketch para o IP refletir a configuração da sua rede (digamos que seja 192.168.254.177).
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; byte ip[] = { 192, 168, 254, 177 }; Server server(80);
Coloque um cartão no slot e faça o upload do sketch
Importante: sem um cartão corretamente formatado e com arquivos no slot, o exemplo da adafruit vai ficar travado. Nem sequer responderá a um ping.
Agora, de qualquer browser, tente acessar o arduino direto pelo IP: http://192.168.254.177/
A resposta deverá ser a lista de arquivos no cartão. Atenção: este sketch não tem a capacidade de entrar em pastas, nem exibir imagens. Mas você conseguirá ver o conteúdo de arquivos .txt.
Outro modo de testar é abrindo o monitor serial. Se algo der errado, ele exibirá apenas algo assim:
1 2 3 |
Free RAM: 963 error: card.init failed! SD error: 1,0 |
Mas se estiver tudo certo aparecerá uma lista completa do conteúdo do cartão.
1 2 3 4 5 6 7 8 9 10 11 12 |
Free RAM: 963 Volume is FAT16 Files found in root: SYSTEM/ 2010-05-09 23:47:54 AUDIO/ 2010-05-09 23:47:54 VIDEO/ 2010-05-09 23:47:54 IMAGE/ 2010-05-09 23:47:54 LOST.DIR/ 2012-05-14 18:22:28 LOGFILE.TXT 2012-01-01 14:45:06 1218 done |
Mensagens de erro
“‘Sd2card’ does not name a type’ – você não instalou a biblioteca SDFatlib corretamente
“cannot declare aparameter ‘client’ to be of abstract type client” – você está usando uma versão do sketch que só funciona com o Arduino 002x, no Arduino 1.x.
Arduino 1.0.1
Para que funcione na versão mais nova do IDE, siga todo o meu procedimento, fazendo as seguintes alterações:
- Use a versão mais recente de SDFATlib
- Use o sketch SDwebBrowse.ino
Apesar de eu não ter migrado ainda para essa versão do IDE, fiz um teste aqui e tudo pareceu normal
Para mais informações sobre o funcionamento dos sketches, visite a página da autora.
Leave a Comment