control de temperatura para mini máquina de biodiesel

Hola buen día!
Estoy haciendo una maquina pequeña Para generar biodiesel de proyecto escolar, lo que pasa es que en una parte del proceso es necesario calentar el aceite primero a una temperatura de 50°C y después a una temperatura de 100 °C, la programación para controlar esas temperaturas ya esta, lo que me falta es la manera de elegirla, es decir, primero usare la de 50°C y después la de 100° pero hasta que yo de la orden, supongo que con un botón puedo hacerlo pero no se de que tipo de botón ni como ponerlo dentro de la programación, agradecería mucho sus sugerencias, gracias

andreaolivas3112:
Hola buen día!
Estoy haciendo una maquina pequeña Para generar biodiesel de proyecto escolar, lo que pasa es que en una parte del proceso es necesario calentar el aceite primero a una temperatura de 50°C y después a una temperatura de 100 °C, la programación para controlar esas temperaturas ya esta, lo que me falta es la manera de elegirla, es decir, primero usare la de 50°C y después la de 100° pero hasta que yo de la orden, supongo que con un botón puedo hacerlo pero no se de que tipo de botón ni como ponerlo dentro de la programación, agradecería mucho sus sugerencias, gracias

lo suyo seria contar con un selector de tres posiciones: apagado,50 y 100 y dos entradas digitales luego con un if chequeas que entrada tienes en HIGH (si ninguna de las dos ,asumes apagado)y actuas en consecuencia.

Jose tuvo una interpretación y yo tengo esta otra distinta:
Entiendo que quieres iniciar la secuencia con un boton : que suba la temperatura a 50°C y luego o presionas de nuevo ese botón o luego de un tiempo pasa a subir nuevamente hasta 100.

Cual criterio es el correcto?

Quiero que sea con un botón respectivamente, uno para 50 y uno para 100 y después de cierto tiempo se apague cada ciclo

bárbaro y? El código?

Quieres un panel de control industrial

para agregar los botones es fácil pero como vas a manejar combustible y altas temperaturas te recomiendo encarecidamente que agregues un botón de paro que este por encima de todo proceso, por seguridad, y que el panel de control este retirado de la maquina.

La seguridad es primero.

Dicho esto te repito busca seguridad industrial y manejo de combustibles en google.

Bien ahora si...

los botones deben de tener un indicador visual que indiquen que aun se esta realizando el proceso.
los botones deben de bloquearse cuando se presionen y liverarse hasta que termine el proceso.
el boton de paro debe de utilizar una interrupcion.

por lo de mas, si necesitas mas ayuda describe mejor tu proyecto.
si puedes mostrar el código o/e imágenes, mas fácil sera encontrar fallas y dar sugerencias.
saludos

float sensor = 0 ; // sensor de temperatura
int pin2 = 2 ; // orden a la resistencia
int boton = 4;

void setup (){
pinMode(pin2, OUTPUT);
pinMode(boton, INPUT);
}
void loop() {
sensor = (5*analogRead(0)*100.0)/1024;

if (sensor > 50 && sensor < 60)
{
digitalWrite(pin2,LOW); //apaga resistencia
}
else
{
digitalWrite(pin2,HIGH);
}

}

ese es el codigo que tengo para el control de temperatura de 50 y el de 100 es igual, lo pondre mas abajo solo que lo deje asi para hacer algunas pruebas, luego de que haga lo del boton ya lo aregare, gracias y si pondre boton de paro, es requisito, gracias :slight_smile:

Edita y usa tags para los códigos por favor.
Corrije esto

sensor = (5.0*analogRead(0)*100.0)/1023;

define dos botones.

float sensor 		= 0.0; // sensor de temperatura
float TempLimite 	= 0.0;

const byte Salida	= 2 ; // orden a la resistencia

const byte boton1 	= 4;
contt byte boton2 	= 5;
int boton1Last, boton2Last;

void setup (){
	Serial.begin(9600);
	pinMode(pin2, OUTPUT);
	pinMode(boton1, INPUT);
	pinMode(boton2, INPUT);
}
void loop() {

	boton1 = digitalRead(boton1);
	if (boton1 == HIGH and boton1Last = LOW) {
		Serial.print("50 °C");
		TempLimite = 50.0;
	}
	boton1Last = boton1;

	boton2 = digitalRead(boton2);
	if (boton2 == HIGH and boton2Last = LOW) {
		Serial.print("100 °C");
		TempLimite = 100.0;
	}
	boton2Last = boton2;	

	sensor = (analogRead(0)*500.0)/1023; // 5.0 * 100.00 = 500.0

	if (sensor > TempLimite) {
  		digitalWrite(Salida,LOW); //apaga resistencia
	}
	else {
		digitalWrite(Salida,HIGH);
	}
}

yo quitaría el botón y pondría un temporizador, cuando este el tiempo necesario a 50º que pase automáticamente a calentar hasta 100º

Te digo lo mismo que en el otro post, aunque sea aceite de casa es inflamable, por no hablar del metoxido deberías usar equipo ATEX o puedes acabar quemando el edificio

el codigo que me pasas me marca errores y no puedo hacerlo con temporizador porque la resistencia llega hasta 200 grados y seria muy dificil controlarla, es mas facil llevar el fluido a la temperatura deseada y apagar la resistencia

AndreaOlivas, la verdad que cada vez pienso que la gente tiene menos ganas de trabajar.
3 o 4 errores simples de resolver y ni eso.

Bueno aca estan pero si no veo colaboración de tu parte.. ya sabes.

float sensor 		= 0.0; // sensor de temperatura
float TempLimite 	= 0.0;

const byte Salida	= 2 ; // orden a la resistencia

const byte pin1 	= 4;
const byte pin2 	= 5;
int boton1, boton2;
int boton1Last, boton2Last;

void setup (){
	Serial.begin(9600);
	pinMode(pin2, OUTPUT);
	pinMode(boton1, INPUT);
	pinMode(boton2, INPUT);
}
void loop() {

	boton1 = digitalRead(pin1);
	if (boton1 == HIGH && boton1Last == LOW) {
		Serial.print("50 °C");
		TempLimite = 50.0;
	}
	boton1Last = boton1;

	boton2 = digitalRead(pin2);
	if (boton2 == HIGH && boton2Last == LOW) {
		Serial.print("100 °C");
		TempLimite = 100.0;
	}
	boton2Last = boton2;	

	sensor = (analogRead(0)*500.0)/1023; // 5.0 * 100.00 = 500.0

	if (sensor > TempLimite) {
  		digitalWrite(Salida,LOW); //apaga resistencia
	}
	else {
		digitalWrite(Salida,HIGH);
	}
}

Y la excusa de novato no sirve. Hay que trabajar y preguntar las dudas, sino no se aprende nada.

le juro que trate de encontrar el error y volverlo a hacer pero no encontre respuesta y disculpeme por ser novata, gracias por su ayuda

bueno, si me dices que lo intentaste me doy por satisfecho.

Solo para que quede claro. Boton1 ajusta TempLimite a 50 y Boton2 a 100.
Eso no se detiene nunca o lo mantiene a T1 o a T2 pero nunca deja de funcionar. Al menos por ahora.

Y presta mucha atención a la recomendación de Go_zalo que tiene experiencia con productos inflamables como tu caso.