Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa
 

Neste tutorial será demonstrado uma maneira de se utilizar o módulo ethernet HR911105A

Masteriais necessários:
  • módulo ethernet HR911105A
  • Arduino UNO
  • Protoboard
  • 1 resistor de 560
  • 1 LED
  • 1 potenciômetro de 2k
  • Fios para realizar as conexões
É importante que se faça as conexões ao Arduino com o mesmo desligado de qualquer fonte de alimentação, para que evitar qualquer sobre tensão nos pinos do Arduino.
Pinos arduino -->  Pinos módulo ethernet
8 --> CS
11 -->  SI
12 --> SO
13 -->        SCK
Após realizar as conexões entre as placas faça as ligações para usar o led, e o potenciômetro:
Conecte o terminal cátodo(chanfro) do led no resistor e o resistor no GND do arduino. O outro terminal do led(ânodo) a porta digital 3 do arduino.
O potenciômetro deve ter os dois terminais da extremidade conectados no GND e no 5V do arduino(um terminal em cada portad do arduino), e o terminal do meio conectado a porta analogica 0 do arduino
Veja abaixo o esquema das ligações finalizadas:
LIGAÇÕES FINALIZADAS
Segue abaixo o códido para ler o valor do potenciômetro e mandar para o o IP definido na variavel "myip"
 
{code}
#include
#include
 
//interface mac do ethernet deve ser unico na LAN
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
 
//ip usado na minha rede local
static byte myip[] = {1,0,0,52};
byte Ethernet::buffer[500];
BufferFiller bfill;
 
//Definicoes do buffer
#define TX_RX_MAX_BUF_SIZE 2048
#define TX_BUF 0x1100
#define RX_BUF (TX_BUF+TX_RX_MAX_BUF_SIZE)
 
//Constantes dos pinos
const int led = 3;
 
//definição de variaveis
int val; //valores do potenciometro;
int microSec = 0;
 
void setup () {
pinMode(led, OUTPUT);
Serial.begin(9600);
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
Serial.println( "Failed to access Ethernet controller");
ether.staticSetup(myip);
SPI.begin();
}
 
static word homePage(int val) {
bfill = ether.tcpOffset();
bfill.emit_p(PSTR(
"HTTP/1.0 200 OK\r\n"
"Content-Type: text/html\r\n"
"Pragma: no-cache\r\n"
"\r\n"
" "
"$D"), val);
return bfill.position();
}
 
void chamaPagina(){
word len = ether.packetReceive();
word posi = ether.packetLoop(len);
if(posi){ // verifica se foi recebido dados de tcp valido
ether.httpServerReply(homePage(val)); // envia dados para pagina web
}
}
 
void loop () {
if(micros()>4000000) asm volatile (" jmp 0");
val = map(analogRead(0), 0, 1023, 0, 255);
analogWrite(led, val);
Serial.println(val);
chamaPagina();
delay(200);
}
{/code}
 
 
Notas:
  • É necessário importar a biblioteca EtherCard e colocar no diretório das bibliotecas do Arduino "Arduino/libraries"
Baixar biblioteca
  • O protótipo foi testado em uma LAN
 
Vídeo do funcionamento: {youtube}FLRjB9lir7w{/youtube}