• В России с 1 декабря 2023 вводится запрет на регистрацию в рунете с иностранного емейла.
    В связи с этим, на нашем форуме можно зарегистрироваться только с mail.ru, yandex или rambler. Если есть проблемы с регистрацией - пишите администрации.
  • А ты уже присоединился к нашим соцсетям?
    Telegram и ВКонтакте
  • Клубная встреча в Москве
    Ваши предложения пишите тут! >

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

Vityok

Коренной житель
Регистрация
20 Окт 2010
Сообщения
4,371
Реакции
182
Баллы
534
Други, вот о чем я задумался.

На ГАЗ 3105 штатно блокировка межосевого дифференциала имела вакуумный привод.
Включалась/выключалась она нажатием кнопки на панели приборов. Причем кнопка не включала-выключала электромагнитный клапан, пускающий или не пускающий разрежение, а сама была этим клапаном.
То есть прямо к ней подходили вакуумные трубки.
Из-за ненадежности эту систему на всех машинах производитель отключил.

Есть жаление сделать блокировку с электроприводом.

А вопрос такой: как сделать защиту от дурака, чтобы на ходу нельзя было включить блокировку?

Кто знает - как снять сигнал с обычного 6-импульсного датчика скорости, чтобы когда на нем нет импульсов (как я понимаю, когда он не вращается - импульсы не идут?) преобразовать этот сигнал в наличие/отсутствие постоянного сигнала?

Или какие еще будут идеи?

Пока только одна мысль - завязать включение реле блокировки не только на кнопку, но и на лампу ручника. Но не совсем это удобно будет ИМХО...
 
Последнее редактирование:

Gott

Постоялец
Регистрация
11 Окт 2013
Сообщения
544
Реакции
99
Баллы
160
Достаточно тумблера с колпачком
Я думаю имелась ввиду защита от дурака, тут колпачок не прокатит.
Надо посмотреть сигнал с ДС и уже по нему соображать аналоговую, цифровую или гибридную схему.

у них МК даже в кнопки стеклоподъемников понапиханы
Потому и ценник выше и обслуживание сложнее и дороже и запчасти неремонтопригодны и меняются сразу блоком. Это все плата за более высокий комфорт и зайчатки интеллекта в интерфейсе с водителем. Палка с двумя концами, да.

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

Vityok

Коренной житель
Регистрация
20 Окт 2010
Сообщения
4,371
Реакции
182
Баллы
534
ему, если честно, даже релюха не нужна. Достаточно тумблера с колпачком (откинул колпачек, включил).
Не хочу портить интерьер :)


Я думаю имелась ввиду защита от дурака
+1


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

А так 3105 нравится тем, что в ней почти везде "традиционная" проводка с обычными клавишами и реле - без КАН-шин и т.п. и при этом хорошие опции

Добавлено через 1 минуту 3 секунды
Гораздо проще была бы схема с сигналом от ручника
Перым делом об этом подумал, но решил поизящнее придумать. :)
а так вариант с ручником не забыт :)
 
Последнее редактирование:

hoopoe

Завсегдатай
Регистрация
11 Июл 2006
Сообщения
906
Реакции
298
Баллы
225
в качестве идеи: можно попробовать приколхозить реле от дворников: там же как раз реализована схема, что когда полается кратковременный импульс - оно выставляет на некоторое время один из сигнальных контактов в активное положение... только совпадает ли там вольтаж - х.з....
 

Vityok

Коренной житель
Регистрация
20 Окт 2010
Сообщения
4,371
Реакции
182
Баллы
534
в качестве идеи: можно попробовать приколхозить реле от дворников: там же как раз реализована схема, что когда полается кратковременный импульс - оно выставляет на некоторое время один из сигнальных контактов в активное положение... только совпадает ли там вольтаж - х.з....

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

AlekseyM

Ветеран
Регистрация
18 Сен 2009
Сообщения
7,439
Реакции
5,905
Баллы
905

hoopoe

Завсегдатай
Регистрация
11 Июл 2006
Сообщения
906
Реакции
298
Баллы
225
Не совсем понял как именно использовать реле дворников в таком случае...

если есть импульсный сигнал при движении авто (например с датчика скорости), то на этот сигнал можно повесить реле из-под дворников. это реле имеет свойство: при попадании на него напряжения оно держит некоторое время напругу на одной из своих ног...

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

rvz

Общительный
Регистрация
16 Авг 2013
Сообщения
174
Реакции
3
Баллы
80
Нужен МК частота импульсов меняется в слишком широком диапазоне и любые аналоговые решения не подойдут (**** настроишь).
А для подобного результата использовать МК вандализм... если уж и ставить то автоматизировать включение блокировки. На Авто есть абс? или хотя бы датчики от него?
Например если частота импульсов на датчиках АБС разная (+-допуски да углы поворота и всякие всячины) то МК ставит готовность включить блокировку (режим готовности 20сек) если в течении режима готовности импульсы с датчика скорости пропадают (например на 3сек) то МК включает блокировку если в течении 10сек после включения блокировки на датчике скорости не появились импульсы то блокировка выключается (режимы выключения блокировки зависят от самого механизма... если его можно выключать на ходу то вообще шоколад). примерный набросок алгоритма.
Можно еще использовать датчик ускорения... но нужны будут опыты для обучения МК (привязка ускорений и датчика скорости).
 
Последнее редактирование:

AlekseyM

Ветеран
Регистрация
18 Сен 2009
Сообщения
7,439
Реакции
5,905
Баллы
905

Vityok

Коренной житель
Регистрация
20 Окт 2010
Сообщения
4,371
Реакции
182
Баллы
534
На Авто есть абс? или хотя бы датчики от него?
Вроде только приливы под датчики и гребенки на приводах.
И то не факт.

Будем ли ставить датчеги - хз
 

rvz

Общительный
Регистрация
16 Авг 2013
Сообщения
174
Реакции
3
Баллы
80
Вроде только приливы под датчики и гребенки на приводах.
Лучше проверить... если есть то программа простая получится да и покупка датчиков себя оправдает (на мой взгляд автоматическое включение блокировки интереснее).
А вот если нет то анализ ускорений ( + с датчика ускорений) относительно изменения скорости (с датчика скорости) будет посложнее.
 
Последнее редактирование:

rvz

Общительный
Регистрация
16 Авг 2013
Сообщения
174
Реакции
3
Баллы
80
Ну тогда примерный обвес МК получится таким
attachment.php

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

Логика работы программы такая.
Счетчик пытается насчитать задержку включения 5 сек. в то время как аналоговый компаратор ему это сделать мешает. то есть на вход аналогового компаратора подается 3.3в (типа высокий уровень со стабилитрона) на второй вход сигнал с датчика скорости (диапазон от 5в до <1) когда <1 компаратор генерит прерывания сбрасывая переменные и делитель таймера если сигналы на компараторе не меняются то он прерывания не генеририт и соответственно таймер может беспрепятственно наоткладывать 5 сек. в основном цикле программы реализована защита от дребезга контактов кнопки, проверка чего насчитал таймер, а также выключение при повторном нажатии.

Если интересно и есть где прошить МК (программатор до жути простой собирается на 4 резисторах разъеме LPT + WinXP + PonyProg) то можно (смогу наверное :) если посижу немного... молодость вспомню) вышеописанный алгоритм написать (собственно я бы и сразу написал только регистры настроек не помню... а если интереса нет изучать инфу за нова лень).
 

Вложения

  • dif.JPG
    dif.JPG
    113.1 KB · Просмотры: 48

rvz

Общительный
Регистрация
16 Авг 2013
Сообщения
174
Реакции
3
Баллы
80
Альфа версия прошивки. ATtiny13A (Си) AVR Studio 4
Как оказалось у данного МК есть возможность подтянуть опорное напряжение к не инвертирующему выводу компаратора 1.22в следовательно необходимость в стабилетроне отпала (ну если датчик все таки выдает меньше 1в).
PHP:
#include <avr/io.h>
#include <avr/signal.h>
#include <avr/delay.h>

#define F_CPU 4000000UL //Тактовая частота
#define K_TIME 1024 //Предделитель
#define T_DELEY	5	//Время задержки в секундах
#define mDELEY ((T_DELEY/(F_CPU/K_TIME))/256)

unsigned char delay = 0;
unsigned char status_on = 0;

//const float Uop = 1.22;
const unsigned char mPORTB = 0b00001000; //маска кнопок управления.

void ini_time(){
	TIMSK0 = 0b00000000; //запрет всех прерываний от таймера счетчика Т0
	//TSM = 1; //Остановка предделителя таймеров счетчиков.
	//PSR10 = 1; //Сброс предделителя таймеров счетчиков.
	GTCCR = (1<<TSM)|(1<<PSR10);
	TCCR0B = (1<<CS02)|(0<<CS01)|(1<<CS00); //Предделитель на 1024
	//TCCR0B = (0<<CS02)|(1<<CS01)|(1<<CS00); //Предделитель на 64
	TCNT0 = 0; //Обнуление счетного регистра.
	TIMSK0 = (1<<TOIE0); //Разрешение прерывания по переполнению T0.
	//GTCCR = (0<<TSM); //Запуск предделителя таймеров счетчиков.
}

void setup(){
	DDRB  = 0b00010100; // Порт В как вход (1)
	PORTB = 0b00001000; //Подтягивающие резисторы В3

	ACSR = (1<<ACD)|(0<<ACIE); //Запрет прерывания от компаратора.
	//ACD = 1; //Запрет работы компаратора.
	//ACIS1 = 1; ACIS0 = 0; //Изменение результата сравнения с 1 на 0.
	//ACBG = 1; // подключить опорное напряжение 1.22в к AIN0.
	ACSR = (0<<ACD)|(1<<ACIE)|(1<<ACIS1)|(0<<ACIS0)|(1<<ACBG);
	//ACSR = (0<<ACD);
	ini_time();	//Инициализируем таймер.
}

void clear(){
	ini_time(); //переинициализируем таймер.
	delay = 0; //обнуление переменной задержки.
	GTCCR = (0<<TSM);//запуск предделителя таймера.
}
SIGNAL(TIM0_OVF_vect){
	//обработчик прерывания по переполнению таймера T0
	if(delay <= mDELEY)delay++;//Если время еще не пришло то прибавим к переменной задержки.
	else PORTB |= mPORTB|(1<<PORTB2);//Иначе включаем светодиод готовности.
}

SIGNAL(ANA_COMP_vect){
	//Обработчик прерывания от аналогового компаратора
	clear();
	PORTB &= ~(1<<PORTB2);//Выключаем светодиод готовности.
}

int main(void){
  setup(); //Вызов функции настроики бортовых устройств
  sei(); //Разрешение всех прерываний.
  GTCCR = (0<<TSM);//запуск предделителя таймера.
  while (1){
	 	if((PINB & mPORTB) == 0b00000000){ //проверка нажатия кнопки.
			_delay_loop_2(5000); //подождем немного. и еще раз проверим.
			if((PINB & mPORTB) == 0b00000000 && delay > mDELEY && !status_on){
			//если кнопка нажата и достигнут необходимый уровень задержки.
				status_on = 1; //Помечаем как включено.
				PORTB |= mPORTB|(1<<PORTB4);//Включаем реле.
				_delay_loop_2(5000);//подождем немного.
			}else if((PINB & mPORTB) == 0b00000000 && delay > mDELEY && status_on){
			//если кнопка нажата и достигнут необходимый уровень задержки.
				status_on = 0; //Помечаем как включено.
				PORTB &= ~(1<<PORTB4);//Выключаем реле.
				_delay_loop_2(5000);//подождем немного.
			}
	 	}
  }
}

В схеме добавился светодиод (свето я в протеусе не нашел :rolleyes: ) индикации разрешения включить диф.
attachment.php

В прикрепленном файле dif.zip проекты протеуса7 и АВРстудии 4 (там же есть и скомпилированный dif.hex для залития в МК).
Тестил только виртуально в протеусе... собственно потому и альфа.
 

Вложения

  • dif-2.JPG
    dif-2.JPG
    122.2 KB · Просмотры: 28
  • dif.zip
    32.7 KB · Просмотры: 0
Сверху