Go Down

Topic: Activar 6 reles con un pulsador y cada rele con su propio pulsador. (Read 10849 times) previous topic - next topic

plasrer

hola compy he modificado tu programa para que me funcione, si entener muy bien lo que hago pero me va a medias

poniendo asi los valores he logrado que cuando pulsas p1 se enciendo todo lo vuelves a pulsar y se apaga

ahora si esta apagado y pulso p2 se me enciende la salida de rele 6 que esta programada y se vuelve a apagar.

Ahora viene el problema activo pulsador p2 encendido rele 6 pulso el p1 y se me encienden todos pero vuelvo a pulsar p1 para que se  me apague todo y el R6 no se me apaga hasta que pulso el p2.

Porque??

surbyte

Tu dijiste:
Quote
un pulso del pulsador 1 se activan los 6 reles, otro pulso se apagan los 6 reles.

luego con el pulsador 2 activo el rele 1
pulsador 3 activo el rele 2
pulsador 4 activo el rele 3
pulsador 5 activo el rele 4
pulsador 6 activo el rele 5
pulsador 7 activo el rele 6
no es eso lo que hace boton1 con todos y boton2 con rele1?

plasrer

Si es lo que hace pero y ahora que tengo que hacer para que con el pulsador uno enciendo todo perfecto hay mucha luz apagó un relé con el p2 y sigue lo demás encendido ahora me voy a marchar y pulso el p1 para apagar todo pero claro el relé del p2 no lo apaga, como hago para que con p1 encienda o apague todo aunque se halla pulsado algún otro pulsador??

surbyte

Revisa el código que te había puesto, cometí 2 errores, que ahora estan resueltos y funciona como tu quieres.
Completa para boton3, a boton 7.

plasrer


plasrer

Revisa el código que te había puesto, cometí 2 errores, que ahora estan resueltos y funciona como tu quieres.
Completa para boton3, a boton 7.
Musisimas gracias ya he echo todo el codigo y funciona perfectamente, lo unico que como le quito en este programa el rebote de los pulsadores, porque me falla el rebote, quiero ponerle unos milisegundos porque segun lo pulsas a veces hace rebote y se apaga y se vuelven a encender, muchisimas gracias.

surbyte

busca en el foro antirebote o debounce.
Siempre se busca de este modo en google: Arduino debounce o Arduino antirebote
en el search de este foro, vas arriba a la derecha y solo pones debounce

plasrer

si si si mas o menos lo se pero no se donde meterlo s hace con delay (20); pero donde tengo que meterlo en el codigo

surbyte

Prueba con esta librería Bounce2

Code: [Select]
#include <Bounce2.h>

#define BUTTON_PIN_1 2
#define BUTTON_PIN_2 3


#define LED_PIN 13

// Instantiate a Bounce object
Bounce debouncer1 = Bounce();

// Instantiate another Bounce object
Bounce debouncer2 = Bounce();

void setup() {

  // Setup the first button with an internal pull-up :
  pinMode(BUTTON_PIN_1,INPUT_PULLUP);
  // After setting up the button, setup the Bounce instance :
  debouncer1.attach(BUTTON_PIN_1);
  debouncer1.interval(5); // interval in ms
 
   // Setup the second button with an internal pull-up :
  pinMode(BUTTON_PIN_2,INPUT_PULLUP);
  // After setting up the button, setup the Bounce instance :
  debouncer2.attach(BUTTON_PIN_2);
  debouncer2.interval(5); // interval in ms


  //Setup the LED :
  pinMode(LED_PIN,OUTPUT);

}

void loop() {
  // Update the Bounce instances :
  debouncer1.update();
  debouncer2.update();

  // Get the updated value :
  int value1 = debouncer1.read();
  int value2 = debouncer2.read();

  // Turn on the LED if either button is pressed :
  if ( value1 == LOW || value2 == LOW ) {
    digitalWrite(LED_PIN, HIGH );
  }
  else {
    digitalWrite(LED_PIN, LOW );
  }

}


Este es un ejemplo para que veas como usarlo.

plasrer

Prueba con esta librería Bounce2

Code: [Select]
#include <Bounce2.h>

#define BUTTON_PIN_1 2
#define BUTTON_PIN_2 3


#define LED_PIN 13

// Instantiate a Bounce object
Bounce debouncer1 = Bounce();

// Instantiate another Bounce object
Bounce debouncer2 = Bounce();

void setup() {

  // Setup the first button with an internal pull-up :
  pinMode(BUTTON_PIN_1,INPUT_PULLUP);
  // After setting up the button, setup the Bounce instance :
  debouncer1.attach(BUTTON_PIN_1);
  debouncer1.interval(5); // interval in ms
 
   // Setup the second button with an internal pull-up :
  pinMode(BUTTON_PIN_2,INPUT_PULLUP);
  // After setting up the button, setup the Bounce instance :
  debouncer2.attach(BUTTON_PIN_2);
  debouncer2.interval(5); // interval in ms


  //Setup the LED :
  pinMode(LED_PIN,OUTPUT);

}

void loop() {
  // Update the Bounce instances :
  debouncer1.update();
  debouncer2.update();

  // Get the updated value :
  int value1 = debouncer1.read();
  int value2 = debouncer2.read();

  // Turn on the LED if either button is pressed :
  if ( value1 == LOW || value2 == LOW ) {
    digitalWrite(LED_PIN, HIGH );
  }
  else {
    digitalWrite(LED_PIN, LOW );
  }

}


Este es un ejemplo para que veas como usarlo.
jejejee me has puesto una leccion nueva, ahora entonces que tengo que añadir una libreria, jejeje voy a intentarlo, gracias

plasrer

Prueba con esta librería Bounce2

Code: [Select]
#include <Bounce2.h>

#define BUTTON_PIN_1 2
#define BUTTON_PIN_2 3


#define LED_PIN 13

// Instantiate a Bounce object
Bounce debouncer1 = Bounce();

// Instantiate another Bounce object
Bounce debouncer2 = Bounce();

void setup() {

  // Setup the first button with an internal pull-up :
  pinMode(BUTTON_PIN_1,INPUT_PULLUP);
  // After setting up the button, setup the Bounce instance :
  debouncer1.attach(BUTTON_PIN_1);
  debouncer1.interval(5); // interval in ms
 
   // Setup the second button with an internal pull-up :
  pinMode(BUTTON_PIN_2,INPUT_PULLUP);
  // After setting up the button, setup the Bounce instance :
  debouncer2.attach(BUTTON_PIN_2);
  debouncer2.interval(5); // interval in ms


  //Setup the LED :
  pinMode(LED_PIN,OUTPUT);

}

void loop() {
  // Update the Bounce instances :
  debouncer1.update();
  debouncer2.update();

  // Get the updated value :
  int value1 = debouncer1.read();
  int value2 = debouncer2.read();

  // Turn on the LED if either button is pressed :
  if ( value1 == LOW || value2 == LOW ) {
    digitalWrite(LED_PIN, HIGH );
  }
  else {
    digitalWrite(LED_PIN, LOW );
  }

}


Este es un ejemplo para que veas como usarlo.

plasrer

hola compy he seguido tus pasos para la libreria pero me da error al compilarlo te dejo como lo he echo haber si me podeis decir donde esta el fallo

hay teneis todo el programa archivo p1

surbyte



surbyte

Esta en las normas del foro, te he mandado varios Privados al respecto. No es posible que vayas por el post 28 y aún no uses tags. 
Solo pegas tu código, lo seleccionas todo, y luego click en </>
Ahora no me preguntes donde esta </>, porque es la barra de íconos del editor que usas para responder. 
Vamos que no es tan dificil. En las Normas esta muy bien explicado. Acaso no las leíste?

Go Up