sexta-feira, 7 de agosto de 2015

Utilizando módulo Ethernet

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"

#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); 
}


É necessário importar a biblioteca EtherCard e colocar no diretório das bibliotecas do Arduino
 "Arduino/libraries" 
  • O protótipo foi testado em uma LAN
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário