20 сентября 2013

Автоматический насос

image Для автоматического включения насоса и откачки воды из ямы гаража было сделано незамысловатое устройство из 3х поплавков - c герконовыми датчиками, микроконтроллера, реле и блока питания.

Использовался простой и дешёвый МК MSP430, переделать код и схему подключения для Arduino не составит особого труда.



Код для IDE Energia:

/*

 Подключение поплавковых выключателей так же как подключение кнопок 
 через 10 килоомный резистор подключеный к земле.
 Насос погружной, нижняя часть находится между датчиками B и C.
 |    _    |
 |_A | |   |
 |~~~| |~~~|
 |_B | |   |
 |   \o/   |
 |_С       |
 |_________|
 */


const int Apin = 8; //PIN верхнего поплавка
const int Bpin = 9; //PIN нижнего поплавка
const int Cpin = 10;    //PIN аварийного поплавка

const int PumpRelayPin = 13; //PIN насосного релле

boolean floatA = 0; //Состояние верхнего поплавка
boolean floatB = 0; //Состояние нижнего поплавка 
boolean floatC = 0; //Состояние аварийного поплавка 

boolean Pumpttriger = 0; //Текущее состояние насосного релле (1-ON, 0-OFF)

void setup(){

  pinMode (Apin,INPUT); //Цифровой PIN верхнего поплавка входной 
  pinMode (Bpin,INPUT); //Цифровой PIN нижнего поплавка входной
  pinMode (Cpin,INPUT); //Цифровой PIN аварийного поплавка входной
  pinMode (PumpRelayPin,OUTPUT); //цифровой PIN насосного релле выходной
  pinMode(RED_LED, OUTPUT);  
  // initialize serial communication:
  Serial.begin(9600);
  digitalWrite(RED_LED, HIGH); 
  delay (1000);
  digitalWrite(RED_LED, LOW); 
}

void loop(){

  delay(1000);

  floatA = digitalRead(Apin); //Читает состояние PIMа верхнего поплавка и запоминает его
  floatB = digitalRead(Bpin); //Читает состояние PIMа нижнего поплавка и запоминает его
  floatC = digitalRead(Cpin); //Читает состояние PIMа аварийного поплавка и запоминает его

  if (floatA + floatB == 2) //Условие запуска насоса
  {
    Serial.println("Pump on");
    Pumpttriger=1;
  }

  if(floatA+floatB==0) //Условие Остановки насоса 
  {
    Serial.println("Pump off");
    Pumpttriger=0;
  }

  //Условие Аварийной Остановки насоса при сработке датчика аварийного поплавка

  if (floatC==0) {
    Serial.println("Pump STOP!"); 
    Pumpttriger=0;
  }

  if(Pumpttriger==1)
  {
    digitalWrite(PumpRelayPin,HIGH);
    digitalWrite(RED_LED, HIGH); 
  }
  else
  {
    digitalWrite(PumpRelayPin,LOW);
    digitalWrite(RED_LED, LOW); 
  }
}



Сборка датчиков. Для каркаса использовался пластиковый уголок и стяжки. Кабель - витая пара с RJ-45.

  image

image

image 

Схема подключения MSP430.

  image

 Внутренняя сборка. (Виден блок питания 220V-5V, конвертор 5V-3.3V (для питания МК), силовое реле и сам МК MSP430 с небольшим обвесом)

  image

image

 Готовое устройство. 

  image

image

p/s На некоторые реле необходима подача низкого, а не высокого уровня сигнала.

comments powered by HyperComments