Buenos acudo como ultima instancia a la ayuda de este foro, compre una shield para mi arduino UNO, viene con 12 pines. La idea es comunicarme a traves de Modbus a un plc y hacer la lectura de una entrada analogica.
El problema es que no consigo conectarme, he probado la libreria ethercat-master que es la que aconsejan simplemente para probar como ejemplo, y mas especifico en mi caso ModbusIP_ENC28J60.h con el ejemplo de Tempsensor.
He probado a conectarlo como aconsejan en el hilo Wrong ethernet module? 12 pins on ENC28J60 - Networking, Protocols, and Devices - Arduino Forum
Arduino Module
digital 12 SO
digital 11 ST
digital 13 SCK
digital 8 CS
5V 5V
Gnd GND
Incluso conectando una fuente de alimentacion aparte. He contactado con el fabricante y no me hace mucho caso. Y la gran mayoria de lo que encuentro en la web son shields de 10 pin. Tambien he probado como dice el readme de la libreria Ethercard-master:
PIN Connections (Using Arduino UNO):
VCC - 3.3V
GND - GND
SCK - Pin 13
SO - Pin 12
SI - Pin 11
CS - Pin 10 # Selectable with the ether.begin() function
Por favor si alguien tiene mi problema una ayudita no vendria mal.
/*
Modbus-Arduino Example - TempSensor (Modbus IP ENC28J60)
Copyright by André Sarmento Barbosa
http://github.com/andresarmento/modbus-arduino
*/
#include <EtherCard.h>
#include <Modbus.h>
#include <ModbusIP_ENC28J60.h>
//Modbus Registers Offsets (0-9999)
const int SENSOR_IREG = 100;
//Used Pins
const int sensorPin = A0;
//ModbusIP object
ModbusIP mb;
long ts;
void setup() {
// The media access control (ethernet hardware) address for the shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// The IP address for the shield
byte ip[] = { 192, 168, 1, 120 };
//Config Modbus IP
mb.config(mac, ip);
// Add SENSOR_IREG register - Use addIreg() for analog Inputs
mb.addIreg(SENSOR_IREG);
ts = millis();
}
void loop() {
//Call once inside loop() - all magic here
mb.task();
//Read each two seconds
if (millis() > ts + 2000) {
ts = millis();
//Setting raw value (0-1024)
mb.Ireg(SENSOR_IREG, analogRead(sensorPin));
}
}