Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Estación meteorológica v2 - giltesa
#61
Ok, pero ya te digo que lo importante no es el cable, sino que el código ignore los ruidos y rebotes.

Enviado desde mi bq Aquaris mediante Tapatalk
Citar
#62
Bueno, definitivamente, el problema que tengo es con el ruido electromagnético..., he dejado el sistema con un cable ethernet de 4 hilos, trenzados 2 a 2 pero sin apantallar, y despues de unas 40 horas ha detectado 240 cambios en la interrupción externa.

He pillado un cable del curro Ethernet de 4 hilos siemens apantallado, y esta tarde lo dejare monitorizando otros 2 días a ver si viene por ahi el problema.

Si con esto tampoco soluciono el problema, buscaré por internet el pluviómetro cableado de fabrica, que seguro que les ha quedado mejor que a mi Facepalm

Saludos!! Mola
Citar
#63
Y si usas el código que colgué?
Las interrupciones son estupendas para capturar eventos rápidos, que no es el caso del balanceo de la cazoleta, y en cambio pilla todos los ruidos y rebotes.

Enviado desde mi bq Aquaris mediante Tapatalk
Citar
#64
Ok, esta tarde cuando llegue a casa le cambio el código que me pusiste que tiene buena pinta, porque siguen entrando pulsos por la int0 Triste

Me molaba la idea de utilizar la interrupción para sacar esa gestión del loop principal, tenia pensado dormir el arduino y que despertara por interrupción de eventos de las int0-1, o evento del puerto serie porque posiblemente lo alimente una batería externa, pero bueno, si con esto me quito todos estos problemas dejare la gestión del sensor dentro del loop Sonrisa

Gracias de nuevo!
S2!!
Citar
#65
Otra dudilla que me surge...

La resistencia pull-down o pull-up por ejemplo para un sensor electromagnético, que es mejor?
ponerla cerca del sensor?, o ponerla cerca del arduino? , es decir, en que extremo del cable??
Siendo el cable entre el sensor y el arduino + de un metro como este caso del pluviómetro.

Gracias!!
Saludos! Mola
Citar
#66
Bueno, despues de unos dias de prueba con el código que me pasaste jfelipe no le entran pulsos causados por el ruido que pillaba en la interrupción externa Mola

Ahora tengo que esperar unos días.... por intentar mejorar la plaquita donde va el sensor que lo habia dejado muy cerca del elemento que oscila, me he cargado la ampoya del mismo... Facepalm

He tenido que pedir unos al ebay, así que toca esperar un poco para seguir con las pruebas

Gracias de nuevo!
S2!! Mola
Citar
#67
Me alegro de que te haya funcionado.
Con respecto al relé reed (la ampollita de cristal) no sé si tendrás tiendas de electrónica cerca, pero es común. También sé que en algunos montajes lo sustituyen por un sensor hall, pero no te sé decir la referencia ni el esquema.
Y no te contesté a dónde colocar la resistencia porque no lo sé si es mejor cerca o fuera, en el sensor, perdona.
Citar
#68
Muchas gracias jfelipe!!

Buff, aqui cerca en Soria pocas tiendas hay, no creo que en ninguna tengan. Lo más cercano Logroño o Zaragoza Triste

Ya me han llegado las ampollas, ya la he instalado en el pluviómetro y lo voy a dejar de nuevo tomando muestras a ver que tal va con las ultimas modificaciones!!

Me pediré algún sensor de los que me dices de efecto hall para trastear a ver que tal van.
La resistencia pull-down la he soldado dentro de la placa del pluviometro.

Gracias de nuevo!
Saludos!! Mola
Citar
#69
jfelipe escribió:Ahora que vamos a cambiar la hora este fin de semana, ¿te has planteado que haga el cambio de horario verano/invierno automáticamente?
Si lo usas no lo he visto.
Yo lo apliqué hace unos años para un fraile del tiempo que hice con arduino. Posteriormente he cambiado algunas cosas, y aún tengo pendiente actualizar la página, pero lo puedes ver en frailedeltiempo.wordpress.com
Utilizaba el algoritmo de Zeller para calcular el día de la semana de una fecha dada. Y a partir de ahí hace el cambio el último domingo de Marzo y el último deomingo de Octubre.
Lo tengo bastante olvidado, pero lo buscaré.

He mejorado la librería que tenia para los relojes DS1307 y DS3231 añadiéndole la funcionalidad de cambio de hora automática con el algoritmo de Zeller, también añadí algunos métodos mas para facilitar su uso.

Ejemplo de cambio:





Código:
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g( U8G_I2C_OPT_NONE );

#include <Wire.h>
#include <RTC.h>
RTC rtc(DST_ON);


static unsigned char sun[] U8G_PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x10, 0x08, 0xC0, 0x03,
  0xE0, 0x07, 0xE4, 0x27, 0xE0, 0x07, 0xE0, 0x07, 0xC0, 0x03, 0x10, 0x08,
  0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
};

static unsigned char moon[] U8G_PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x30, 0x00,
  0x70, 0x00, 0x70, 0x00, 0xF0, 0x00, 0xF0, 0x0B, 0xE0, 0x0F, 0xC0, 0x03,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};


void setup( void )
{
    Serial.begin(9600);
    while(!Serial);

    u8g.setColorIndex(1);
}


void loop( void )
{
    if( Serial.available() > 0 )
    {
        int year    = Serial.parseInt();
        int month   = Serial.parseInt();
        int day     = Serial.parseInt();
        int hour24h = Serial.parseInt();
        int minutes = Serial.parseInt();
        int seconds = Serial.parseInt();
        rtc.setDateTime( year, month, day, hour24h, minutes, seconds );
        while( Serial.available() > 0 && Serial.read() != -1 );
    }

    Data d = rtc.getData();
    u8g.firstPage();
    do{
        u8g.setFont( u8g_font_unifont );
        u8g.drawStr( 25, 33, d.toString("d/m/Y").c_str() );
        u8g.drawStr( 35, 47, d.toString("H:i:s").c_str() );
        u8g.drawXBMP( 0, 0, 16, 16, (d.dst ? sun : moon) );
    }
    while( u8g.nextPage() );

    delay( 1000 );
}
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Estacion Meteorologica Triggerr 261 23,730 21-01-2017, 10:43 PM
Último mensaje: cna