Autor Tema: Programar con arduino nano dos relevadores  (Leído 540 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RamonGarcia

  • PIC10
  • *
  • Mensajes: 16
Programar con arduino nano dos relevadores
« en: 29 de Junio de 2022, 19:31:23 »
Buenas, alguien podría ayudarme a programar un arduino nano por favor, que pueda hacer lo siguiente:
que con un boton1 active relevador1 pero a su vez con un boton2 desactive relevador1

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 571
Re:Programar con arduino nano dos relevadores
« Respuesta #1 en: 29 de Junio de 2022, 22:50:31 »
Hola, básicamente deseas hacer un enclavamiento marcha/parada.
Bueno, que tienes hecho hasta el momento?
sobre todo en la parte del soft.

Desconectado RamonGarcia

  • PIC10
  • *
  • Mensajes: 16
Re:Programar con arduino nano dos relevadores
« Respuesta #2 en: 30 de Junio de 2022, 11:43:50 »
Hola, llevo esto quiero hacerlo con mas reles pero de igual forma quiero que haga el mismo funcionamiento, podrías ayudarme!



  // DECLARAMOS LAS VARIABLES QUE INDICAN LOS PINES QUE VAMOS A UTILIZAR
  int s1 =  A1;                // Para el pin que controlará el pulsador del relé 1
  int k1 = 5;                  // Para el pin que controlará el relé 1

  int s2 =  A2;                // Para el pin que controlará el pulsador del relé 2
  int k2 = 4;                // Para el pin que controlará el relé 2

  int s3 =  A3;                // Para el pin que controlará el pulsador del relé 3
  int k3 = 3;                // Para el pin que controlará el relé 3

  int s4 =  A4;                // Para el pin que controlará el pulsador del relé 3
  int k4 = 2;                // Para el pin que controlará el relé 3

  int s5 =  A5;                // Para el pin que controlará el pulsador del relé 3
  int k5 = 6;                // Para el pin que controlará el relé 3

  int s7 =  A7;                // Para el pin que controlará el pulsador del relé 3
  int k6 = 7;                // Para el pin que controlará el relé 3
 
 
  int valor_temporal_1 = 0;                // Esta variable la utilizamos para almacenar el valor hasta el final de la comprobación del rele1
  int valor_temporal_2 = 0;                // Esta variable la utilizamos para almacenar el valor hasta el final de la comprobación del rele2
  int valor_temporal_3 = 0;                // Esta variable la utilizamos para almacenar el valor hasta el final de la comprobación del rele3
  int valor_temporal_4 = 0;                // Esta variable la utilizamos para almacenar el valor hasta el final de la comprobación del rele4
  int valor_temporal_5 = 0;                // Esta variable la utilizamos para almacenar el valor hasta el final de la comprobación del rele5
  int valor_temporal_6 = 0;                // Esta variable la utilizamos para almacenar el valor hasta el final de la comprobación del rele6
  int pulso_temporal = 0;                  // Esta variable la utilizamos para leer en cada rele el estado de su pulsador

 
void setup() {
 
  // Declaramos los pines que vamos a utilizar y el tipo que van a tener dichos pines
  pinMode(k1, OUTPUT);      // Para activar el rele 1
  pinMode(s1, INPUT);       // Para leer el interruptor que activa el rele 1

  pinMode(k2, OUTPUT);      // Para activar el rele 2
  pinMode(s2, INPUT);       // Para leer el interruptor que activa el rele 2

  pinMode(k3, OUTPUT);      // Para activar el rele 3
  pinMode(s3, INPUT);       // Para leer el interruptor que activa el rele 3

  pinMode(k4, OUTPUT);      // Para activar el rele 4
  pinMode(s4, INPUT);       // Para leer el interruptor que activa el rele 4

  pinMode(k5, OUTPUT);      // Para activar el rele 5
  pinMode(s5, INPUT);       // Para leer el interruptor que activa el rele 5

  pinMode(k6, OUTPUT);      // Para activar el rele 6
  pinMode(s7, INPUT);       // Para leer el interruptor que activa el rele 6
 
  digitalWrite(k1,LOW);     //apagamos las salida para inicializar el programa rele 1
  digitalWrite(k2,LOW);     //apagamos las salida para inicializar el programa rele 2
  digitalWrite(k3,LOW);     //apagamos las salida para inicializar el programa rele 3
  digitalWrite(k4,LOW);     //apagamos las salida para inicializar el programa rele 4
  digitalWrite(k5,LOW);     //apagamos las salida para inicializar el programa rele 5
  digitalWrite(k6,LOW);     //apagamos las salida para inicializar el programa rele 6
}

void loop() {

  // PARA EL PULSADOR 1
  pulso_temporal = digitalRead(s1);    // leemos el valor del estado del pulsador correspondiente
  if (pulso_temporal == HIGH) {
    valor_temporal_1 = !valor_temporal_1 ;         // le asignamos el valor contrario del que tenia antes el pulsador 1
    delay(200);
  }
  if (valor_temporal_1 == HIGH) {
    digitalWrite(k1, HIGH);          // si antes estaba apagado ahora la pasamos a activar el rele 1
  }
  else {
    digitalWrite(k1, LOW);           // si antes estaba encendida ahora la pasamos a apagar el rele 1
  }

  // PARA EL PULSADOR 2
  pulso_temporal = digitalRead(s2);   // leemos el valor del estado del pulsador correspondiente
  if (pulso_temporal == HIGH) {
    valor_temporal_2 = !valor_temporal_2 ;        // le asignamos el valor contrario del que tenia antes el pulsador 2
    delay(200);
  }
  if (valor_temporal_2 == HIGH) {
    digitalWrite(k2, HIGH);          // si antes estaba apagado ahora la pasamos a activar el rele 2
  }
  else {
    digitalWrite(k2, LOW);           // si antes estaba encendida ahora la pasamos a apagar el rele 2
  }

   // PARA EL PULSADOR 3
  pulso_temporal = digitalRead(s3);
  if (pulso_temporal == HIGH) {
    valor_temporal_3 = !valor_temporal_3 ;         // le asignamos el valor contrario del que tenia antes el pulsador 3
    delay(200);
  }
  if (valor_temporal_3 == HIGH) {
    digitalWrite(k3, HIGH);           // si antes estaba apagado ahora la pasamos a activar el rele 3
  }
  else {
    digitalWrite(k3, LOW);            // si antes estaba encendida ahora la pasamos a apagar el rele 3
  }

 // PARA EL PULSADOR 4
  pulso_temporal = digitalRead(s4);
  if (pulso_temporal == HIGH) {
    valor_temporal_4 = !valor_temporal_4 ;         // le asignamos el valor contrario del que tenia antes el pulsador 4
    delay(200);
  }
  if (valor_temporal_4 == HIGH) {
    digitalWrite(k4, HIGH);           // si antes estaba apagado ahora la pasamos a activar el rele 4
  }
  else {
    digitalWrite(k4, LOW);            // si antes estaba encendida ahora la pasamos a apagar el rele 4
  }

   // PARA EL PULSADOR 5
  pulso_temporal = digitalRead(s5);
  if (pulso_temporal == HIGH) {
    valor_temporal_5 = !valor_temporal_5 ;         // le asignamos el valor contrario del que tenia antes el pulsador 5
    delay(200);
  }
  if (valor_temporal_5 == HIGH) {
    digitalWrite(k5, HIGH);           // si antes estaba apagado ahora la pasamos a activar el rele 5
  }
  else {
    digitalWrite(k5, LOW);            // si antes estaba encendida ahora la pasamos a apagar el rele 5
  }

 // PARA EL PULSADOR 6
  pulso_temporal = digitalRead(s7);
  if (pulso_temporal == HIGH) {
    valor_temporal_6 = !valor_temporal_6 ;         // le asignamos el valor contrario del que tenia antes el pulsador 6
    delay(200);
  }
  if (valor_temporal_6 == HIGH) {
    digitalWrite(k6, HIGH);           // si antes estaba apagado ahora la pasamos a activar el rele 6
  }
  else {
    digitalWrite(k6, LOW);            // si antes estaba encendida ahora la pasamos a apagar el rele 6
  }


}

Desconectado Eduardo2

  • PIC24F
  • *****
  • Mensajes: 965
Re:Programar con arduino nano dos relevadores
« Respuesta #3 en: 30 de Junio de 2022, 12:05:11 »
Pero eso no hace lo que escribiste al principio.  Esa activa/desactiva con el mismo botón.

Desconectado RamonGarcia

  • PIC10
  • *
  • Mensajes: 16
Re:Programar con arduino nano dos relevadores
« Respuesta #4 en: 30 de Junio de 2022, 13:13:53 »
Si ya vi, perdón, pero lo que pretendo hacer es que con botón1 active rele1, pero al presionar botón2, desactive rele1 y active sucesivamente rele2 y asi sucesivamente con los 6 como lo muestro en lo que ya lo tengo.