PDA

Просмотр полной версии : помогите со схемкой подкл. нормально замкнутого датчика


aarpro
06.12.2009, 23:27
имеем инсталированный датчик уровня масла который в нормальном состоянии замкнут (разомкнут когда уровень масла падает)

подключение его на контрольную лампочку выполнено, в настоящий момент так:

http://s52.radikal.ru/i135/0912/26/6712d3fd86e4.png

то есть через реле

Обнаружился "дребезг" датчика, вернее даже не "дребезг", а тенденция к кратковременному размыканию, так как при разгоне/торможении автомобиля масло в поддоне "плещется"...

то есть требуется задержка при подаче 12В на контрольную лампу примерно 5-7 секунд, при пропадании сигнала - задержка не нужна

Почитал форум - нашел несколько схем задержки подачи напряжения, но так и не понял что же лучше применить так как они для задержки включения мониторв и/или блоков питания, и я не уверен что они выдержат многократное вкл/выкл на входе (практически "дребезг")...

Кроме того возник вопрос - а нельзя ли собрать простую схемку без участия реле, которая будет выполнять необходимые функции:

на входе нормально замкнутые контакты, при кратковременном размыкании которых (3-7 секунд) на выходе ничего не происходит, при длительном размыкании этих контактов имеем на выходе схемы +12В (на контрольную лампочку или другое устройство), при следующем замыкании этих контактов (на входе, контакты датчиков) на выходе +12В пропадает сразу, без задержки...

Заранее спасибо братцы, а то своих знаний не хватает

Urvin
06.12.2009, 23:37
Возьми за основу схему включения камеры заднего хода на пике, предложенную Chipом.
Тогда можно будет точно задавать времена включения/отключения.
Вместо реле можно использовать полевой транзистор. Какой - зависит от лампочки.
Если нужен просто факт наличия 12В или повесить светодиод, то обычный биполярный.

aarpro
06.12.2009, 23:50
Возьми за основу схему включения камеры заднего хода на пике, предложенную Chipом.
Тогда можно будет точно задавать времена включения/отключения.
Вместо реле можно использовать полевой транзистор. Какой - зависит от лампочки.
Если нужен просто факт наличия 12В или повесить светодиод, то обычный биполярный.
ты эту схемку имеешь в виду:
http://s50.radikal.ru/i129/0912/42/231fc07de135.gif (http://www.radikal.ru)

Urvin
06.12.2009, 23:55
угу. или соседняя картинка

aarpro
07.12.2009, 00:03
а на каких элементах лучше собирать ?

и это так сказать задержка прихода напруги на лампочку (лампочка в приборке уж не знаю сколько ватт)

а кто бы схемку начертил без использования реле ? что б при размыкании управляющего контакта на выходе появлялось бы 12 вольт с задержкой 5-7 секунд, а при замыкании управляющего (входного) контакта на выходе пропадало 12В без задержки, то есть сразу...

admin
07.12.2009, 00:22
Электролитический конденсатор параллельно лампочке , и диод в разрыв цепи

aarpro
07.12.2009, 00:33
Электролитический конденсатор параллельно лампочке , и диод в разрыв цепи
параллельно лампочке или все же обмотке реле ? в какой разрыв диод ?

можно лучше схемку ? :sad2:

Urvin
07.12.2009, 00:34
http://funkyimg.com/u2/710/361/pic.png

Программку вот эту подергать надо (hi-tech C):
//------------------------------------------------------------------------//
#include <htc.h>
//------------------------------------------------------------------------//



//------------------------------------------------------------------------//
// БИТЫ КОНФИГУРАЦИИ
//------------------------------------------------------------------------//
__CONFIG(INTIO & WDTDIS & PWRTDIS & MCLREN & BORDIS & UNPROTECT & UNPROTECT & RCCLK);
//------------------------------------------------------------------------//
// Oscillator = Internal RC no Clockout
// Watchdog Timer = Off
// Power Up Timer = Off
// Master Clear Enable = External
// Brown Out Detect = Off
// Code Protect = Off
// Data EE Read Protect = Off
// Bandgap Calibration Bits = Highest Bandgap Voltage
//------------------------------------------------------------------------//



//------------------------------------------------------------------------//
// ВРЕМЕННЫЕ ЗАДЕЖКИ ЗМЕНЕНИЯ СОСТОЯНИЙ
//------------------------------------------------------------------------//
#define TIMER_COUNTS_BEFORE_SWITCH_ON 30
#define TIMER_COUNTS_BEFORE_SWITCH_OFF 150
//------------------------------------------------------------------------//



//------------------------------------------------------------------------//
volatile unsigned char state = 0; // Переменная номера состояния
volatile unsigned char timerCounts = 0; // Счетчик таймера
//------------------------------------------------------------------------//



//------------------------------------------------------------------------//
// ФУНКЦИЯ ПРЕРЫВАНИЙ
//------------------------------------------------------------------------//
void interrupt my_isr(void){
// Прерывание от таймера
if((T0IE)&&(T0IF))
{
T0IF=0; // clear event flag

// Инкрементация счетчика таймера
timerCounts++;

// Если состояние "реле включено, камера выключена"
if (state == 1)
{
// Если срок включения вышел, переодим в стабильное состояние
if (timerCounts >= TIMER_COUNTS_BEFORE_SWITCH_ON) state = 2;
}

// Если состояние "реле выключено, камера включена"
else if (state == 3)
{
// Если срок выключения вышел, переодим в стабильное состояние
if (timerCounts >= TIMER_COUNTS_BEFORE_SWITCH_OFF) state = 0;
}

}

}
//------------------------------------------------------------------------//



//------------------------------------------------------------------------//
// ИНИЦИАЛИЗАЦИЯ ОБОРУДОВАНИЯ
//------------------------------------------------------------------------//
void init(void){
// Включение прерывания таймера
INTCON = 0b00100000;

// Ножка 1 на вход, прочие на выход
TRISIO = 0b00000010;

// Делитель 128, внутренний генератор сигнала
OPTION = 0b00000110;

// Обнуление таймера
TMR0 = 0;

// Непосредственное включение прерываний
ei();

}
//------------------------------------------------------------------------//



//------------------------------------------------------------------------//
// ГЛАВНАЯ ФУНКЦИЯ
//------------------------------------------------------------------------//
void main(void)
{
init(); // Первичная инициализация


while (1) // Бесконечный главный цикл
{
// Если состояние "все выключено"
if (state == 0)
{
GPIO0 = 1; // Отключаем камеру

if (GPIO1 == 0) // Если включилось оптореле...
{
state = 1; // переходим в следующее состояние
timerCounts=0; // и обнуляем счетчик таймера
}
}
else if (state == 1)
{
if (GPIO1 == 1) state=0;
}

// Если состояние "все включено"
else if (state == 2)
{
GPIO0 = 0; // Включаем камеру

if (GPIO1 == 1) // Если оптореле выключилось...
{
state = 3; // переходим в состояние пятисекундной задержки
timerCounts=0; // обнуляем счетчик таймера
}
}
else if (state == 3)
{
if (GPIO1 == 0) state=2;
}

} // Конец главного цикла
}
//------------------------------------------------------------------------//

aarpro
07.12.2009, 00:40
не через чур для просто задержки включения лампочки ?
____________________________________________

а оптопары бывают с задержкой включения ?

Urvin
07.12.2009, 00:54
Зато точно по времени и ничего подбирать не надо)
Я такой, люблю точность до нанограммов.

Конденсатор не даст всегда одинакового времени. Можно городить на NE555, уже интереснее, но у меня с этими микросхемами нелюбовь.

http://funkyimg.com/u2/658/319/l1.png