Boa tarde pessoal, estou usando ethernet w5100 e RFID com arduino uno, e como ambos se comunicam por SPI andei lendo e é necessário usar o pino SS diferente para os módulos, então defini para o RFID o pino SS assim 

#include <RFID.h>
#define SS_PIN 6

Então quando uso o shield ethernet w5100 acoplado ao uno tudo funciona normal.

Mas tenho um outro ethernet que tambem é w5100 mas não é shield, e pretendo usar ele já que vou fazer uma plaquina com ele e o microcontrolador, não utilizarei o uno.

Bem diante disso estou montando na protobord e com este módulo apenas a parte de ethernet funciona, consigo abrir no browser tudo certinho, mas o RFID nada, e estou usando mesma ligação e sketch.

Algo a contribuir pessoal, alguma coisa que não estou vendo.

Segue foto e sketch.

Grato.

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include <SPI.h>
#include <String.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // Endereço Mac
byte ip[] = { 192, 168, 0, 130 }; // Endereço de Ip da sua Rede
EthernetServer server(80); // Porta de serviço

#include <RFID.h>
#define SS_PIN 6
#define RST_PIN 9
RFID rfid(SS_PIN, RST_PIN);
int led = 7; // Pino onde deve ser ligado o led de teste
String readString = String(30); // string para buscar dados de endereço
boolean statusLed = false; // Variável para o status do led

void setup(){
Ethernet.begin(mac, ip);
pinMode(led, OUTPUT);
Serial.begin(9600);
SPI.begin();
rfid.init();
}
void loop(){
if (rfid.isCard()) {
if (rfid.readCardSerial()) {
if (rfid.serNum[0]
) {
Serial.println(rfid.serNum[0],DEC);
digitalWrite(led, HIGH);
statusLed = true;
delay(500);
digitalWrite(led, LOW);
}
}
}
rfid.halt();
// Criar uma conexão de cliente
EthernetClient client = server.available();
if (client) {
while (client.connected())
{
if (client.available())
{
char c = client.read();
// ler caractere por caractere vindo do HTTP
if (readString.length() < 30)
{
// armazena os caracteres para string
readString += (c);
}

//se o pedido HTTP terminou
if (c == '\n')
{


// dados HTML de saída começando com cabeçalho padrão
client.println("HTTP/1.0 200 OK");
client.println("Content-Type: text/html");
client.println();

// client.print("<font size='20'>");
if (statusLed) {
client.print(rfid.serNum[0],DEC);

} else {
client.print("Passe o Cartao ");
}
// separa as linhas
client.print("<P>");

readString="";

// parar cliente
client.stop();
}
}
}
}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Exibições: 202

Anexos

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço