martes, 5 de enero de 2016

Control relés con una bombilla simulando motor lavadora - 2º intento



Este segundo intento ha sido satisfactorio. En la primera ocasión se me bajaba el magnetotérmico de la vivienda y se me fundió dos optoacopladores de la placa del módulo de 8 relés.

Básicamente lo que he hecho es esto indicado en el boceto de abajo.




Para evitar fluctuaciones se le pone en su salida enparalelo de la carga, en este caso una bombilla, un condensador y resistencia en serie como indica abajo.
Con condensador y resistencia.




En mi caso no he hecho nada de esto, lo comento para que lo sepan, son medidas de seguridad. En mi caso he puesto una bombilla de bajo consumo de 12 W frente a las antiguas de 100 W que tenía guardada desde hace mucho tiempo. A parte de ello, el ejemplo conmuta cada 10 segundos así se evita fluctuaciones y no saltan los magnetotérmicos.

Código de ejemplo básico de Arduino:
// include el código de la librería.
#include

// Inicializa la librería con sus pines indicados.
// RS, RW, Enable, D4, D5, D6, D7.
LiquidCrystal lcd(8, NULL, 9, 4, 5, 6, 7);

unsigned long inicio, fin, transcurrido;
long Veces = 0;

int LuzFondo = 10; // Pin 10 para saber que es luz de fondo.

void setup()
{
   // Formato de pantalla.
  lcd.begin(16, 2);
  lcd.print("Foro ELECTRONICA");

  /*
  delay(2000);
  lcd.setCursor(0,0);
  lcd.print("Cambio de giro  ");
  lcd.setCursor(0,1);
  lcd.print("motor lavadora. ");
  delay(2000);
  lcd.clear(); // Limpia la pantalla.
  lcd.setCursor(0,0); // En el primer carácter y primera fila.
*/

  pinMode(3,OUTPUT);
  pinMode(2,OUTPUT);
  pinMode(LuzFondo,OUTPUT);

  digitalWrite(LuzFondo, HIGH);
  digitalWrite(2, !LOW);
  lcd.setCursor(3,1); // RL 1.
  lcd.print("1 OFF");
  digitalWrite(3, !LOW);
  lcd.setCursor(9,1); // RL 2.
  lcd.print("2 OFF");
  Serial.begin(115200);
}

void loop()
{
  lcd.setCursor(0,1);
  lcd.print(inicio=millis()/15000); // 15 seg. antes de empezar.

     for (int i=0; i <= 10; i++)
   {

  digitalWrite(2, !HIGH);
  lcd.setCursor(3,1); // RL 1.
  lcd.print("1 ON ");
  delay(10000);

  digitalWrite(2, !LOW);
  lcd.setCursor(3,1); // RL 1.
  lcd.print("1 OFF");
  delay(10000);

  digitalWrite(3, !HIGH);
  lcd.setCursor(9,1); // RL 2.
  lcd.print("2 ON ");
  delay(10000);

  digitalWrite(3, !LOW);
  lcd.setCursor(9,1); // RL 2.
  lcd.print("2 OFF");
  delay(10000);

Veces++;
 lcd.setCursor(0,1);
 lcd.print(Veces);
 
  }

  while (true);

     // Cuando llegue aquí, tiene que pararse el motor siempre.
     // No se que instrucciones darle para que lo haga.
}








Vídeo:

Siguiendo el proyecto principal de crear una placa.

No hay comentarios: