Например TDA7294

Форум РадиоКот • Просмотр темы - Контролер насоса на Attini13
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб янв 03, 2026 04:02:38

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 30 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Контролер насоса на Attini13
СообщениеДобавлено: Вт июн 16, 2020 08:38:33 
Открыл глаза

Зарегистрирован: Ср ноя 09, 2016 13:25:39
Сообщений: 43
Рейтинг сообщения: 0
Здраствуйте. Для включения насоса (откачка канализации) по двум датчикам (нижний и высокий уровень) сделал управление на микроконтролере по такой программе:
Спойлер
Код:
#define OUT     PB1     // выход на помпу
#define butHIGH PB3     //датчик HIGH
#define butLOW  PB4     //датчика LOW
#define butUSER PB2     //кнопка ручного режима
#define LED     PB0     //индикатор ручного режима

boolean B_HIGH, B_LOW, B_USER, MOTOR = 0;
//unsigned long timer;

void startPomp() {              //функция запуск помпи
 digitalWrite(OUT, HIGH);
 digitalWrite(LED, HIGH);
 }
void stopPomp() {              //функция остановки помпи
 digitalWrite(OUT, LOW);
 digitalWrite(LED, LOW);
 }
 
void setup() {
  pinMode(butLOW, INPUT_PULLUP);
  pinMode(butHIGH, INPUT_PULLUP);
  pinMode(butUSER, INPUT_PULLUP);
  pinMode(OUT, OUTPUT);
  pinMode(LED, OUTPUT);
}

void loop()  {
  B_HIGH = !digitalRead(butHIGH); // считать текущее положение датчика HIGH
  B_LOW  = !digitalRead(butLOW);  // считать текущее положение датчика LOW
  B_USER = digitalRead(butUSER);  // считать текущее положение датчика USER 
  delay(100);
   if(B_USER == false){
    startPomp();
    }
     else
           if (B_HIGH == false & B_LOW == false) {
              digitalWrite(OUT, HIGH);
              }
     else
           if (B_HIGH == true & B_LOW == true) {
              stopPomp();
              }
}

Но, как показала практика, периодически микроконтролер ложно срабатывает из-за внешних наводок. Думаю нужно сделать чтоб по таймеру (раз в 5 мин) проверял состояние датчиков. Вот переделал код, в протеусе работает, подскажите на ошибки. И еще, помогите добавить кнопку для включения в ручном режиме (если датчики выйдут из строя) и функцию отключение выхода при ложном срабатывании (при долгом включении может сгореть обмотка пускателя):
Спойлер
Код:
/*
* Контролер фекального насоса.
*/

#define F_CPU 1200000UL
#define OUT     PB1
#define butHIGH PB3
#define butLOW  PB4
#define butUSER PB2
#define LED     PB0

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

unsigned char timer1 = 20; //установка времени  ТМ/4  5 секунд
//unsigned char motor=0;
volatile unsigned char temp=0;

// Оброботчик прерывания по таймеру TIMER0
ISR(TIM0_OVF_vect){
   temp++;
}

int main(void)
{
   // Датчики
   DDRB &= ~((1<<butLOW)|(1<<butHIGH)|(1<<butUSER)); // входы
   PORTB |= (1<<butLOW)|(1<<butHIGH)|(1<<butUSER); // подтянуты
   // Выход
   DDRB |= (1<<OUT)|(1<<LED);     // выход
   PORTB &= ~(1<<OUT)|~(1<<LED); // выключен

   // Настраиваем таймер
   TIMSK0 = (1<<TOIE0);  // Включаем таймер TIMER0
   TCCR0B = (1<<CS02) | (1<<CS00); // Пределитель таймера на 1/1024

   // Задаем режим сна
   MCUCR &= ~(1<<SM1); // idle mode
   MCUCR &= ~(1<<SM0); // idle mode
   MCUCR |= (1<<SE);
   sei();
   
   while (1)
   {
      // Засываем до прерывания по таймеру
       asm("sleep");
      // Таймер сработал
      TIMSK0 &= ~ (1<<TOIE0);  // Останавливаем TIMER0
         
      if( temp >= timer1 )
      {             
            if ( (PINB & (1<<butLOW)) && (PINB & (1<<butHIGH)) ) // если сработали нижний и верхний датчики (високий уровень)
             {
                PORTB |= (1<<OUT);  // ПУСК насоса               
             }      
      temp=0;   
       }
      if  (!(PINB & (1<<butLOW)))  // если сработал нижний датчик
        {
             PORTB &= ~(1<<OUT);  // СТОП насоса 
        }            
        TIMSK0 = (1<<TOIE0);     // Включаем таймер TIMER0
        sei();
    }
return 0;
}

Заранее спасибо!


Вложения:
таймер.zip [85.83 KiB]
Скачиваний: 207
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Вт июн 16, 2020 09:25:18 
Друг Кота
Аватар пользователя

Карма: 52
Рейтинг сообщений: 2114
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 7059
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
ууу...каналья....тысяча червей! :)
а как сделаны сами контакты? на КНС делали всяко - датчики мрут от ядовитости среды, собрали поплавок из огнетушителя и длинный шток туда, где меньше испарений, там магнит и герконы.... (это хоть както работало...)
для воды делал уровнемеры на тини13 с ёмкостным измерением, а от наводок хорошо помогает перепроверка (проверил несколько раз, если всё 0, значит уровень точно низкий, если всё 1, значит высокий, а если и те и те, то такой замер игнорируем) сами замеры раз в секунду, если мотор проработает секунд на 5-10 дольше положенного, то ничего страшного...
ограничение времени работы мотора тоже делается элементарно - пока мотор работает => считает счётчик...
а там или отключение или сигнализация

_________________
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Вт июн 16, 2020 11:10:00 
Друг Кота

Карма: 14
Рейтинг сообщений: 372
Зарегистрирован: Вс фев 15, 2009 01:04:58
Сообщений: 5066
Откуда: Kaluga
Рейтинг сообщения: 0
Герконы и магнит надо заливать в брусочки из эпоксидки.... Поплавок лучше полиэтилен - он самый стойкий. Емкостные датчики хорошо работают только по чистой воде. По грязной поплавок, причем поворотный с узлом поворота выше максимального уровня или дистанционный - ультразвуковой при больших перепадах уровня.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Вт июн 16, 2020 11:13:31 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15340
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Скорее проблемы с самими датчиками...
Как оные реализованы?
:roll:


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Вт июн 16, 2020 12:11:09 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1480
Рейтинг сообщения: 0
Угу, МК по кмоп технологии без опторазвязки. Конечно будут сбои от любой наводки, любой помехи.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Вт июн 16, 2020 12:31:25 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
Если именно наводки, аналогичные дребезгу контактов - то и решайте их как антидребезг программный делается. Вы же проверяете хоть и раз в 5 минут, а всё-равно только один раз. Где гарантия, что не словите наводку за этот один раз? Надо в течение определенного времени следить за состоянием пина. Вас вообще устроит, что насос может откачать всё, и еще будет 5 минут и более работать (из-за того же "дребезга") пока МК спит?

Предусмотрите внештатные ситуации. Что делать, например, если верхний датчик сработал, а нижний как бы нет (отвалился)? По хорошему надо сигнализировать неисправность и наверное кратковременно включать насос до пропадания сигнала с верхнего датчика или по таймеру. Так во всяком случае переполнения резервуара избежите.


Вернуться наверх
 
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Вт июн 16, 2020 19:21:00 
Здраствуйте. Для включения насоса (откачка канализации) по двум датчикам (нижний и высокий уровень) сделал управление на микроконтролере

Насколько надёжны Ваши датчики уровня? Если датчики срабатывают без замечаний, то надёжный алгоритм работы насоса написать не сложно (могу предложить свой вариант алгоритма). :) Что из себя представляют датчики?


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Ср июн 17, 2020 08:28:47 
Открыл глаза

Зарегистрирован: Ср ноя 09, 2016 13:25:39
Сообщений: 43
Рейтинг сообщения: 0
Wladimir_TS писал(а):
Как оные реализованы?

датчики геркон, герметичные (мадеинКитая). Выход МК идет на оптопару, так как делал управление на симисторе. Симистор долго не выдержал, моЩных долго ждать), заменил на транзистор + реле и пускатель. Так как длина шлейфа датчиков около 10 м, на входах МК поставил конденсатор 103 и стабилитрон 4,7В. Пока без наводок. Блок питания на 5 В от зарядки.
Demiurg писал(а):
Вас вообще устроит, что насос может откачать всё, и еще будет 5 минут и более работать (из-за того же "дребезга") пока МК спит?

По коду, если работает насос МК не спит. На крайняк насос с поплавком, отключится.

Добавлено after 1 hour 16 minutes 7 seconds:
NStorm писал(а):
Что делать, например, если верхний датчик сработал, а нижний как бы нет (отвалился)? По хорошему надо сигнализировать неисправность и наверное кратковременно включать насос до пропадания сигнала с верхнего датчика или по таймеру. Так во всяком случае переполнения резервуара избежите.

Тут Вы правы, не предусмотрел


Вернуться наверх
 
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Ср июн 17, 2020 08:49:17 
Ваше устройство я бы предложил сделать по такой схеме: :)

СпойлерИзображение


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Ср июн 17, 2020 09:14:43 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15340
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Одно замечание...
Удаленные контактные датчики (независимо механика или электронный ключ) предпочтительно кормить от источника тока...
К примеру...
СпойлерИзображение

:roll:
О сработке...
Собственно там не в герконе (или ином датчике магнитного поля) вопрос, а в корректности (и стабильности) движения поплавка при имеющейся механической конструкции.
8)

Для простого водяного бака в древни времена было еще вот такое чудейко:
СпойлерИзображение

но... оное чудо контактное, и работало на долив водички (при размещении не далее 2 метров от датчиков)...
:roll:


Вернуться наверх
 
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Ср июн 17, 2020 09:36:42 
Одно замечание...
Удаленные контактные датчики (независимо механика или электронный ключ) предпочтительно кормить от источника тока...

Это заблуждение. :) В промышленности я не встречал использование источников тока для дискретных сигналов. :dont_know: Все дискретные сигналы организованы так как я нарисовал. :)


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Ср июн 17, 2020 11:08:57 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15340
Откуда: ДОНЕЦК
Рейтинг сообщения: 3
20-мА токовая петля...
:roll:
Такое подключение снимает вопрос подбора балластного резистора в зависимости от длины линии связи и снижает требования к источнику питания.
Если решение удачно для линий связи, то почему бы и не использовать в относительно "медленном" режиме?
Тем более, что затраты минимальны - LM317 да резистор 68 ом.
8)


Вернуться наверх
 
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Ср июн 17, 2020 12:43:08 
Унифицированный сигнал 4 – 20 мА, 0 – 20 мА, используется для передачи аналоговых сигналов, а не дискретных. Для входных цепей дискретных сигналов как правило используют оптопары. Это и гальваническая развязка и некая помехоустойчивость. Так как оптопара работает в широком диапазоне токов, то нет никакой необходимости использовать источник тока. :dont_know: Даже при удалении дискретного датчика на 1000 м и при среднем сопротивлении провода 1 Ом/м, то дополнительное сопротивление в 1 кОм никак не повлияет на работоспособность входной схемы. :)


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Ср июн 17, 2020 14:05:38 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1480
Рейтинг сообщения: 0
ТС. Напиши здесь что-то вроде ТЗ. Как должен работать насос. О программе ни слова. Ты хочешь готовый продукт. Вот и пиши, как он должен работать. Датчики, насос, кнопки, светодиоды.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Ср июн 17, 2020 15:30:48 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15340
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Застращали топикстартера...
:(


Вернуться наверх
 
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Чт июн 18, 2020 21:09:21 
Вот немного загрустил… и чтобы развлечься написал алгоритм управления насосом для выше предложенной мной схемы:
https://radiokot.ru/forum/viewtopic.php ... 1#p3856201
Традиционно, МК тактируется на заводских установках (1,2 МГц), прошивать фьюзы не нужно.
Вложение:
Pump.hex


Краткое описание алгоритма:
Насос работает по датчикам уровня. При замыкании верхнего уровня включается насос на откачку. Если контакт нижнего уровня разомкнут, то устройство считает это как неисправность датчика нижнего уровня и продолжительность работы насоса составит 5 минут. Если датчик нижнего уровня был замкнут, то насос будет работать пока контакты нижнего уровня не разомкнутся. При остановке насоса по любой причине, повторный запуск осуществится только после 5 минутного отдыха.
При ручном управлении включения насоса от кнопки (кратковременно нажать кнопку), включается ручной режим. Насос в данном режиме будет работать до повторного нажатия на кнопку. Повторное нажатие отключает насос и снимает ручной режим. При ручном режиме состояние датчиков не контролируется.
Светодиод: Сигнализирует о включении или отключении насоса. Если светодиод мигает, то насос работает по таймеру.


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Пт июн 19, 2020 10:48:59 
Вымогатель припоя

Карма: -8
Рейтинг сообщений: 49
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 615
Рейтинг сообщения: 0
Датчики лучше включать как НЗ контакты. Что будет, если отгниёт провод верхнего датчика? Потоп. Датчиков надо 3 штуки, один аварийный.

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Пт июн 19, 2020 12:31:34 
Открыл глаза

Зарегистрирован: Ср ноя 09, 2016 13:25:39
Сообщений: 43
Рейтинг сообщения: 0
Самсусамыч, код можете выложить? В будущем переделаю подключение датчиков по Вашей схеме. Сейчас пока работает. Еще вопрос: блок питания для МК и реле лучше сделать на трансформаторе или оставить импульсное?


Вернуться наверх
 
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Пт июн 19, 2020 14:45:12 
Датчики лучше включать как НЗ контакты.

Чем лучше?
dgrett писал(а):
Что будет, если отгниёт провод верхнего датчика? Потоп. Датчиков надо 3 штуки, один аварийный.

Что будет если отгниёт аварийный датчик? Потоп. :))) Так можно до бесконечности датчики дублировать… чтобы таких случаев не было, проводят периодически ревизию… :)

Добавлено after 2 minutes 59 seconds:
блок питания для МК и реле лучше сделать на трансформаторе или оставить импульсное?

Если оба БП выполнены по Феншую, то необходимо отталкиваться от качества питающего напряжения. Если и в данном случае всё нормуль, то без разницы какой использовать БП. :)

Цитата:
код можете выложить?

Легко… :)
исходник на АВ (Algorithm Builder):
Вложение:
brusel2.zip


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: Контролер насоса на Attini13
СообщениеДобавлено: Пт июн 19, 2020 18:55:14 
Вымогатель припоя

Карма: -8
Рейтинг сообщений: 49
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 615
Рейтинг сообщения: 1
Если отгниёт какой угодно датчик с норм замкнутыми контактами - это авария. Сирена, сигнализация, фейерверк и тд. что угодно. Встречались мне разработчики, спроектировавшие аварийный стоп (красный гриб) с Н.О. контактами. Можешь хоть всю кнопку спи...ть - хрена ты остановишь станок. Заставил переделывать. Подумай сам(сусамыч).
Из того же геркона с НО делается датчик с НЗ. То есть понадобится реально 3 датчика, а не 1 с тремя герконами и одним поплавком. Нижний датчик также должен размыкаться по достижении нижнего уровня.
Геркон надо брать побольше(есть по 4-5 см длиной). Мелкие малонадёжные. Уже их туеву хучу поменял в охранных сигнализациях.

Добавлено after 16 minutes 31 second:
А по нормальному ставить по 2 датчика на уровень. Тиня 13 столько ног не имеет, но можно извратиться с регистром. Тогда и 3х ног хватит. И анализ датчиков позволит решить, а не отвалился ли часом датчик. Трудно только на один уровень установить. Или герконы датчиков одного уровня соединить последовательно.

Добавлено after 35 minutes 19 seconds:
Самсусамыч, в Вашей схеме надо бы подмять линию к земле резюком параллельно конду 100n. И питалово можно до 24В поднять. Резюк по минимуму наводок и потреблению (если важно). Я, правда, слаб в схемотехнике, но чисто интуитивно.

Добавлено after 1 hour 22 minutes 53 seconds:
Я тут заикнулся про охранную сигнализацию. Так вот, централь знает, датчик в порядке, отвалился, закорочен, замкнут, разомкнут. Для этого убираем РС817, последовательно с герконом резюк и параллельно резюк. Возле контроллера обвешиваем кондами, придавливаем к земле и подаём на вход АЦП. Резисторы рассчитать так, чтоб определить перечисленные выше состояния. Резисторы непосредственно у датчика.

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y