Надоел мне вечно клинящий и текущий кран отопителя на 31105 крайслер. Решил заморочиться но сделать все правильно. Колхоз в виде крана с ручкой и лазания под капот меня не устраивает, поэтому было принято решение купить вот такую штуку
http://www.aliexpress.com/item/3-wa...ric-ball-valve-motorized-valve/710923612.html за 20 баксов.
Кран приехал.
Выполнен весьма качественно. пластик жесткий, плотный.
Сам кран так же на вид весьма качественно собран.
Вскрываем корпус. Внутри редуктор с моторчиком и небольшая платка, логика работы которой - вращать двигатель в разные стороны в зависимости от полярности. Так же в корпусе установлены концевики крайних положений, что меня несказанно порадовало.
Продавец, редиска, обманул - обещал , что все шестерни металлические. Ну хотя бы оси у них реально металлические. Особенно меня порадовала шестерня состоящая из двух половинок - метал и пластик. Ну что же, посмотрим, как это будет работать в боевых условиях.
Плата была сразу же удалена так как во первых не подходила под логику работы контролера климатики, а во вторых хотелось сделать собственный контроллер.
Зная логику контроллера климатики не составило труда собрать схему из PIC12F683 и L293D . Плату изготовил методом ЛУТ, софт написал сам
в MPLabX, компилятор HI-TECH PICC
Код:
/*
* File: main.c
* Author: kuai6
*
* Created on 30 Январь 2014 г., 22:42
*/
#include <htc.h>
#include <stdio.h>
#include <stdlib.h>
/*
*
*/
void init()
{
// Основной конфиг
__CONFIG(FOSC_INTOSCIO & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_OFF & CPD_OFF & BOREN_OFF & IESO_ON & FCMEN_OFF);
ADCON0 = 0;
ANSEL = 0;
TRISIO0 = 0;
TRISIO1 = 0;
TRISIO2 = 1;
TRISIO3 = 1;
TRISIO4 = 1;
TRISIO5 = 1;
GPIO = 0b000000;
}
void turnLeft(void)
{
GPIO = 0b000001;
}
void turnRight(void)
{
GPIO = 0b000010;
}
void motorStop(void)
{
GPIO = 0b000000;
}
int isOpen(void)
{
return (GP3 ==1);
}
int isClosed(void)
{
return (GP2 == 1);
}
void doOpen(void)
{
turnLeft();
while(isOpen() ==0){}
motorStop();
}
void doClose(void)
{
turnRight();
while(isClosed() == 0){}
motorStop();
}
int main()
{
init();
while(1)
{
if(GP4 == 0 && GP5 == 1 && isClosed())
{
doOpen();
}
else if(GP5 == 0 && GP4 == 1 && isOpen())
{
doClose();
}
}
}
Сорцы, скомпилированный hex и рисунок платы в Dip Trace лежит в архиве внизу поста.
На выходных проведу первые тесты, отпишусь по результатам.
По мимо всего прочего к крану придется прикупить три штуцера , типо таких
http://www.termomir31.ru/catalog/?SECTION_ID=2364&ELEMENT_ID=141152
И один уголок, чтобы попасть под штатный изгиб патрубков
З.Ы. Это, так сказать, прототип, если решение понравится, можно выпустить малую серию