RaiKage

Схема Задержки Выключения На 555 Таймере

38 posts in this topic

RaiKage    0

Есть устройство с датчиком уровня жидкости на герконе (SB1). При замыкании датчика должен включиться насос, откачивающий жидкость. Уровень быстро падает и датчик размыкается. После размыкания датчика, насос должен проработать ещё 3 секунды и выключиться.

Изначально схема работала на одном транзисторе и реле.

Решил снять нагрузку с датчика, так как заряд конденсатора через него иногда приводит к залипанию.

В итоге стало понятно, что схема никуда не годится. Погуглив, решил сделать на 555 таймере.

Сброс мне не нужен, питание на схему подаётся постоянно.

А теперь вопросы:

1) верно ли я всё нарисовал?

2) подходит ли формула T=1,1R3C2? Исходя из неё и были подобраны R3=6,2MOm и C2=0,47мкФ

3) насос потребляет всего 10Вт, можно ли заменить реле на полевой транзистор?

post-174568-0-31519300-1380009119_thumb.jpg

Edited by RaiKage

Share this post


Link to post
Share on other sites

Приглашаем на вебинар «Создание беспроводных устройств на системах-на-кристалле семейства SimpleLink компании TI»

Компания Компэл, совместно с Texas Instruments приглашают 26 июня принять участие в вебинаре, где инженер по применению беспроводных технологий компании TI расскажет, как на новых беспроводных системах можно реализовать несколько полезнейших в повседневной жизни функций для ваших устройств. С развитием элементной базы TI становится возможной реализация более удобных, функциональных и безопасных систем, недоступных ранее. Вебинар проводит инженер по применению беспроводных технологий в TI Мари Хернес(будет дублированный перевод).

Подробнее...

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

Edited by Геннадий

Share this post


Link to post
Share on other sites

Видео вебинара «Уникальный подход MORNSUN к разработке DC/DC-преобразователей. Что на выходе?»

На сайте КОМПЭЛ доступны материалы вебинара, посвященные последнему поколению DC/DC преобразователей с фиксированным входом R3 от MORNSUN. Вы можете посмотреть видеозапись, ознакомиться с презентацией и ответами на вопросы.

Подробнее...

RaiKage    0

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

Понятно, спасибо. В принципе, в этом нет необходимости, так как жидкость накапливается медленно, но учту на будущее.

Share this post


Link to post
Share on other sites
RaiKage    0

Поставил транзистор вместо реле и собрал схему.

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

Не понимаю в чём дело, пайку уже три раза проверил.

R1=R2=2кОм

R3=820кОм

С1=0,01мкФ

С2=3,3мкФ

VT1-STP4NA40FI

микросхема NE555P

post-174568-0-60871200-1380097232_thumb.jpg

Share this post


Link to post
Share on other sites
RaiKage    0

Паралельно двигателю нужно поставить диод в обратном включении как у тебя стоял в первой твоей схеме паралельно катушке реле.

В смысле параллельно транзистору?

Edited by RaiKage

Share this post


Link to post
Share on other sites

Паралельно Rн( это ж у тебя обмотка двигшателя а это индуктивная нагрузка) в обратном включении диод

Edited by Электронщик

Share this post


Link to post
Share on other sites
IMXO    1495
После размыкания датчика, насос должен проработать ещё 3 секунды и выключиться

Так лучше.

А зачем там этот транзистор?

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

Понятно, спасибо. В принципе, в этом нет необходимости, так как жидкость накапливается медленно, но учту на будущее.

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

Не понимаю в чём дело, пайку уже три раза проверил.

:wall: :wall: :wall::spiteful::rtfm:
R1=R2=2кОм

R3=820кОм

С1=0,01мкФ

С2=3,3мкФ

R2 - не нужен...

R3 : не выше 300кОм....

Share this post


Link to post
Share on other sites

...Не понимаю в чём дело, пайку уже три раза проверил...

Я тебе зачем транзистор в схему добавил? Ты так и не понял. Попробуй допаяй. Подойдет любой маломощный кремниевый структуры p-n-p.

IMXO, :friends:.

Edited by Геннадий

Share this post


Link to post
Share on other sites
RaiKage    0

...Не понимаю в чём дело, пайку уже три раза проверил...

Я тебе зачем транзистор в схему добавил? Ты так и не понял. Попробуй допаяй. Подойдет любой маломощный кремниевый структуры p-n-p.

IMXO, :friends:.

Всё заработало, огромное вам спасибо за помощь)

После размыкания датчика, насос должен проработать ещё 3 секунды и выключиться

Так лучше.

А зачем там этот транзистор?

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

Понятно, спасибо. В принципе, в этом нет необходимости, так как жидкость накапливается медленно, но учту на будущее.

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

Не понимаю в чём дело, пайку уже три раза проверил.

:wall: :wall: :wall::spiteful::rtfm:
R1=R2=2кОм

R3=820кОм

С1=0,01мкФ

С2=3,3мкФ

R2 - не нужен...

R3 : не выше 300кОм....

Простите дурака, я исправлюсь. Честно!)

Спасибо вам за помощь и терпение.

Share this post


Link to post
Share on other sites
RaiKage    0

Пожалуй, выложу сюда итог, вдруг пригодится

S1 - сам датчик

M - насос

задержка выключения 2,7 секудны

post-174568-0-55745500-1380289296_thumb.png

Share this post


Link to post
Share on other sites
RaiKage    0

Оказалось, что pnp транзистор работает как диод.

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

В итоге задержка составляет 4,5 секунды. Схема отлично работает. Спасибо всем за помощь.

post-174568-0-78174300-1380647645_thumb.jpg

Share this post


Link to post
Share on other sites

Можно и так. Транзистор ставится на случай, когда источником сигнала запуска служит слаботочный выход предыдущего каскада, неспособный выдержать на себе разряд электролитического конденсатора времязадающей цепи или же обладающий высоким выходным сопротивлением.

Share this post


Link to post
Share on other sites
RaiKage    0

Можно и так. Транзистор ставится на случай, когда источником сигнала запуска служит слаботочный выход предыдущего каскада, неспособный выдержать на себе разряд электролитического конденсатора времязадающей цепи или же обладающий высоким выходным сопротивлением.

Ну да, а этот вариант как раз для случая с низким сопротивлением.

Share this post


Link to post
Share on other sites

Нужна помощь знатоков, суть такая. Есть лодочный эл. мотор, 12В, 30А. Собран ШИМ для плавной регулировки оборотов. Также сделан реверс на двух автомобильных релюшках, который включается тумблером. Все это плотно разместил в румпеле, места практически не осталось, крышка закрывается внатяг. Есть риск на полном ходу случайно нажать тумблер реверса, понятно, что эл. мотору от этого лучше не станет. Поэтому собрал таймер задержки включения реле на NE555 на 3 сек. Работает так: при вкл. тумблера включается Rel1, отключая мотор, винт останавливается, через 3 сек. включается Rel2, пуская мотор в обратную сторону. Все прекрасно работает, стабильно, НО! в одну сторону, при выключении реверса мотор включается вперед без всяких задержек, моментально. Как сделать так, чтобы была задержка не только на ВКЛЮЧЕНИЕ, но и на ВЫКЛЮЧЕНИЕ реле? Может что-то изменить в таймере? Буду рад любым ответам. post-169284-0-33774700-1413487335_thumb.jpgpost-169284-0-25143600-1413487350.jpghttp://sprinter4wd.narod.ru/poleznye_melochi/timer/

Edited by Андрей78

Share this post


Link to post
Share on other sites
Artik    161

А можно ли организовать на этой микре таймер который сможет включать лампочку на 5мин и выключать на 30 и так постоянно.

Share this post


Link to post
Share on other sites
avv_rem    355

Только на КР512ПС10 тоже не получится. 30 / 5 = 6. Но можно 2 (меандр на выходе, схема без выпендрежа), 3, 10, 30… Однако скважность 6 получится, если добавить к КР512ПС10 счетчик по модулю 6 и дешифратор.

Изучайте конец первой страницы приложенного файла.

Генератор из промышленного реле на базе КР512ПС10.pdf

Share this post


Link to post
Share on other sites
esrz    0

post-16151-0-06010800-1380023144_thumb.jpg

Так лучше.

А как переделать эту схему так чтобы при нажатии кнопки(датчика) и не отпуская её,реле отработало своё время и отключилось,но кнопка осталась во включенном состоянии.

Потом я отпускаю кнопку(реле не срабатывает),вроде как смог объяснил.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Similar Content

    • By IgnatiusF
      Не могу настроить таймер 0 на работу, и даже не получается понять в чем проблема. Делаю в Proteus, так как это быстрее и нагляднее.
      Пробовал и просто по переполнению делать прерывание (WGM[1..0]  00) и по совпадению (WGM[1..0]  10; OCR0A = 0 - 255), однако прерываний нет. Перед циклом ставлю TCNT0 = 0;
      Тактирование выставляю TCCR0B (CS[2..0] 001, 100, 101).
      Прерывания TIMSK0 (OCIE0A, TOIE0) выставляю, не вызываются. Даже принудительным заносом значения в регистр TIFR0 (OCF0A, TOV0).
      Прерывание пытаюсь выполнить таким образом:
      #include <avr/interrupt.h> volatile unsigned int A = 0; ISR(TIMER0_OVF_vect) { A = 1; } ... while(1) { if (A == 1) PORTB |= (1<<0); } Proteus показывает, что вывод настроен как выход, но всегда 0;
      Конкретный код привести не могу, так как у меня не заработало совсем ничего.
      Внизу я сделал вырезку из даташита на ATMEGA328 по 0 таймеру 8-бит, и занес в один PDF файл.
      ATmega328-106-112.pdf
      Прошу помочь разобраться с таймером и прерываниями для него.
    • By mr_smit
      Вынес то что не получается в упрощенной форме в отдельный проект. Среда разработки CooCox 1.7.8, микроконтроллер STM32F103C8T6.
      Нужно раз в ~100 мсек формировать на ножке МК, например,такую последовательность:

      Стартовую длительность формирует таймер, в первом же своем прерывании по совпадению активирует DMA и дальше уже DMA по запросу таймера загружает значение CCR из массива. Что то похожее на управление светодиодами WS2812B. То что я сочинил выдает на пин:

      Но только один раз при первом вызове. При последующих вызовах данные из массива выдаются без первоначальной длительности в 150 мкс.
      Не могу найти ошибку. 
       
      #include <stm32f10x.h> #include <stm32f10x_conf.h> #include <stm32f10x_gpio.h> #include <stm32f10x_rcc.h> #include <stm32f10x_tim.h> #include <stm32f10x_dma.h> GPIO_InitTypeDef PIN; TIM_TimeBaseInitTypeDef TIM_Config; TIM_OCInitTypeDef TIM_OCConfig; DMA_InitTypeDef DMA_Setting; uint8_t Test_Buf[] = {15,30,30,30,15}; void delay_ms(uint32_t ms) { volatile uint32_t nCount; RCC_ClocksTypeDef RCC_Clocks; RCC_GetClocksFreq (&RCC_Clocks); nCount = (RCC_Clocks.HCLK_Frequency/10000)*ms; for (; nCount != 0; nCount--); } void Init_GPIO(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); PIN.GPIO_Pin = GPIO_Pin_11; // PA11 -> TIM1 Channel4 PIN.GPIO_Mode = GPIO_Mode_AF_PP; PIN.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &PIN); } void Init_TIM_Transmit(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); TIM_TimeBaseStructInit(&TIM_Config); // настройки по дефолту TIM_Config.TIM_Prescaler = 72-1; // Запускаем таймер на тактовой частоте 1 MHz (72000000/(72-1)) TIM_Config.TIM_Period = 150-1; // Период - 150 мкс TIM_Config.TIM_ClockDivision = 0; // частоту дополнительно не делим TIM_Config.TIM_CounterMode = TIM_CounterMode_Up; // считаем вверх TIM_TimeBaseInit(TIM1, &TIM_Config); // Инициализируем TIM1 TIM_OCStructInit(&TIM_OCConfig); // настройки по дефолту TIM_OCConfig.TIM_OCMode = TIM_OCMode_PWM1; // Конфигурируем как ШИМ (выравнивание по границе) TIM_OCConfig.TIM_OutputState = TIM_OutputState_Enable; // Включаем выход TIM_OCConfig.TIM_Pulse = 0; // CCR до старта пока нулевой TIM_OCConfig.TIM_OCPolarity = TIM_OCPolarity_High; // Полярность TIM_OCConfig.TIM_OCIdleState = TIM_OCIdleState_Reset; // состояние выхода по совпадению CCR (сброс) TIM_OC4Init(TIM1, &TIM_OCConfig); // Инициализируем 4-й выход таймера, это PA11 TIM_ARRPreloadConfig(TIM1,ENABLE); // Предзагрузка периода (ARR) TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable); // Предзагрузка длины импульса CCR 4-го канала // (даем досчитать до конца и только потом значение меняется на новое) TIM_DMACmd(TIM1,TIM_DMA_CC4,DISABLE); // выключаем пока запрос к DMA от таймера TIM1 по достижении CCR) TIM_CtrlPWMOutputs(TIM1, ENABLE); // включаем выходы (это только для TIM1) TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Enable); // разрешаем таймеру управлять выводом PA11 TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // запрещаем пока таймеру генерировать прерывание по совпадению NVIC_EnableIRQ(TIM1_CC_IRQn); // разрешаем прерывания TIM_Cmd(TIM1, DISABLE); // Выключаем таймер (пока ждем) } void TIM1_CC_IRQHandler(void) // прошло 130 мкс { if (TIM_GetITStatus(TIM1, TIM_IT_CC4) != RESET) { // по совпадению TIM_ClearITPendingBit(TIM1,TIM_IT_CC4); // сбрасываем флаг прерывания TIM1 по совпадению } NVIC_EnableIRQ(TIM1_CC_IRQn); // выключаем прерывания от таймера TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // TIM1->ARR = 40-1; // устанавливаем период 40 мкс TIM1->CCR4 = Test_Buf[0]; // ширину из массива для следующего импульса DMA1_Channel4->CNDTR = 4; // длина данных для DMA на 1 меньше т.к. уже установили выше 1 элемент TIM_DMACmd(TIM1,TIM_DMA_CC4,ENABLE); // разрешаем таймеру делать запрос к DMA по совпадению CCR DMA_Cmd(DMA1_Channel4, ENABLE); // включаем DMA } void Init_DMA(void) { RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); // включаем тактирование DMA1 DMA_Setting.DMA_PeripheralBaseAddr = (uint32_t) &TIM1->CCR4; // куда копировать DMA_Setting.DMA_MemoryBaseAddr = (uint32_t) &Test_Buf[1]; // что копировать DMA_Setting.DMA_DIR = DMA_DIR_PeripheralDST; // копируем в периферию (Peripheral Destination, точка назначения - периферия) DMA_Setting.DMA_BufferSize = 0; // количество передаваемых данных DMA_Setting.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // адрес периферии постоянный DMA_Setting.DMA_MemoryInc = DMA_MemoryInc_Enable; // адрес в памяти увеличиваем DMA_Setting.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; // периферия 16 бит DMA_Setting.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; // массив 8 бит DMA_Setting.DMA_Mode = DMA_Mode_Normal; // режим обычный DMA_Setting.DMA_Priority = DMA_Priority_Medium; // приоритет средний DMA_Setting.DMA_M2M = DMA_M2M_Disable; // MemoryToMemory откл. DMA_Init(DMA1_Channel4, &DMA_Setting); // TIM1_CH4 относится к 4-му каналу DMA1 DMA_ITConfig(DMA1_Channel4, DMA_IT_TC, ENABLE); // настраиваем прерывание по окончанию передачи NVIC_EnableIRQ(DMA1_Channel4_IRQn); // включаем прерывания от 4-го канала DMA1 DMA_Cmd(DMA1_Channel4, DISABLE); // пока выключаем 4-ый канал DMA1 } void DMA1_Channel4_IRQHandler(void) // закончили передавать { if (DMA_GetITStatus(DMA1_IT_TC4) != RESET) { // по совпадению DMA_ClearITPendingBit(DMA1_IT_TC4); // сбрасываем флаг прерывания DMA1 Channel4 transfer complete } if (TIM_GetITStatus(TIM1, TIM_IT_CC4) != RESET) { // по совпадению TIM_ClearITPendingBit(TIM1,TIM_IT_CC4); // сбрасываем флаг прерывания TIM1 на всякий случай } TIM1->ARR = 150-1; // вновь настраиваем на период 150 мкс TIM1->CCR4 = 0; // и ждем следующею передачу TIM1->CNT = 0; // TIM_DMACmd(TIM1,TIM_DMA_CC4,DISABLE); // всё выключаем DMA_Cmd(DMA1_Channel4, DISABLE); // TIM_Cmd(TIM1, DISABLE); // TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Disable); } int main(void) { Init_GPIO(); Init_TIM_Transmit(); Init_DMA(); delay_ms(1000); while(1) { TIM1->CCR4 = 130-1; // до включения линия удерживается в 0 (CCR=0) TIM_ITConfig(TIM1, TIM_IT_CC4, ENABLE); TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Enable); TIM_Cmd(TIM1, ENABLE); delay_ms(100); } }  
      TEST_TIM_DMA.zip
    • Guest Алексей
      By Guest Алексей
      Добрый день.
      Помогите пожалуйста.
      Никак не могу найти простую схему, что не впишу все одно получаю таймер на отключение или через кнопку...
      Делаю инкубатор для яиц, яйца нужно поворачивать 2-3 раза в сутки, у меня есть суточный таймер но у него минимум 1 минута, а мой механизм за 1 минуту прокрутит яйца 4 раза, нужно сделать примерно 15 сек.
      Как правильно называется такой таймер, или дайте схему.
      Спасибо.
    • Guest Руслан
      By Guest Руслан
      Добрый день всем! Столкнулся с такой проблемой. Купил несколько китайских реле времени, но они по питанию на 220 В. Теперь хочу их переделать на 24В переменку, возможно кто-то уже имел дело с такой задачей... Тип таймеров AH2-Y. 
    • By pingyini
      Всем доброго времени суток. Решил я сделать "умную" электронную сигарету на arduino. Концепция заключается в кнопочном управлении мощностью посредством ШИМ, наличии экрана, и некоторыми защитами в виде ограничения максимального времени нажатия и уход камня в сон (режим пониженного энергопотребления) после N секунд простоя.
      Вводные: по нажатию кнопки запускается ШИМ и управляет полевиком, но в целях защиты я хочу ограничить время выполнения кода до 7 секунд(что бы при случайном зажатии кнопки в кармане не получить травматическую ампутацию конечностей)

      Проблема пришла откуда не ждали - обработка нажатой основной кнопки срабатывает как попало. Нажимая кнопку обработчик может сработать сразу и отработает как по маслу, а может и через 5 нажатий не сработать вовсе.  Проверял в живую на Arduino UNO, Pro Mini (328е Меги) и в Proteus'е. Симптомы одни и те же.  Проблема очевидно в коде но я в упор не вижу в чем может быть загвоздка. Уровень у меня "штота умею" поэтому не судите строго. 
       
      #define pwmPin 5 #define buttonStart 3 #define maxOnTime 7000 //максимальное время выполнения условия нажатой кнопки #define RED_LED 7 #define GREEN_LED 8 int power = 150; //boolean StartState; boolean StartStateFlag; //Флаг кнопки Старт unsigned long pressTime; void setup() { pinMode(pwmPin, OUTPUT); pinMode(buttonStart, INPUT); pinMode(RED_LED, OUTPUT); pinMode(GREEN_LED, OUTPUT); Serial.begin(9600); //чисто для отладки } void loop() { if (digitalRead(buttonStart) && StartStateFlag && ((millis() - pressTime) <= maxOnTime)) { // (1) если кнопка старт нажата И была отпущена И нажата менее 7 секунд выполняем: analogWrite(pwmPin, power); //запуск ШИМ Serial.println("PWM_ON"); digitalWrite(GREEN_LED, HIGH); digitalWrite(RED_LED, LOW); } else { // (2) иначе StartStateFlag = false; // кнопка небыла отпущена analogWrite(pwmPin, 0); digitalWrite(GREEN_LED, LOW); Serial.println("PWM_OFF"); pressTime = millis(); } if (!digitalRead(buttonStart)) { //(3) если кнопка не нажата analogWrite(pwmPin, 0); //остановка ШИМ Serial.println("PWM_OFF"); digitalWrite(RED_LED, HIGH); StartStateFlag = true; //была отпущена и можно входить в условие с нажатой кнопкой (1) } } И файлы: сам скетч, .elf и .hex для шПротеуса и проект Протеус.
      P. S. ШИМ в Протеусе не работает в принципе, в железе все ОК 
      BUTTON_TEST.ino
      BUTTON_TEST.ino.eightanaloginputs.hex
      BUTTON_TEST.ino.elf
      BUTTON_TEST.ino.with_bootloader.eightanaloginputs.hex
      ButtonTest.pdsprj
  • Сообщения

    • Кот, ты с "ресурсы принадлежат народу" съехал в карьер... и на вопрос не ответил. Во многих странах ресурсы "принадлежат народу" но разрешено брать далеко не всё. Хотя чёрные копатели так не считают, типа "почему воду можно а янтарь нельзя?, в конституции же написано?" Вот я о чём. 
    • Сань, а теперича объясни мине, почему в ОАО всё нормально получается, а у нас нет?
      А я тебе скажу, потому лишь, что у нас нету страны, у нас бензоколонка.
      И государства у нас нету, без СССРа долбанного.
      Вот восстановим СССР, и тогда референдум объявим, и усё будет чих-пых!
    • У тебя то они откуда взялись, дорогу поливал?
    • Все знают мою нелюбовь к полевикам в ВК. Не хочу и не буду это обсуждать. Да и 40 выходников биполярных уже куплено. Я уже нашел несколько схем. Пока обдумываю варианты сам, чуть позже создам сам тему и выложу на суд эти схемы.  Что аудитория схем.нет одобрит то и буду делать.  Но это позже, скорее даже к концу года. Пока другое делаю. У меня много разных хобби. 
    • Я против кошек ничего не говорил. А вот рыжие имеют какую-то особенность
    • Простите за флуд.У самого такая была, как у Вас модель  выпуска до 80 года.
    • Вот те фотка крьера, а машинка, мизерная там, это 120ти тонный Белаз, кстати ещё советский.