Go Down

Topic: Programación timer con comando 0-10v (Read 252 times) previous topic - next topic

SATjaimerepiso

Hola muy buenas, no consigo realizar un proyecto para controlar un tiempo que dependa de una señal 0-10v.
Por ejemplo, entrada 1v quiero que regule 7 segundos ON- 4 minutos OFF, entrada 10v que regule 7 segundos ON- 1 minuto OFF de manera consecutiva y sin botón de activación solo con la entrada 0-10v.
Haber si alguien me puede echar una mano le estaré muy agradecido.
Un saludo y enhorabuena por el foro y lo que se aprende en el.

_jose_

#1
Apr 12, 2019, 04:00 pm Last Edit: Apr 12, 2019, 04:01 pm by _jose_
de entrada ,el voltaje maximo en una entrada analogica(o digital) en placas como la UNO,Nano,Mega es de 5v.Como solucion facil podrias hacer un divisor de tension con dos resistencias iguales para que el maximo fuera 5v y multiplicar la lectura por dos una vez pasado a voltios.En cuanto a lo  del tiempo ,entiendo que son ciclos de apagado-encendido,es decir ,mientras que la entrada sea de 1v -> 7s on-240s off,7s on-240s off,7s on -240s off.........?

SATjaimerepiso

Muchas gracias José, decirte que no tendría problema en realizar la entrada con una señal de 0-5v ya que el controlador que proporciona esta señal se puede ajustar el voltaje máximo y mínimo y su rango de trabajo.
Respecto a los tiempos es tal y como lo describes, necesito que con esa señal variable de 0-5v me cambié un ciclo de temporización con mucha precision, con esto quiero decir que la entrada podría ser 1,1v, 1,2, 1.3,....y los tiempos tendrían que variar respectivamente.
Un saludo y muchísimas gracias por la ayuda.


_jose_

#3
Apr 13, 2019, 10:09 pm Last Edit: Apr 13, 2019, 10:10 pm by _jose_
La manera de hacerlo dependera de si la relacion entre el valor leido y el tiempo on-off correspondiente se puede calcular a partir de la lectura o bien no tiene nada que ver por lo que entonces necesitarias tener almacenado ,en un array por ejemplo,los valores de tiempo correspondientes y sus valores de voltaje asociados.

SATjaimerepiso

Si que llevan una relación según aumente el voltaje en la entrada 0-5v disminuiría el tiempo da parada "off" manteniendo estable el tiempo de encendido "on" , la relación que mejor se ajustaría sería
0,1v- 240seg OFF/, 5 seg ON
4,9v- 015seg OFF/, 5 seg ON

_jose_

#5
Apr 15, 2019, 07:58 pm Last Edit: Apr 15, 2019, 07:59 pm by _jose_
Puedes empezar con esto que es muy basico  e investigar para adaptarlo o mejorarlo,por ejemplo si el arduino solo va a temporizar ,con delay te vale,pero si quieres hacer algo mas de mientras ,tendras que investigar la funcion millis (mira en documentacion) y añadir una variable booleana a modo de flag que indique cuando se esta en una temporizacion.
Code: [Select]
#define VOLT A0 // pin de la entrada analogica A0
#define PIN_SALIDA 13 // Pin de salida 13 para ver led de la placa
#define TIEMPO_ON 5000 // 5 segundos
int lectura,tiempoOff; //
void setup() {
  pinMode(PIN_SALIDA,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  lectura = analogRead(VOLT);
  tiempoOff = map(lectura,0,1023,240,15);
  Serial.println(tiempoOff);
  digitalWrite(PIN_SALIDA,HIGH);
  delay(TIEMPO_ON);
  digitalWrite(PIN_SALIDA,LOW);
  delay(tiempoOff * 1000);
}

SATjaimerepiso

Muchas gracias, creo que esto me va a ser de gran ayuda, voy a probarlo y ha investigar todo lo que pueda, haber si consigo mi objetivo.
Te informaré sobre los progresos. Gracias de nuevo

SATjaimerepiso

Buenas noches, tras varias pruebas y muchas modificaciones, no consigo que la función "map" me funcione bien
Haber si me se explicar bien, yo tengo puesto lo siguiente ahora.
map(lectura,0,1023,60,10)
0v =30seg
5v=10 seg
Correcto no?
Pues todo va bien hasta que bajo la entrada por debajo de 3v hay deja de funcionar y de temporizar y los tiempos reales que me da son:
5v - 10seg off
3v - 30seg off
Por debajo de 3 deja de funcionar.
También intercambie la salida LOW y HIGH y el.pin de salida 13 por el 10 para conectar un relé pero en eso todo perfecto.
Gracias un saludo

_jose_

Postea el sketch que estas usando (usa los tags adecuados para postear codigo).

Go Up