Mi utilidad práctica para arduino+LCD SHIELD

Buen proyecto!

Yo tengo una estufa de pellets, la abriré y te enviré una foto para que veas los componentes de control y a ver si te ayuda en algo.

Para estos casos en los que quieres controlas pulsadores, otros elementos, etc.. mientras se realiza una pausa, se emplea la función millis() controlando el tiempo en el que comienza la pausa y el tiempo en que quieres que acabe, mira por la referencia de arduino, y en el IDE de arduino viene un ejemplo de como hacer estas pausas con la función millis(). Un saludo, te está quedando muy bien ese quemador.

Como te dicen, utiliza la función millis.

Hace poco vi un buen ejemplo donde la usaban, si lo encuentro te lo pongo. Utilizaban variables int o long:
anteriormillis=millis();
actualmillis=0;
rango=xx // siendo rango el tiempo en milisegundos que quieres que se aplique la función, el tiempo que tienes fijado en delay vamos.

Y en la cabecera de un condicional ya dentro del loop se hacía:
si actualmillis - anteriormillis >= rango:
anteriormillis=actualmillis;
bla bla bla
fSi

Lo pongo rápido y muy por encima (en pseudocódigo) para que captes un poco la idea, es sencillo en realidad.

Por cierto, ¿has seguido algún esquema público en internet para el quemador? Me gustaría echar un ojo al tema jeje

Gracias por las pistas, el tema de "millis" lo he investigado pero poco, porque los millis empiezan a contar desde que iniciamos la placa, pero también podemos modificar su valor cuando queramos ]:smiley: .
Os pongo un enlace de la página SOLARWEB con diferentes proyectos de quemadores de biomasa, a ver cuando termino el mio y hago un post chulo con "afotos"

Ya postearé resultados y mostraré mi proyecto, gracias de nuevo a todos

Me parece muy interesante tu proyecto. Lo seguiré de cerca!

Ya de paso de dejo el código al que me refería en mi anterior post, hay un ejemplo llamado BlinkWithoutDelay que usa millis(), nombre muy descriptivo vamos, el archiconocido ejemplo blink pero sin delay jej:

const int ledPin =  13;      // the number of the LED pin

int ledState = LOW;             // ledState used to set the LED
long previousMillis = 0;        // will store last time LED was updated

long intervalOn = 500;           // medio segundo  ON
long intervalOff = 5000;         // cinco segundos OFF
void setup() {
  pinMode(ledPin, OUTPUT);      
}

void loop()
{
  unsigned long currentMillis = millis();
  if (ledState == LOW) {
    if(currentMillis - previousMillis > intervalOff) {
            previousMillis = currentMillis;   
            ledState = HIGH;
    }
 } else {
    if(currentMillis - previousMillis > intervalOn) {
           previousMillis = currentMillis;   
          ledState = LOW;
    }
 }
 digitalWrite(ledPin, ledState); 
}

Ya contarás como va saliendo el invento! :slight_smile:

Interesante proyecto y al precio que esta el gasoleo como que es para inventar.

Los elementos básicos a manejar son el ventilador, para el que preveo 2 marchas de velocidad (con la ayuda de una placa cebek para este fin),...

Me imagino que te refieres al modulo cebek CE-R10 para motores monofasicos a 220V.

Hola mcdohl, hace un tiempo vi una librería muy interesante que podría llegar a aplicarse a tu problema.
Se trata de la declaración de un Timmer al cual se le asigna una función y un intervalo en milisegundos.
De esta manera lo que haces es que se ejecute una función cada x milisegundos...

Podrías hacer una función que tome el valor leido de los pulsadores y se ejecute cada 500 ms
Es una idea tentativa, habría que revisarlo un poco mas detenidamente.
Algo así:

#include <MsTimer2.h>

int lcd_key=0;

void updateLCD_Key() {
   lcd_key = read_LCD_buttons();
}

void setup() {
  
  MsTimer2::set(5000, updateLCD_Key); // 500ms period
  MsTimer2::start();
}

int i =0;

void loop() {
 
}

Esta idea aporta una visión distinta al problema y.... de alguna manera busca evitar los if que a futuro los vas a tener diseminados en todo el código. Creo que de esta manera harías mas clara la programación.

La librería la puedes encontrar en
http://www.arduino.cc/playground/Main/MsTimer2

Cuéntame que te parece el enfoque

Suerte con eso!!!

¡Ya tengo escrito el código!, ¡¡¡los millis son el futuro!!!
Estas funciones van de lujo que te crujo, también para poner la temperatura del termostato. Lo postearé mañana por si le sirve a alguien de ayuda. Gracias a todos

¿mcdohl te vas inspirando en algo en cuanto a medidas del quemador y demás? ¿O lo vas haciendo a ojo? Porque la verdad es que me gustaría echar un vistazo a algún documento donde se explique un poco los principios de funcionamiento, características, el encendido y demás jeje.

¿Donde vas a usarlo por cierto? Porque en el enlace que pusiste vi post tuyos hablando de un horno de piedra, ¿vas a utilizarlo en eso?

Un saludo

Buenas

No tengo ni idea de usar Arduino, pero quiero empezar a toquetearlo un poco. A ver si alguien me puede orientar...
Quiero controlar en un quemador de biomasa la velocidad de un ventilador y la velocidad del sinfin (pararlos y arrancarlos también), dependiendo de la temperatura. También quiero hacer funcionar la bomba de recirculación del agua y el tiro en función de la temperatura. Qué necesito??

Mil Gracias

velapublicidad:
Buenas

No tengo ni idea de usar Arduino, pero quiero empezar a toquetearlo un poco. A ver si alguien me puede orientar...
Quiero controlar en un quemador de biomasa la velocidad de un ventilador y la velocidad del sinfin (pararlos y arrancarlos también), dependiendo de la temperatura. También quiero hacer funcionar la bomba de recirculación del agua y el tiro en función de la temperatura. Qué necesito??

Mil Gracias

necesitas primero aprender a utilizar un Arduino, esto te puede llevar unas semanas o unos meses depende del tiempo que tengas. Aprende a encender y apagar un LED, luego un rele, ejemplos faciles.
luego ya te meteras en algo tan elaborado como controlar un quemador.
mira mi firma
suerte

ya se que primero tengo que aprender, pero quiero saber qué placa comprar y esas cosas básicas para no gastar dos veces

Para lo que quieres hacer con una placa Arduino UNO es suficiente, hay con los consejos que te da nuestro amigo @Sergegsx empezar a hacer pequeñas cositas para ir aprendiendo.

Links para aprender
http://arduino.cc/playground/Es/Es
http://www.arduino.cc/es/Tutorial/HomePage
http://arduino.cc/playground/Main/InterfacingWithHardware
http://www.arduteka.com/

http://wiki.webdearde.com/index.php?title=Tutorial:_Comenzando_con_Arduino

velapublicidad:
ya se que primero tengo que aprender, pero quiero saber qué placa comprar y esas cosas básicas para no gastar dos veces

me parece correcto, pero preparate para ir comprando cosas, y muchas por duplicado para hacer pruebas etc
te recomiendo que si tienes pacienda (15dias) compres lo sigiuente en ebay:
2 x arduino uno (dos porque así puedes hacer pruebas)
placa de prototipos para montar el circuito
cables
sensores temperatura DS18B20 http://www.ebay.com/itm/1PCS-DALLAS-DS18B20-18B20-TO-92-Thermometer-Temperature-Sensor-55-C-TO-125-C-/221124700611?pt=LH_DefaultDomain_0&hash=item337c0f29c3
fuente alimentación para arduino 7V o 9V
pantalla lcd, mejor si es I2C para no usar tantos cables http://www.ebay.com/itm/IIC-I2C-TWI-Serial-LCD-2004-20x4-Module-Shield-Display-Blue-Arduino-competible-/290728681866?pt=LH_DefaultDomain_0&hash=item43b0c7a18a
4 channel relay ( o los que necesites ) http://www.ebay.com/itm/4-Channels-5V-Relay-Module-For-Arduino-ARM-PIC-AVR-DSP-/290803907966?pt=LH_DefaultDomain_0&hash=item43b5437d7e
leds, resistencias

suerte

Hola y saludos, mcdohl yo estoy empezando casi al revés que tu, mira quiero empezar por la programación del arduino, la verdad que de programación no tengo ni idea con lo cual quiero seguir este post de cerca, también tengo una pregunta para todos si es posible,ya poseo la placa arduino duemilanove me estoy familiarizando con ella, y tengo barias dudas pero preguntare poco a poco.
Por ejemplo como puedo hacer para controlar que me encienda la resistencia unos dos minutos, a la vez que tenga el motor del ventilador en marcha es decir tener mas de una función en marcha.
Creo que pido mucho... pero haber si aprendemos un poco...gracias de antemano...

Hola a todos. Refloto este hilo para continuar con el tema. Tengo pedido un arduino mega y algunas cosas mas para controlar un quemador de biomasa. Es mi primera experiencia con arduino aunque si tengo algun conocimiento de programación en C. Empezare a trastearlo en cuanto me llegue.Conforme vaya avanzando ire preguntado cosas. ¿Porque son necesarios dos arduinos para las pruebas? No sirve con uno solamente. Muchas gracias.

Saludos.

Sirve con uno solo, pero conforme hagas pruebas veras que te pueden hacer falta mas. Al menos esta es mi experiencia.
Un arduino lo montas con el proyecto que estas desarrollando, el otro arduino lo utilizas para hacer pruebas de los diferentes modulos o secciones que quieres aprender para añadir al proyecto.
De esta forma puedes usar el arduino de pruebas junto con el codigo solo de lo que estas probando y el sensor o lo que sea.

Gracias por responder.
Ahora entiendo lo de tener dos arduinos.
Como en principio no voy a empezar con el proyecto, sino que dedicare un tiempo a aprender a programar y familiarizarme con él, me valdra con uno. En cuanto pille soltura pillare otro para lo que propones.

Muchas gracias.

Estoy intentando hacer un menu al cual acceder mediante la pulsacion de un encoder rotativo con boton. He visto ejemplos de menus con botonera y de lectura de encoder. Me lio al unir todo.