sábado, 4 de enero de 2014

Arduino Histeresis, retardo o tolerancia de una medida

Normalmente se le llama histeresis a una tolerancia o retardo que tiene un material. Imaginemos que nuestro arduino esta midiendo la temperatura de un liquido que tiene que empezar a fluir a los 30ºC y tiene una tolerancia de 2ºC pues nuestro liquido fluiría entre los 28 y los 32ºC.

De esta forma nosotros podríamos calentar el liquido hasta alcanzar los 33ºC y dejar de calentarlo hasta que la temperatura leída sea menor que 30ºC pero pero superior a 28ºC....

Con esta función calculamos la histeresis de un número:

Código:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // 0x27 es la direccion del LCD 16x2

int tolerancia = 5;

void setup() 
  {
  lcd.init();
  lcd.backlight(); //enciende la iluminacion 
  }

void loop() 
  {
    Histeresis (random(-10, 10), random(-10, 10), tolerancia );
    delay(2000);
  }
// x = Es un valor fijo, por ejemplo el que hemos programado o estipulado.
// y = Puede ser el valor obtenido por una sonda.
// t = La tolerancia o magen que hemos estipulado, la histeresis.

void Histeresis (int x, int y, int t)
  {
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print("X: ");
    lcd.print(x);
    lcd.print(" Y: ");
    lcd.print(y);
    lcd.setCursor(0, 0);
    lcd.print("Tol: ");
    lcd.print(t);
    lcd.setCursor(6, 0);

    int superior, inferior = 0;
    superior = x + t; //valor fijo + tolerancia
    inferior = x - t; //valor fijo + tolerancia
    if ((y >= inferior) && (y <= superior))
      {
      lcd.print(" Si");
      }
      else
      {
      lcd.print(" No");
      }
  }



2 comentarios:

  1. holle para calcular regular la temperatura de un invernadero,podrias poner un ejmplo, por favor y explicado detalle a detalle, suponiendo que tenemos ventiladores, el codigo actual solo enciende y apaga pera de a ratitos, y tememos q que se descompngan.

    ResponderEliminar
  2. Hola, al ventilador por funcionar a intervalos no le va a pasar nada, para mantener una temperatura constante y lineal en un invernadero, lo ideal seria que el ventilador este funcionado constantemente, es decir, que guarde las últimas 5 o 10 mediciones en un array y luego hacemos la media y dependiendo de esta media si la media de la temperatura es muy alta, el ventilador girara muy rápido pero si es baja girara muy despacio o incluso se parara.

    Echale un vistazo a los videos de este canal, en el te enseña como leer y controlar las revoluciones de un ventilador: https://www.youtube.com/user/TheMultiIng/videos

    Para regular la temperatura de un invernadero recuerda que tienes extraer de el el aire caliente, el aire caliente s concentra en la parte alta del invernadero, con lo cual tienes que generar una corriente de aire entre los dos extremos del invernadero, y eso se consigue colocando un extracto en uno de los extremos en la parte alta y en el extremo contrario una entrada de aire.

    ResponderEliminar