Hola a todos, bueno, reapareci despues de mucho tiempo perdido por ahi, retome la electronica y me puse con un proyecto bien simple, quiero poder transmitir el valor de una entrada analogica a traves de la red mediante un codigo html.
Estoy utilizando el Arduino Uno y el modulo de red es un ethernet basado en el 28J60.
no tengo problemas con la coneccion, ya que puede visualizar bien el entorno en html, el problema es en la lectura de la entrada analogica, no puedo lograr que me entregue el valor correcto, este o no la señal en el puerto, lo unico que hace es incrementar el valor de 1 en 1, cosa que hace por el delay de la linea millis() / 1000,
Este es el codigo que utilizo:
#include <EtherCard.h>
static byte mymac[] = { 0xDD, 0xDD, 0xDD, 0x00, 0x01, 0x05 };
static byte myip[] = { 192, 168, 1, 10 };
byte Ethernet::buffer[700];
void setup() {
Serial.begin(9600);
pinMode (A0, INPUT);
pinMode (A1, INPUT);
if (!ether.begin(sizeof Ethernet::buffer, mymac, 10))
Serial.println("No se ha podido acceder a la controlador Ethernet");
else
Serial.println("Controlador Ethernet inicializado");
if (!ether.staticSetup(myip))
Serial.println("No se pudo establecer la dirección IP");
Serial.println();
}
static word mainPage()
{
BufferFiller bfill = ether.tcpOffset();
bfill.emit_p(PSTR(
"<html>"
"<body>"
"<div style='text-align:center;'>"
"<h3>Valores entradas A0 y A1</h3>"
"<br>Valor A1: $D <br/>"
"<br>Valor A2: $D <br/>"
"</body></html>"),
millis() / 1000,
analogRead(A0),
analogRead(A1));
return bfill.position();
}
void loop()
{
// wait for an incoming TCP packet, but ignore its contents
if (ether.packetLoop(ether.packetReceive()))
{
ether.httpServerReply(mainPage());
}
}
Alguien puede guiarme mas o menos por que pasa eso?
Gracias!
Modificacion: Ya esta solucionado, solo tuve que eliminar la linea
millis() / 1000,
y funciona sin problemas, espero que de todos modos a alguien le sirva el codigo