Эмулятор для мотора направления потока воды в ПММ на Ардуино

Для начала зачем и почему. Это статейка про то, как сделал попытку сделать костыль для посудомоечной машины Bosch SPV43M10. Для начала следует отметить что я не имею всей нужной исходной информации про данную ПММ.

Сразу фото того, что вышло — вот такой блок для управления мотором направлений ПММ:

dishwaher_bosh_repaire_003 002-002

Например я четко понимаю что отгорел вывод процессора, который отвечает за работу насоса направления.

Однако на плате есть еще три канала управления на симисторах (работающих от 220В то есть) и как минимум несколько каналов управления на реле. Вероятно в один из каналов на основе реле включен тен. К сожалению опять же более полной информации про подключения модуля EPG60613 у меня просто нет.

Для начала сделал плату аналогичную указанной схеме, на три канала.

acled[1]

схема из опто-развязывателя с ибея, продается за 15 долларов. Спаял бесплатно. Вывел каналы попарно, на разъем JST-XH. Оптроны завел на D8/D7/D6 Ардуино Нано Р3. Использовал старую, чиненную плату на основе ch340/328p. В ней есть рабочий сторожевой таймер, что немаловажно.

emul_bosh_dishwasher 001-001

Входная схема для 220-ти заработал сразу. Наличие сигнала на входе означает 0-ль вы Д-входах ардуины.

Распаял твердотельное реле, на основе LH1500AA.

bosch_dishwasher_override 001-001

Все собрал и оттестировал.

dishwaher_bosh_repaire_003 001-001

Пример простейшей программы:

void setup() {
  pinMode(3, OUTPUT);
  digitalWrite(3, HIGH); 

  pinMode(6, INPUT); //5-6 220v - low is circulating
  pinMode(7, INPUT); //3-4 220v - low is pumping out
  pinMode(8, INPUT); //1-2 220v - low  additional channel, not used
  delay(1000);
}

void loop()
{

  if (
       digitalRead(6) == LOW // circulating 5-6 on?
&&   digitalRead(7) == HIGH // pump 1-2 off?
  
  ) 
  {
    digitalWrite(3, LOW); // on on 1 sec
    delay(1500);            

    digitalWrite(3, HIGH); // off
    delay(4000);               
  }
  else
  {
    digitalWrite(3, HIGH); // off
  }
  
  
   delay(1000);  // wait 1 sec  
}

Теперь ожидаю что дадут схему соединений машинки  и подключу блок к МУ машинки. Логика очевидно будт включать через какие-то промежутки времени мотор. Потом логику. наверное, придется усложнить.

Кстати, аналогичный блок управления предложили за 125$.

UPD. Схемы не дали. Подключаюсь опираясь на цветах проводов.

UPD. Подключил, использовал только 220в и подключение цирк насоса. Пока не отлаживал, просто в слепую запустил, Посуду моем но конкретно там щелкает какими-то клапанами. И иногда E05 дает. Будет отладка…

UPD. Рабочий вариант программы:

 

#include <avr/wdt.h>

int f_6; // flag to start rotation 1 cycle

void setup()
{
  Serial.begin(9600);
  delay(500);
  Serial.print("Init\n");

  pinMode(3, OUTPUT);
  digitalWrite(3, HIGH);
  //  digitalWrite(3, LOW);

  pinMode(6, INPUT); //5-6 220v - low is POWER ON
  pinMode(7, INPUT); //3-4 220v - n/a
  pinMode(8, INPUT); //1-2 220v - n/a
  delay(1000);

    wdt_enable(WDTO_8S);

}

void loop()
{
  if (  digitalRead(6) == LOW  )
    Serial.print("6!\n");
  else{
    f_6=0; 
    Serial.print("f_6->0!\n");
  }

  if (  digitalRead(7) == LOW  )
    Serial.print("7!\n");

  if (  digitalRead(8) == LOW  )
    Serial.print("8!\n");

  if (  digitalRead(6) == LOW )
  {
    f_6 =f_6>20?20:f_6+1;
    Serial.print("f_6=");
    Serial.print(f_6);
    Serial.print("\n");

  }  

  if (f_6 ==20 )
  {
    f_6=0;

    Serial.print("rotate \n");
    digitalWrite(3, LOW); // on on 3 sec
    delay(1500);

    Serial.print("Event High\n");
    digitalWrite(3, HIGH); // off 2 minute
  }

  //  {

  delay(500);  // wait 1 sec
  wdt_reset();

}

По сути задействовано два канала, подключены к «красным» силовым проводам и к 220в. Смысл программы в том, что если в течение 20-ти циклов будет присутствовать напряжение на одном из силовых проводов, то повернуть двигатель направления, и начать новый отсчет. Симистор мотора направления я выпаял, и подключил туда выводы собранного твердотельного реле

UPD. Изменил тайминги. Проверил сколько раз включается мотор. Около 30-ти. Не совсем оптимально только во время нагрева. Пока не трогаю. Программу изменил, но новой версии не выкладываю. Практически тоже самое.

 

 

Эмулятор для мотора направления потока воды в ПММ на Ардуино: 3 комментария

  1. Уведомление: Продолжение с посудомойкой Bosch SPV43M10 (не успешный ремонт блока управления EPG60613 Melecs 9000683387) | Хроники фрилансера

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *