Pages: [1]   Go Down
Author Topic: 3 TEMPORIZADORES  (Read 2298 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bueno un saludo a todos es mi primer post, he buscado pero no encuentro un ejemplo de 3 temporizadores, tego 3 pulsadores y necesito que al pulsar cada uno de ellos generen una temporizacion de 10 minutos. Se pretende poner en marcha unas bombas durante 10 minutos en funcion del pulsador que se pulse Bomba1 pulsador 1, bomba 2 pulsador 2 y bomba 3 pulsador 3. Se hago un bucle cuando pulse el pulsador 1 no termina la temporizacion hasta que no acaban los 10minutos. Como hago para que se ejecuten mas de una temporizacion a la vez. Si teneis un ejemplo os lo agradeceria. Un saludo
Logged

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mira el ejemplo que viene con el Arduino de "Blink without Delay", ahi tienes la solución suponiendo que usaras delay, que por lo que has dicho parece que es lo que estás usando, aunque tampoco vendría mal un poco más de información.

Un saludo
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

He volcado este codigo y solo genera un parpadeo del led, que no parece que tenga limite de tiempo. Lo que quiero hacer es pulsar el boton 1 y que el led este encendido durante 10minutos y despues se apage. Esto es para temporizar 3 bombas cada una con su pulsador esten activas 10 minutos y luego se apagen.
Logged

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

El código de "BlinkwithoutDelay" modificado para hacer lo que tu dices, es lo que quería que hicieras.

Code:
#define ledPin 13;
#define button 10;
#define interval 3000;

void setup(){
  pinMode(ledPin, OUTPUT);
}

void loop(){
  while (digitalRead(button)==0){}
  digitalWrite(ledPin, HIGH)
  unsigned long previousMillis = millis();
  while (millis() - previousMillis < interval){}
  digitalWrite(ledPin, LOW);
}
Un saludo
« Last Edit: September 13, 2010, 05:06:57 pm by chiva » Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Muchas gracias, le estudio. Un saludo
Logged

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ahora que me acuerdo, al usar la función millis(), si lo tienes encendido más de unos 50 días se resetea la cuenta, por lo que puede hacer alguna cosa rara si lo pulsas poco antes de que se resetee, probablemente que se quede encendida 50 días :o
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

He revisado el codigo y me daba algunos errores que he corregido pongo el codigo por si a alguien le interesa.

#define ledPin 47
#define button 53
#define interval 6000

void setup(){
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}

void loop(){
  while (digitalRead(button)==0){}
  digitalWrite(ledPin, HIGH);
  unsigned long previousMillis = millis();
  Serial.println(previousMillis);
  while (millis() - previousMillis < interval){}
  unsigned long resta =(millis() - previousMillis);
  Serial.println(millis());
  digitalWrite(ledPin, LOW);
}

Muchas gracias por constestar, y ahora pregunto como tengo 3 pulsadores para tres maniobras distintas como implemento esto por que el bucle while no sale hasta que no recibe la condicion ; quiero decir que solo esta esperando que se pulse el pulsador 1 y de ahi no sale yo tengo 3 pulsadore cuando leerá los otros.
Logged

Pages: [1]   Go Up
Jump to: