Просмотр полной версии : помогите со схемкой подкл. нормально замкнутого датчика
имеем инсталированный датчик уровня масла который в нормальном состоянии замкнут (разомкнут когда уровень масла падает)
подключение его на контрольную лампочку выполнено, в настоящий момент так:
http://s52.radikal.ru/i135/0912/26/6712d3fd86e4.png
то есть через реле
Обнаружился "дребезг" датчика, вернее даже не "дребезг", а тенденция к кратковременному размыканию, так как при разгоне/торможении автомобиля масло в поддоне "плещется"...
то есть требуется задержка при подаче 12В на контрольную лампу примерно 5-7 секунд, при пропадании сигнала - задержка не нужна
Почитал форум - нашел несколько схем задержки подачи напряжения, но так и не понял что же лучше применить так как они для задержки включения мониторв и/или блоков питания, и я не уверен что они выдержат многократное вкл/выкл на входе (практически "дребезг")...
Кроме того возник вопрос - а нельзя ли собрать простую схемку без участия реле, которая будет выполнять необходимые функции:
на входе нормально замкнутые контакты, при кратковременном размыкании которых (3-7 секунд) на выходе ничего не происходит, при длительном размыкании этих контактов имеем на выходе схемы +12В (на контрольную лампочку или другое устройство), при следующем замыкании этих контактов (на входе, контакты датчиков) на выходе +12В пропадает сразу, без задержки...
Заранее спасибо братцы, а то своих знаний не хватает
Возьми за основу схему включения камеры заднего хода на пике, предложенную Chipом.
Тогда можно будет точно задавать времена включения/отключения.
Вместо реле можно использовать полевой транзистор. Какой - зависит от лампочки.
Если нужен просто факт наличия 12В или повесить светодиод, то обычный биполярный.
Возьми за основу схему включения камеры заднего хода на пике, предложенную Chipом.
Тогда можно будет точно задавать времена включения/отключения.
Вместо реле можно использовать полевой транзистор. Какой - зависит от лампочки.
Если нужен просто факт наличия 12В или повесить светодиод, то обычный биполярный.
ты эту схемку имеешь в виду:
http://s50.radikal.ru/i129/0912/42/231fc07de135.gif (http://www.radikal.ru)
угу. или соседняя картинка
а на каких элементах лучше собирать ?
и это так сказать задержка прихода напруги на лампочку (лампочка в приборке уж не знаю сколько ватт)
а кто бы схемку начертил без использования реле ? что б при размыкании управляющего контакта на выходе появлялось бы 12 вольт с задержкой 5-7 секунд, а при замыкании управляющего (входного) контакта на выходе пропадало 12В без задержки, то есть сразу...
Электролитический конденсатор параллельно лампочке , и диод в разрыв цепи
Электролитический конденсатор параллельно лампочке , и диод в разрыв цепи
параллельно лампочке или все же обмотке реле ? в какой разрыв диод ?
можно лучше схемку ? :sad2:
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;
}
} // Конец главного цикла
}
//------------------------------------------------------------------------//
не через чур для просто задержки включения лампочки ?
____________________________________________
а оптопары бывают с задержкой включения ?
Зато точно по времени и ничего подбирать не надо)
Я такой, люблю точность до нанограммов.
Конденсатор не даст всегда одинакового времени. Можно городить на NE555, уже интереснее, но у меня с этими микросхемами нелюбовь.
http://funkyimg.com/u2/658/319/l1.png
Работает на vBulletin® версия 3.8.4. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot