Страница 3 из 8
Добавлено: Чт дек 08, 2005 16:39:15
Serega
Здравствуй кот sich!
Раз уж ты решил изготовить бортовой компьютер, предлагаю тебе не останавливаться на температуре за бортом, часах, тахометре и бортовой сети.
Указатель давления масла в системе смазки. Нет давления - СИРЕНА, либо приятный женский голос "ЗАГЛУШИ ДВИГАТЕЛЬ! НА СУХУЮ ДВИГАТЕЛЬ ВМИГ УГРОБИШЬ!"
Не вы первый интересуетесь. Вот здесь это уже обсуждают:
http://www.radiokot.ru/forum/viewtopic.php?t=146
Добавлено: Чт дек 08, 2005 16:45:36
sich
Bayan писал(а):Здравствуй кот sich!
Раз уж ты решил изготовить бортовой компьютер, предлагаю тебе не останавливаться на температуре за бортом, часах, тахометре и бортовой сети.
Указатель давления масла в системе смазки. Нет давления - СИРЕНА, либо приятный женский голос "ЗАГЛУШИ ДВИГАТЕЛЬ! НА СУХУЮ ДВИГАТЕЛЬ ВМИГ УГРОБИШЬ!"
Указатель температуры в системе охлаждения. Температура выше 90 - "Глуши мотор! Проверь уровень жидкости в системе охлаждения! Температура зашкаливает!".
Нет тормозной жидкости в бачке - Сирена, либо голос "Без тормозов то оно интересней!"
Генератор перестал выдавать напругу - Сигнал водителю "Аккумулятор садишь Скотина!"
ну и так далее, многое можно придумать.
Еще в начале 90-х (у папика была тода 2105) продавали приборчик "собери сам"

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

), а по поводу аккума у меня в прикуриватель вставлено у-во на нем 3 СИД (кр-зел-кр) показывает (разряд-норма-заряд) типа амперметра чтоли.
Единственное что хочу, это вывести тахометр(как описывал) и успановить отсечку (программно разрывать провод от датчика холла к комутатору зажигания при превышении оборотов), поскольку ща зима, а покрутиться на 1-2 передачи жуть как охото, мона и перекрутить двиг (у меня раз клапана с поршнями встречались

).
Добавлено: Чт дек 08, 2005 17:01:45
Max
Эта... простите, я не понял - просто вырубать зажигание при превышении какго то количества оборотов? При включенной передаче?

Добавлено: Чт дек 08, 2005 20:54:53
sich
Точнее будет сказать не вырубать зажигание, а прекратить подачу искры. Подобное реализовано в контроллерах инжекторных мафынок (напр 2110). Эффект такой: набираешь обороты (для проверки лучше под нагрузкой, т.е. включить 1или2 передачу), когда идет превышение предела двиг глохнет, при падении оборотов снова работает. Смотрится все это будто на Н-ых оборотах машина очень быстро глохнет-заводится и звук н-н-н-н-н-н (ну в NFS UNDGR кто-нить играл???

)
Только вот на инжекторах скорее топливо прерывают, а не искру.
Но это пока задумка, как попрет так на деле видно будет

Добавлено: Чт дек 08, 2005 21:01:40
sich
Сейчас мне интересен такой вопрос:
КАК СЧИТАТЬ ТЕМПЕРАТУРУ (как на асме все написать)???
(DS18S20 на 6 пине D порта(PD5) -для справки)
Это максимум что нашел:
Последовательность действий при чтении температуры из 1820:
. Reset,presence pulse
. Send 0xCC
. Send 0x44 //Convert T
. ждем 4 сек
. Reset,Presence Pulse
. Send 0xCC
. 0xBE //Read scratchpad
. Read 8 bytes
Добавлено: Чт дек 08, 2005 21:13:21
Max
Что то как то мне слабо в это верится... скорее всего, если совсем прекратить подачу топлива или напряжения на свечи на 1 или 2 сокрости, сдается мне, будет что то не очень хорошее

Добавлено: Пт дек 09, 2005 01:23:25
sich
Будет не что иное как торможение скоростью (в народе- торможение движком)!!! Я просто с двиглами начал ковыряться намного раньше, чем за руль сел, поэтому могу с уверенностью заверить, что при прекращении питания на скорости- все ОК, а вот с искрой там проблемка на карбах будет(горючку в цилиндры засасывает).
Вы меня куском проги лучше побалуйте по приему/передачи послед.кода. ЖУТЬ КАК ХОЧУ ТЕРМОМЕТР ЗАПУСТИТЬ!!!
Добавлено: Пт дек 09, 2005 09:09:11
Max
Смотрим ЛС

Добавлено: Вс дек 11, 2005 02:08:28
sich
И все равно не понимаю... Эх, надо было ходить на лекции когда последовательные интерфейсы проходили. Смысл вроде понятен: считываем/посылаем биты из/впорта через опред. промежутки времени. что такое "Timing Slot" ? Где брать счетчик для времени? Если встроенный счетчик-компаратор я использую, что мне можно еще задействовать (и КАК)???
И еще один прикол: при выполнении прерывания контроллер вырубает прерывания (установливает флаг I=0), при выходе он снова восстанавливает I=1. Так вот, если я одним прерыванием считаю секунды (Timer1_comp1), знач при выполнении другого прерывания (напр при отсчете времени для посл.кода) у меня не прервется таймер? что происходит в этот момент? вообще таймер считает относительно тактов контроллера (1такт=100нс при 10Мгц,правильно?), значит на счетчик не влияют другие прерывания? они влияют только на сравнивание счетчика... знач. при другом прерывании мы просто перепрыгнем это значение? Объясните толково как, что и почем...
Добавлено: Вс дек 11, 2005 03:42:54
Serega
Таймеры совершенно не колышет, что в данный момент делает программа. Как ему выставил режим - так он и слитает пока не изменится режим.
По переполнению или сравнению или по любому другому событию, на которое установлено прерывание, пишется единичка в флаговый регистр. Эта единичка автоматически снимается при переходе на обработчик. Если в момент возникновения прерывания обрабатывается какое-то другое прерывание - единичка установится и будет там стоять до тех пор, пока не окончится обработка того прерывания...
Короче, все круто, и не надо так переживать
Тайминх Слот - это типа информативный отрезок времени. По длине этого слота мы определяем ноль или единица.
Короче, процессинг мне видится примерно так:
по каждому срезу сигнала (начало тайм-слота) считываем значение таймера и обнуляем его. Далее смотрим, сколько насчитал таймер. Если много - значит передан 0, если мало - значит 1. Все очень просто

Добавлено: Вс дек 11, 2005 15:32:23
sich
Вот оно что..... т.е. не важно, какой лог уровень передаем, все равно по проводу идет низ(GND), а в зависимости от времени разделяем 0 это или 1....
Предлагаю алгоритм (рассмотрите и укажите косяки) :
устанавливаем шаг счетчика = 1милиСек
ЦИКЛ: ;это типа метки
считываем значение сигнала
если значение <> 1, то переход на ЦИКЛ ,иначе
Время=счетчику ; в переменной Время кол-шагов счетчика, т.е. милиСек
если время =1, то Х=1 ; в даташите "1"=1милиСЕК, "0"=60милиСек
если время =60, то Х=0
Запись Х в регистр
Сброс счетчика
переход на ЦИКЛ
Еще вопрос: последовательный код выдается со старшего байта? т.е если я получу 1 потом 0, 1, 0, 1, 0, 1, 0 это будет 10101010 = 170 или нет???
Добавлено: Вс дек 11, 2005 15:43:12
sich
А что такое scratchpad (в словарях не встретил) ???
Добавлено: Вс дек 11, 2005 16:01:58
Serega
Добавлено: Пн дек 12, 2005 15:21:34
БЕГЕМОТ
Мяу!... Sich, слушай! А ведь Max прав... На переднеприводной это будет выглядеть так:... Обычно превышаешь обороты в экстремальных ситуациях... Теперь о гололеде. Разгоняюсь, надо обогнать или что-нибудь, например, машину выровнять и вдруг - такая бяка, как торможение двигвтелем. Передок тормозится, зад несет куда хочет. По газам - да хрен там! (обороты ведь от скорости не зависят!) Выкинет в
лучшем случае на обочину как жабу!

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

С уважением, БЕГЕМОТ.
Добавлено: Пн дек 12, 2005 15:37:09
БЕГЕМОТ
Мяу!... Упреждаю, поскольку тахометр в в нормальных машинах работает, как правило от коммутатора, а не от коленчатого вала (преобразование частота импульсов -напряжение (или ток), то при разрыве сигнала от датчика холла к коммутатору, на коммутаторе будет 0 импульсов и на тахометре тоже 0 импульсов, и, соответственно, оборотов... Так что сигнал придется брать от датчика холла, а не от катушки...
Лучше что-нибудь улучшающее машину, а искра - она сама, когда не надо пропадает...
БЕГЕМОТ
Добавлено: Пт дек 16, 2005 00:57:09
doc626ge
Доброго времени суток уважаемые коты!
Тоже занимаюсь разработкой бортового компа на Atmega8, LCD 16x2. Тахометр, термометр работают, по отдельности, куски программы которые надо будет слепить в одно целое

. Но возникла проблема: нужно измерить длительность открытия форсунки (длительность импульса - расход топлива). И на этом все застопорилось....

Прошу вашей мяу

-помощи!!!

Добавлено: Пт дек 16, 2005 01:04:37
Serega
Проблема в чем - в алгоритме измерения или нету датчика?
Добавлено: Сб дек 17, 2005 23:28:17
sich
doc626ge писал(а):Доброго времени суток уважаемые коты! :))
Тоже занимаюсь разработкой бортового компа на Atmega8, LCD 16x2. Тахометр, термометр работают, по отдельности, куски программы которые надо будет слепить в одно целое :) . Но возникла проблема: нужно измерить длительность открытия форсунки (длительность импульса - расход топлива). И на этом все застопорилось.... :cry: Прошу вашей мяу :) -помощи!!! :) :) :)
а со штатных мозгов не пробовал взять данные? ведь бортовики на инжектора так и работают....
а что за датчик температуры взял? (я вот никак DS18S20 раскрутить не могу....)
Добавлено: Вс дек 18, 2005 08:45:31
doc626ge
to
Serega, Sich проблема именно в алгоритме (точнее самого куска кода

). Думал взять с мозгов, но лезть туда как-то страшновато (не русская машина

) да и схем толковых найти не удается

. Импульс хочу взять непосредственно с форсунки (как в "универсальных" БК) и измерить частоту (тахометр) и длительность (расход). Это в идеале. Можно конечно измерять rpm (тахометр) и с импульсов зажигания, но частота открытия форсунки пропорциональна rpm (1 имп. на форсунке=2 об. коленвала-вроде так) да лишнее прерывание придется использовать - боюсь не мега успеет правильно среагировать на 3 прерывания (имп. на форсунке придет одновременно с имп. зажигания). Вот и проблема...

Использую DS18s20 (до 0.01 С), LCD DataVision 16x2. Help! Т.е. Мяу!!!

Добавлено: Вт дек 20, 2005 20:14:52
sich
во-первых напргу открывания (обычно 12В) надо перевести в лог."1"(через компраратор напр). потом загнать эту "1" на вход, и считать таймером длительность.... или по другому: вход от форсунок(импульс 12В) - на встроенный компаратор и сравнивай с напругой (12В,может чуть меньше). с компаратора можно же снять и передний и задний фронт(начало-конец открытия).
А в алгоритме какие проблемы? форсунка открылась-включай (обнуляй и запускай)счетчик, закрылась - останавливай, переводи значение в сек или в ЛИТРЫ \сек (зная давление в рампе и производительность форсунок)
Выложи ПЛИЗ кусок проги при работе с DS18S20 !!!! ОЧЕНЬ НУЖНО!