бортовой комп для авто на AT90S2313

Обсуждаем цифровые устройства...
Аватара пользователя
Serega
Говорящий с текстолитом
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

Здравствуй кот sich!
Раз уж ты решил изготовить бортовой компьютер, предлагаю тебе не останавливаться на температуре за бортом, часах, тахометре и бортовой сети.

Указатель давления масла в системе смазки. Нет давления - СИРЕНА, либо приятный женский голос "ЗАГЛУШИ ДВИГАТЕЛЬ! НА СУХУЮ ДВИГАТЕЛЬ ВМИГ УГРОБИШЬ!"


Не вы первый интересуетесь. Вот здесь это уже обсуждают:
http://www.radiokot.ru/forum/viewtopic.php?t=146
Лучше быть первым в деревне, чем вторым в Риме
Аватара пользователя
sich
Открыл глаза
Сообщения: 55
Зарегистрирован: Чт ноя 24, 2005 02:33:45
Откуда: г.Тольятти
Контактная информация:

Сообщение sich »

Bayan писал(а):Здравствуй кот sich!
Раз уж ты решил изготовить бортовой компьютер, предлагаю тебе не останавливаться на температуре за бортом, часах, тахометре и бортовой сети.

Указатель давления масла в системе смазки. Нет давления - СИРЕНА, либо приятный женский голос "ЗАГЛУШИ ДВИГАТЕЛЬ! НА СУХУЮ ДВИГАТЕЛЬ ВМИГ УГРОБИШЬ!"

Указатель температуры в системе охлаждения. Температура выше 90 - "Глуши мотор! Проверь уровень жидкости в системе охлаждения! Температура зашкаливает!".

Нет тормозной жидкости в бачке - Сирена, либо голос "Без тормозов то оно интересней!"

Генератор перестал выдавать напругу - Сигнал водителю "Аккумулятор садишь Скотина!"

ну и так далее, многое можно придумать.

Еще в начале 90-х (у папика была тода 2105) продавали приборчик "собери сам" :)) Там был светодиод(ярко-красный и зуммер) через диоды на вход подавались сигналы с: указателя давления масла(от лампочки на приборке), уровень тормозухи (так же), уровень топлива (тоже с лампочки, это когда на классике 6,5л остается но папик етот вход отключил :))) ), а по поводу аккума у меня в прикуриватель вставлено у-во на нем 3 СИД (кр-зел-кр) показывает (разряд-норма-заряд) типа амперметра чтоли.

Единственное что хочу, это вывести тахометр(как описывал) и успановить отсечку (программно разрывать провод от датчика холла к комутатору зажигания при превышении оборотов), поскольку ща зима, а покрутиться на 1-2 передачи жуть как охото, мона и перекрутить двиг (у меня раз клапана с поршнями встречались :) ).
А не работает, потому что нет контакта, где он должен быть, ИЛИ есть контакт, где его быть не должно!
Аватара пользователя
Max
Админ
Сообщения: 10815
Зарегистрирован: Вт авг 23, 2005 15:23:25
Откуда: Москва
Контактная информация:

Сообщение Max »

Эта... простите, я не понял - просто вырубать зажигание при превышении какго то количества оборотов? При включенной передаче? :shock:
Аватара пользователя
sich
Открыл глаза
Сообщения: 55
Зарегистрирован: Чт ноя 24, 2005 02:33:45
Откуда: г.Тольятти
Контактная информация:

Сообщение sich »

Точнее будет сказать не вырубать зажигание, а прекратить подачу искры. Подобное реализовано в контроллерах инжекторных мафынок (напр 2110). Эффект такой: набираешь обороты (для проверки лучше под нагрузкой, т.е. включить 1или2 передачу), когда идет превышение предела двиг глохнет, при падении оборотов снова работает. Смотрится все это будто на Н-ых оборотах машина очень быстро глохнет-заводится и звук н-н-н-н-н-н (ну в NFS UNDGR кто-нить играл??? :) )
Только вот на инжекторах скорее топливо прерывают, а не искру.
Но это пока задумка, как попрет так на деле видно будет :)
А не работает, потому что нет контакта, где он должен быть, ИЛИ есть контакт, где его быть не должно!
Аватара пользователя
sich
Открыл глаза
Сообщения: 55
Зарегистрирован: Чт ноя 24, 2005 02:33:45
Откуда: г.Тольятти
Контактная информация:

Сообщение 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
А не работает, потому что нет контакта, где он должен быть, ИЛИ есть контакт, где его быть не должно!
Аватара пользователя
Max
Админ
Сообщения: 10815
Зарегистрирован: Вт авг 23, 2005 15:23:25
Откуда: Москва
Контактная информация:

Сообщение Max »

Что то как то мне слабо в это верится... скорее всего, если совсем прекратить подачу топлива или напряжения на свечи на 1 или 2 сокрости, сдается мне, будет что то не очень хорошее :)
Аватара пользователя
sich
Открыл глаза
Сообщения: 55
Зарегистрирован: Чт ноя 24, 2005 02:33:45
Откуда: г.Тольятти
Контактная информация:

Сообщение sich »

Будет не что иное как торможение скоростью (в народе- торможение движком)!!! Я просто с двиглами начал ковыряться намного раньше, чем за руль сел, поэтому могу с уверенностью заверить, что при прекращении питания на скорости- все ОК, а вот с искрой там проблемка на карбах будет(горючку в цилиндры засасывает).

Вы меня куском проги лучше побалуйте по приему/передачи послед.кода. ЖУТЬ КАК ХОЧУ ТЕРМОМЕТР ЗАПУСТИТЬ!!!
А не работает, потому что нет контакта, где он должен быть, ИЛИ есть контакт, где его быть не должно!
Аватара пользователя
Max
Админ
Сообщения: 10815
Зарегистрирован: Вт авг 23, 2005 15:23:25
Откуда: Москва
Контактная информация:

Сообщение Max »

Смотрим ЛС :)
Аватара пользователя
sich
Открыл глаза
Сообщения: 55
Зарегистрирован: Чт ноя 24, 2005 02:33:45
Откуда: г.Тольятти
Контактная информация:

Сообщение sich »

И все равно не понимаю... Эх, надо было ходить на лекции когда последовательные интерфейсы проходили. Смысл вроде понятен: считываем/посылаем биты из/впорта через опред. промежутки времени. что такое "Timing Slot" ? Где брать счетчик для времени? Если встроенный счетчик-компаратор я использую, что мне можно еще задействовать (и КАК)???

И еще один прикол: при выполнении прерывания контроллер вырубает прерывания (установливает флаг I=0), при выходе он снова восстанавливает I=1. Так вот, если я одним прерыванием считаю секунды (Timer1_comp1), знач при выполнении другого прерывания (напр при отсчете времени для посл.кода) у меня не прервется таймер? что происходит в этот момент? вообще таймер считает относительно тактов контроллера (1такт=100нс при 10Мгц,правильно?), значит на счетчик не влияют другие прерывания? они влияют только на сравнивание счетчика... знач. при другом прерывании мы просто перепрыгнем это значение? Объясните толково как, что и почем...
А не работает, потому что нет контакта, где он должен быть, ИЛИ есть контакт, где его быть не должно!
Аватара пользователя
Serega
Говорящий с текстолитом
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

Таймеры совершенно не колышет, что в данный момент делает программа. Как ему выставил режим - так он и слитает пока не изменится режим.
По переполнению или сравнению или по любому другому событию, на которое установлено прерывание, пишется единичка в флаговый регистр. Эта единичка автоматически снимается при переходе на обработчик. Если в момент возникновения прерывания обрабатывается какое-то другое прерывание - единичка установится и будет там стоять до тех пор, пока не окончится обработка того прерывания...
Короче, все круто, и не надо так переживать :))

Тайминх Слот - это типа информативный отрезок времени. По длине этого слота мы определяем ноль или единица.

Короче, процессинг мне видится примерно так:
по каждому срезу сигнала (начало тайм-слота) считываем значение таймера и обнуляем его. Далее смотрим, сколько насчитал таймер. Если много - значит передан 0, если мало - значит 1. Все очень просто :)
Лучше быть первым в деревне, чем вторым в Риме
Аватара пользователя
sich
Открыл глаза
Сообщения: 55
Зарегистрирован: Чт ноя 24, 2005 02:33:45
Откуда: г.Тольятти
Контактная информация:

Сообщение sich »

Вот оно что..... т.е. не важно, какой лог уровень передаем, все равно по проводу идет низ(GND), а в зависимости от времени разделяем 0 это или 1....

Предлагаю алгоритм (рассмотрите и укажите косяки) :

устанавливаем шаг счетчика = 1милиСек
ЦИКЛ: ;это типа метки
считываем значение сигнала
если значение <> 1, то переход на ЦИКЛ ,иначе
Время=счетчику ; в переменной Время кол-шагов счетчика, т.е. милиСек
если время =1, то Х=1 ; в даташите "1"=1милиСЕК, "0"=60милиСек
если время =60, то Х=0
Запись Х в регистр
Сброс счетчика
переход на ЦИКЛ

Еще вопрос: последовательный код выдается со старшего байта? т.е если я получу 1 потом 0, 1, 0, 1, 0, 1, 0 это будет 10101010 = 170 или нет???
А не работает, потому что нет контакта, где он должен быть, ИЛИ есть контакт, где его быть не должно!
Аватара пользователя
sich
Открыл глаза
Сообщения: 55
Зарегистрирован: Чт ноя 24, 2005 02:33:45
Откуда: г.Тольятти
Контактная информация:

Сообщение sich »

А что такое scratchpad (в словарях не встретил) ???
А не работает, потому что нет контакта, где он должен быть, ИЛИ есть контакт, где его быть не должно!
Аватара пользователя
Serega
Говорящий с текстолитом
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

Временная память.
Как это не встретил? :shock:
http://lingvo.yandex.ru/en?text=scratch ... ranslate=1
Лучше быть первым в деревне, чем вторым в Риме
Аватара пользователя
БЕГЕМОТ
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вс ноя 27, 2005 22:31:11
Откуда: Воронежская область

Сообщение БЕГЕМОТ »

Мяу!... Sich, слушай! А ведь Max прав... На переднеприводной это будет выглядеть так:... Обычно превышаешь обороты в экстремальных ситуациях... Теперь о гололеде. Разгоняюсь, надо обогнать или что-нибудь, например, машину выровнять и вдруг - такая бяка, как торможение двигвтелем. Передок тормозится, зад несет куда хочет. По газам - да хрен там! (обороты ведь от скорости не зависят!) Выкинет в лучшем случае на обочину как жабу! :)).
Оно, конечно, дело хозяячее, но я своему хозяину такую цацку не рекомендовал бы ставить... Как реализация микроконтроллера -интересно, но делать себе на процессоре гильотину... :shock:
:) С уважением, БЕГЕМОТ.
...Какой-такой Nord-Ost?.. Хватит прикалываться, ты рукой покажи!...
Аватара пользователя
БЕГЕМОТ
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вс ноя 27, 2005 22:31:11
Откуда: Воронежская область

Сообщение БЕГЕМОТ »

Мяу!... Упреждаю, поскольку тахометр в в нормальных машинах работает, как правило от коммутатора, а не от коленчатого вала (преобразование частота импульсов -напряжение (или ток), то при разрыве сигнала от датчика холла к коммутатору, на коммутаторе будет 0 импульсов и на тахометре тоже 0 импульсов, и, соответственно, оборотов... Так что сигнал придется брать от датчика холла, а не от катушки...
Лучше что-нибудь улучшающее машину, а искра - она сама, когда не надо пропадает... :)
БЕГЕМОТ
...Какой-такой Nord-Ost?.. Хватит прикалываться, ты рукой покажи!...
doc626ge
Родился
Сообщения: 13
Зарегистрирован: Пт дек 16, 2005 00:41:35
Откуда: самара

Сообщение doc626ge »

Доброго времени суток уважаемые коты! :))
Тоже занимаюсь разработкой бортового компа на Atmega8, LCD 16x2. Тахометр, термометр работают, по отдельности, куски программы которые надо будет слепить в одно целое :) . Но возникла проблема: нужно измерить длительность открытия форсунки (длительность импульса - расход топлива). И на этом все застопорилось.... :cry: Прошу вашей мяу :) -помощи!!! :) :) :)
Аватара пользователя
Serega
Говорящий с текстолитом
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

Проблема в чем - в алгоритме измерения или нету датчика?
Лучше быть первым в деревне, чем вторым в Риме
Аватара пользователя
sich
Открыл глаза
Сообщения: 55
Зарегистрирован: Чт ноя 24, 2005 02:33:45
Откуда: г.Тольятти
Контактная информация:

Сообщение sich »

doc626ge писал(а):Доброго времени суток уважаемые коты! :))
Тоже занимаюсь разработкой бортового компа на Atmega8, LCD 16x2. Тахометр, термометр работают, по отдельности, куски программы которые надо будет слепить в одно целое :) . Но возникла проблема: нужно измерить длительность открытия форсунки (длительность импульса - расход топлива). И на этом все застопорилось.... :cry: Прошу вашей мяу :) -помощи!!! :) :) :)

а со штатных мозгов не пробовал взять данные? ведь бортовики на инжектора так и работают....
а что за датчик температуры взял? (я вот никак DS18S20 раскрутить не могу....)
А не работает, потому что нет контакта, где он должен быть, ИЛИ есть контакт, где его быть не должно!
doc626ge
Родился
Сообщения: 13
Зарегистрирован: Пт дек 16, 2005 00:41:35
Откуда: самара

Сообщение doc626ge »

to Serega, Sich проблема именно в алгоритме (точнее самого куска кода :) ). Думал взять с мозгов, но лезть туда как-то страшновато (не русская машина :) ) да и схем толковых найти не удается :) . Импульс хочу взять непосредственно с форсунки (как в "универсальных" БК) и измерить частоту (тахометр) и длительность (расход). Это в идеале. Можно конечно измерять rpm (тахометр) и с импульсов зажигания, но частота открытия форсунки пропорциональна rpm (1 имп. на форсунке=2 об. коленвала-вроде так) да лишнее прерывание придется использовать - боюсь не мега успеет правильно среагировать на 3 прерывания (имп. на форсунке придет одновременно с имп. зажигания). Вот и проблема... :( Использую DS18s20 (до 0.01 С), LCD DataVision 16x2. Help! Т.е. Мяу!!! :))
Аватара пользователя
sich
Открыл глаза
Сообщения: 55
Зарегистрирован: Чт ноя 24, 2005 02:33:45
Откуда: г.Тольятти
Контактная информация:

Сообщение sich »

во-первых напргу открывания (обычно 12В) надо перевести в лог."1"(через компраратор напр). потом загнать эту "1" на вход, и считать таймером длительность.... или по другому: вход от форсунок(импульс 12В) - на встроенный компаратор и сравнивай с напругой (12В,может чуть меньше). с компаратора можно же снять и передний и задний фронт(начало-конец открытия).

А в алгоритме какие проблемы? форсунка открылась-включай (обнуляй и запускай)счетчик, закрылась - останавливай, переводи значение в сек или в ЛИТРЫ \сек (зная давление в рампе и производительность форсунок)

Выложи ПЛИЗ кусок проги при работе с DS18S20 !!!! ОЧЕНЬ НУЖНО!
А не работает, потому что нет контакта, где он должен быть, ИЛИ есть контакт, где его быть не должно!
Ответить

Вернуться в «Цифровая техника»