![]() |
|
|
#1 |
|
Новый Пользователь
Регистрация: 11.11.2008
Возраст: 55
Регион: 77, 97, 99, 177
Сообщений: 6
![]() |
имеем инсталированный датчик уровня масла который в нормальном состоянии замкнут (разомкнут когда уровень масла падает)
подключение его на контрольную лампочку выполнено, в настоящий момент так: ![]() то есть через реле Обнаружился "дребезг" датчика, вернее даже не "дребезг", а тенденция к кратковременному размыканию, так как при разгоне/торможении автомобиля масло в поддоне "плещется"... то есть требуется задержка при подаче 12В на контрольную лампу примерно 5-7 секунд, при пропадании сигнала - задержка не нужна Почитал форум - нашел несколько схем задержки подачи напряжения, но так и не понял что же лучше применить так как они для задержки включения мониторв и/или блоков питания, и я не уверен что они выдержат многократное вкл/выкл на входе (практически "дребезг")... Кроме того возник вопрос - а нельзя ли собрать простую схемку без участия реле, которая будет выполнять необходимые функции: на входе нормально замкнутые контакты, при кратковременном размыкании которых (3-7 секунд) на выходе ничего не происходит, при длительном размыкании этих контактов имеем на выходе схемы +12В (на контрольную лампочку или другое устройство), при следующем замыкании этих контактов (на входе, контакты датчиков) на выходе +12В пропадает сразу, без задержки... Заранее спасибо братцы, а то своих знаний не хватает |
|
|
|
|
|
#2 |
|
Старший Пользователь
![]() Регистрация: 13.11.2008
Возраст: 38
Город: Москва
Регион: 77, 97, 99, 177
Машина: 2000\Basin\2111
Сообщений: 250
![]() |
Возьми за основу схему включения камеры заднего хода на пике, предложенную Chipом.
Тогда можно будет точно задавать времена включения/отключения. Вместо реле можно использовать полевой транзистор. Какой - зависит от лампочки. Если нужен просто факт наличия 12В или повесить светодиод, то обычный биполярный. |
|
|
|
|
|
#3 | |
|
Новый Пользователь
Регистрация: 11.11.2008
Возраст: 55
Регион: 77, 97, 99, 177
Сообщений: 6
![]() |
Цитата:
![]() |
|
|
|
|
|
|
#4 |
|
Старший Пользователь
![]() Регистрация: 13.11.2008
Возраст: 38
Город: Москва
Регион: 77, 97, 99, 177
Машина: 2000\Basin\2111
Сообщений: 250
![]() |
угу. или соседняя картинка
|
|
|
|
|
|
#5 |
|
Новый Пользователь
Регистрация: 11.11.2008
Возраст: 55
Регион: 77, 97, 99, 177
Сообщений: 6
![]() |
а на каких элементах лучше собирать ?
и это так сказать задержка прихода напруги на лампочку (лампочка в приборке уж не знаю сколько ватт) а кто бы схемку начертил без использования реле ? что б при размыкании управляющего контакта на выходе появлялось бы 12 вольт с задержкой 5-7 секунд, а при замыкании управляющего (входного) контакта на выходе пропадало 12В без задержки, то есть сразу... |
|
|
|
|
|
#6 |
|
Administrator
![]() Регистрация: 15.06.2005
Город: Москва
Регион: 77, 97, 99, 177
Машина: Lexus RX400h
Сообщений: 840
![]() ![]() ![]() ![]() ![]() ![]() |
Электролитический конденсатор параллельно лампочке , и диод в разрыв цепи
__________________
Все для arduino. |
|
|
|
|
|
#7 |
|
Новый Пользователь
Регистрация: 11.11.2008
Возраст: 55
Регион: 77, 97, 99, 177
Сообщений: 6
![]() |
|
|
|
|
|
|
#8 |
|
Старший Пользователь
![]() Регистрация: 13.11.2008
Возраст: 38
Город: Москва
Регион: 77, 97, 99, 177
Машина: 2000\Basin\2111
Сообщений: 250
![]() |
![]() Программку вот эту подергать надо (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;
}
} // Конец главного цикла
}
//------------------------------------------------------------------------//
|
|
|
|
|
|
#9 |
|
Новый Пользователь
Регистрация: 11.11.2008
Возраст: 55
Регион: 77, 97, 99, 177
Сообщений: 6
![]() |
не через чур для просто задержки включения лампочки ?
____________________________________________ а оптопары бывают с задержкой включения ? |
|
|
|
|
|
#10 |
|
Старший Пользователь
![]() Регистрация: 13.11.2008
Возраст: 38
Город: Москва
Регион: 77, 97, 99, 177
Машина: 2000\Basin\2111
Сообщений: 250
![]() |
Зато точно по времени и ничего подбирать не надо)
Я такой, люблю точность до нанограммов. Конденсатор не даст всегда одинакового времени. Можно городить на NE555, уже интереснее, но у меня с этими микросхемами нелюбовь. ![]() |
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|