| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Нужна помошь, хочу разобраться а не выходит |
| Автор: Gumel 7.8.2009, 00:35 |
| Ну собственно проблему вопроса не сильно удалось мне описать в шапке, напишу всё тут. Начну издалека и зачем мне это надо. Я студент 4-го курса автотранспортного факультета. В деревне, в которую я езжу 1 раз в неделю, был приобретён мотоцикл для отрывы души, для выплёскивания всего пара и т.д. Мотоцикл Планета. Так вот я сам по себе сильно датошный и привык во всём разбираться до конца. В своё время мною был спаян прошивальшик мозгов машины(волга инжектор) в которых мною было изменено множиство параметров для улучшения её характеристик. Года 2 назад был предмет на котором изучался VBA, в школе мы тоже изучали бэйсик(на то время можно сказать я даж его не изучал а повторял простое, то что делал раньше). Лет 5 (мне сейчас 20 лет) назад стоял у меня на компе какой-то хитрый бэйсик, он был ориентирован на игры и я с братом(брат мне и показал тогда что и как делать) начал делать простенькие игрушки и т.д. Брат-дельфийст самоучка(как учился раньше в политехе, потом интернет и т.д. в общем он очень неплохо знает делфи, хотя у него специальность строительная). Т.к. я молод и руки чешутся и хочется улучшить свою технику(я пока о мотоцикле) захотелось мне сделать умное зажигание, сейчас всё поясню. В общем из-за того что топливовоздушная смесь в двигателе не может воспламенится мгновенно, то её поджигают (высоковольтная свеча) чуть заранее, когда поршень идёт ещё вверх и.т.д. и т.п., на высоких оборотах смесь надо поджигать ещё раньше, а на мотоцикле этой реализации нет, там постоянный угол опережения зажигания, который эффективен не на всех режимах. Ближе к делу, на мотоцикле а именно на коленвалу (на его оси) будет установлена шторка с прорезью и будет стоять опто пара(может название путаю суть светодиод со свето приёмником, опять кряво наверное выразился). Далее мои мысли расходятся в 2-х направлениях, даже 3-х: 1) эта, оптопара будет подключена к к схеме с микроконтроллером, который должен в зависимости от оборотов вносить в выходной сигнал определённую задежку, на больших оборотах она должна стремится к 0, а на малых быть больше. Или зная обороты двигателя (прошлого оборота вычислять опережение зажигания), но т.к. есть шторка, то можно считать открытие и закрытие этой шторки (шторка круг на оси с угловым вырезом угол я думаю градусов 20 - 40 сам не знаю)(но опять же двигатель крутится с неравной угловой скоростью и эти способы замера оборотов могут давать большую разницу. Есть вариант(ток что в голову пришёл) Смотреть только по открытию или только по закрытию шторки и просто считать обороты, но Угол Опережения Зажигания(УОЗ) вычислять так: мы знаем скорость вращения предыдущего оборота, и оборота перед эти оборотом. Данную скорость коленвала высчитываем как (перд_оборот) + (пред_оборот - пред_перед_оборот) 2) оптопара идёт к комутатору(обычно после комутатора идёт катушка зажигания, к которой подключена свеча) от кумутатора в простую схемку с микриком, а от туда на катушку. 3) Из оптопары в микрик и срузу на катушку зажигания. Это ещё не всё) Т.к. я не знаю идеальный угол опережения зажигания который мне понадобится то желательно иметь несколько таблиц, которые я смогу переключать на ходу причём чем больше таблиц тем лучше, поидее используя 3 ключа можно получить от микроконтроллера 7 вариантов(возможно я не прав, поправьте меня) Так же можно реализовать ещё один ключ на выключение двигателя, или простое отключение микрика вырубит двигатель, так наверное и будет. Желательно сделать вывод на отдельную ногу с удвоенной тактностью для подключение простого автомобильного тахометра, который просто считает импульсы. Вроде всё. с микроконтролером ещё не определился, посоветуйте знатоки своего дела. Есть ссылка на _http://alash.by.ru/Courier/Projects/ign/latest/i_microc_1.html где описана более простая и частично не правильная схема с точки зрения УОЗ, так же есть исходники. Открыв исходники и поник, т.к. нифига не могу понять в тексте программы, хотя она проста. Полазив 2-а дня по http://www.123avr.com/ я весь день проводил в попытках понять но ничего не понял ещё толком. Так давайте мне поможем в этом нелёгком и интересном деле. П.С. Микрик по цене важен, мне не сильно охото тратить 300 рублей ради не столь существенного прихода, когда можно обойтись более простым микриком. Вот теперь точно всё. П.С. Писал целый час всё продумывая время 4:31 надо идти спать, если что-то непонятно то я отвечу на свою поэму. Завтра уезжаю в деревню приеду скорее всего в Субботу вечером или в воскр. Просьба ногами не пинать и т.д. В таком деле сложно что-то написать не используя чат т.к. я не знаю от чего и как правильно отталкиваться. Поэтому вот мой мэйл у кого есть мэйл агент. gumel_john(гав)mail.ru добавляйтесь, ток напомните мне что вы с форума. |
| Автор: cardinal 7.8.2009, 01:48 |
| Gumel, все обсуждение ведется на форуме (твой почтовый ящик лишний). |
| Автор: Mazzi 7.8.2009, 09:15 |
| Оптический датчик будет всё время забиваться пылью, лучше ставь датчик Холла. Контроллер лучше бери попроще, типа ATMega32. У него 32к памяти программ, где ты сможешь хранить свои таблицы. И для него доступны простой программатор и бесплатные средства разработки и отладки программ. |
| Автор: Gumel 7.8.2009, 11:17 |
| Mazzi, по поводу датчика Холла с ним бывают возникают проблемы т.к. он ставится рядом с генератором и возникает его перемагничивание и он быстро выходит из строя, по поводу пыли и опто датчиков ничё не запылится там всё будет под крышкой и не будет сообщатся с улицей. А теперь по поводу ATMega32 посмотрел цену и был в лёгком шоке цена 350 р. а если ATMega16 использовать я думаю если программа будет более 16 килобайт то перейти на 32 не будет проблем так? я где-то читал что они совместимы. |
| Автор: cardinal 7.8.2009, 13:01 | ||
Если честно, то я тоже немного в шоке. Посмотрел цену вот тут: http://www.chipdip.ru/product1/35635713.aspx Я их сам http://g24-tec.com/product_info.php/cPath/24/products_id/32 в ТРИ! раза дешевле! А раньше их в России можно было еще дешевле купить. Что произошло с ценами? p.s. http://www.new-technik.ru/product/atmega32-16au/ еще нашел подешевле, но тоже некислая цена... |
| Автор: Mazzi 7.8.2009, 13:01 |
| Я думаю с переходом проблем быть не должно, цоколёвка у них совпадает. Учти только момент, что у АВРок длинная команда занимающая сразу не менее 2х байт. Поэтому реально 16 килобайт флеши это не более 8 тысяч команд. |
| Автор: Gumel 8.8.2009, 21:52 |
| В общем пока только пытаюсь понять как в Сишке програмируется всё и, блин сразу же возникли проблемы!!! Warning: C:\VMLAB\z1\z1.c(1): explicit return type is missing, 'void' assumed Это что? а я ток начал http://www.123avr.com/z1.htm первый урок и всё тут( Вот сама Мега смешная прога main() { } вот и всё, с чего же возникла ошибка? вернее опасность? Я просто ещё мало что тут понимаю, но вот не могу понять какая ошиька может тут быть то? прога кодэвижн авр версии 2,04 Блин паникую наверное рано) это очередная мега хрень. П.С. мозг опять закипел, но я начинаю понимать почему у меня была тогда запара, просто хекс сохронялся не туда и не заменял старый, я про первую или 2-ю страницу книжки. А вообще прочиталь про принцип работы портов (ввод/ввывод и уже стало понятно что как делать). Можно же будет просто ногу переключать с многоомного на малоомную работу в реальном времени? сделать имитацию датчика холла? или как её тогда делать? Суть датчика в том что когда шторка не вошла в датчик(в его прорезь) то на одном из 3-х проводов появляется масса, на других двух + и масса. Когда шторка вошла в ДХ то тогда масса на этом проводе пропадает вот и всё, вернее там появляется высокое сопротивление, вот. В общем как организовать вход и выход. Вход с ДХ и выход с имитации ДХ? DDRх=0 PORTх=1 это я так понимаю на вход и можно будет напрямую подключить ДХ? опять смотрел суда http://alash.by.ru/Courier/Projects/ign/latest/i_microc_1.html и пытался понять что да как я имею ввиду схематику, так и не понял куда у него подключить ДХ и где его выход, точнее выход есть и по нему идёт +, D(BCS). или у него после коммутатора всё? посмотрите прошивку, я думаю вы хоть поёмёте. |
| Автор: cardinal 8.8.2009, 23:50 |
| Gumel, поменьше p.s. и побольше попыток с паяльником и мк (или с симулятором). |
| Автор: Gumel 9.8.2009, 09:32 |
| cardinal я понимаю вам легко говорить поменьше и т.п. а вы вообще представляете сколько я знаю на этом языке? я знаою очень мало можно сказать 0 и, блин, на вопрос то ответьте, давайте непонятное мне разъясните лучше , чем сразу мне за паяльник хвататься ещё ничего не сделав, для этого есть спец програмки. |
| Автор: Mazzi 10.8.2009, 12:22 | ||
Компилятор тебя предупреждает о том, что в функции нет возвращаемого значения. По умолчанию если не указывается тип возвращаемого значения, то считается , что он типа int. То есть компилятор считает, что у тебя написано int main() {} а в теле функции ожидает но не находит строку навроде return 0; Тебе следует дописать ретурн или явно указать тип возвращаемого параметра. В твоём случае я подозреваю что должно быть так: void main(void) { } Удачи! |
| Автор: Gumel 10.8.2009, 18:37 |
| блина чёт нихрена не понимаю, у меня мозг прям уже отключается и мысль в голове, что зря я наверное это затеял, т.к. есть 2-а варианта готовых решений. |
| Автор: Mazzi 11.8.2009, 08:55 |
| Готовое решение это тоже неплохо. Во всяком случае поможет сэкономить твоё время. |
| Автор: mr_smit 13.8.2009, 11:41 | ||||
Во во, так всегда бывает когда за что берешься А вообще я считаю не стоит за это браться. Твоё изобретение не улучшит характеристик двигателя.
Подобные углы должны точно рассчитываться. Подбором ты их не угадаешь. Это раз. Надежность всей конструкции вызывает большие сомнения. Если у тебя "что сломается" по пути "из города в деревню" то катить придется далеко... Устойчивой работы движка ты и вовсе не добьёшься. Если ты мотоцикл взял только чтобы пар выпускать, то я вообще не понимаю зачем тебе это???? Я с 16 лет начал ездить на отцовском ИЖ Юпитер 5 (как права на мотоцикл получил). Нафиг никакой регулировки такого уровня там не надо. Отрегулируй нормально зажигание. Поставь ведущую звездочку на 19 и он у тебя летать будет. Поверь, "табун лошадей" у тебя не прибавится, а если станет бензина на 100 грамм меньше жрать - погоды тебе это не сделает. А вот далеко выезжать станет страшно. |