самодельное зажигание.
Кварца для этой микросхемы не надо, у нее свой встроенный генератор. С 10 ноги идет стробирующий сигнал, можно подключить светодиод. Про выводы 4, 12 и 13 не скажу, никогда их не использовал, без их все работает. Характеристика угла следующая; 1000 об/мин - 4 градуса, 15000 об/мин - 12, 3000 - 3, потом ползет ввех почти линейно до 5800…6000 об/мин, а далее прямая горизонтальная линия. Выводы 8 и 9 для запуска имитатора малых оборотов и максимальных. 9 вывод на землю, на 8 либо земля или ничего, на выходе тестовый сигнал.
А есть исходники на 16F628?
Есть, написан в С+, правда в С+ я ничего не понимаю, так-же как и в асемблере, иначе сам что-нибудь написал.
Интересно первая схема и прошивка к ней, на 628 какая характеристика. И на этой же схеме не могу понять, кварца нету, за что отвечают контакты 10 на базу транзистора идут, выводы RB6-12 нога, RD7-13, MCLR-2 нога? Вчера зашил PIC, сегодня хочу поэкспериментировать заделать на моторчике коллекторном магнитик с датчиком холла и на выходе поставить светодиод яркий и посветить на вал посмотреть, как будет изменяться угол на разных оборотах. Также интересно увеличить точность изменения угла, применив другой контроллер можно ли?
Про точность угла. Я сам сделал штук 20 тарировок. На первом этапе задавал кривую угла (по началу все красиво), переводил в задержку, получал милисекунды, переводил задержку в шестнадцатеричный код. Менял данные в исходном файле, компилировал и получал прошивку (.HEX) Так вот, на этапе перевода милисекунды в код появлялась большая погрешность, тут ничего поделать невозможно, как не крути. Например; коду 1b соответствует, чисто условно, сейчас не помню, угол от 7 до 10 градусов. А если построить график кодов от оборотов, то получится такая лестница, смотреть противно, какая уж тут точность. Насчет другого контроллера, не скажу, не знаю, да и такого вопроса у меня не воэникло, работает ведь, что еще нужно от игрушки.
А есть возможность изменить кривую УОМЗ?
Я менял кривую угла для PIC16F84, там исходник написан в асемблере. Для PIC16F628 не делал, хотя это можно сделать, я менял данные в исходнике (написан в С+) а вот скомпилировать так и не смог. Та программа, на которой пытался это сделать, показалась мне такой мутной, что отложил я это дело до лучших времен. В теме про бензопилу есть ссылки на сайты, там расписано как это делается.
Владимир, а какая из схем генераторов вам больше “понравилась”?
Похоже они одинаковы, просто изначально я изготовил по схеме как 26 посте и сней работал. А лучше та, которая настроится и получится лучше. Все зависит от ферита и где-то от транзистора, некоторые сразу работают, то-есть выдают нужное напряжение, другим надо подбирать сопротивление в базовой цепи. Когда я первый раз собрал преобразователь, он заработал а нагрузку не держал (при подключении выпрямительного моста), генерация срывалась. Оказалось блокировочная емкость по питанию слишком мала (0,1 мкФ, почему ее такой указали не пойму), заменил на 10мкФ, все сразу заработало.
Спасибо Владимиру, запустил свой движок без опережения с Эмитерным повторителем. Магнит вставил чуть ранше ВМТ запускаеться с пол тичка ешо раз Спасибо Владимиру
Vladimir(T)
а с самодельной бабиной не эксперементировали???
конструктив… данные матушки???
я написал своё…зажигание на меге8… тактовая 4 мгц…
обрабатываемые обороты таблицей в 256 байт поличились от 920 до ~200000
но на верхних оборотах получился большой шаг…
вот конец таблицы
33-7102,272727
32-7324,21875
31-7560,483871
30-7812,5
29-8081,896552
28-8370,535714
27-8680,555556
26-9014,423077
25-9375
24-9765,625
23-10190,21739
22-10653,40909
21-11160,71429
20-11718,75
19-12335,52632
18-13020,83333
17-13786,76471
16-14648,4375
15-15625
14-16741,07143
13-18028,84615
12-19531,25
11-21306,81818
10-23437,5
9-26041,66667
8-29296,875
7-33482,14286
6-39062,5
5-46875
4-58593,75
3-78125
2-117187,5
1-234375
ну последние шт25 нам не нужны… но обработка скажем до 20000 не помешает…
а вот тут …
33-7102
32-7324
уже вполне адекватный шаг.
кстати для настройки …сделал так…
в перывании после выдачи искры… на комп на скорости 115200 отправляю два байта 😁
номер ячейки таблицы и её содержимое 😛
а на компе в логере наблюдаю такое…
например
FD FF
FC FF
второе значение это количество пауз из расчёта 1п=(40гр-5гр)/256
а вот первое пляшет всего в пределах единицы…(на одних постоянных оборотах).
Насчет адекватности шага ничего не могу сказать, надо видеть кривую угла опережения зажигания. В моем ватианте при оборотах свыше 6000 график имеет линейный вид. У вас, как я понял, линейность начинается примерно с 7000 оборотов. Покажите график угла, тогда можно будет судить об адекватности.
Насчет настройки, тут я ничего не понял, дайте ссылку на материал, по примеру которого Вы работали, как то я не в теме.
У меня вопрос по контроллеру, он у вас при низких температурах работает? Я это к чему. PIC16f628 уже при нуле градусов не работает. Вернее зажигание с этим контроллером работает если контроллер “промышленный”, для низких температур (-25…125). Тот который у меня стоит, комнатный, минусовые температуры не любит. Купить в магазине “промышленный” трудно и похоже продавцы не знают и не догадываются о существовании таких контроллеров.
Самодельными катушками не занимался, была такая задумка, но это на будуее. Если получится, то отпишусь в этой теме.
Насчет адекватности шага ничего не могу сказать, надо видеть кривую угла опережения зажигания. В моем ватианте при оборотах свыше 6000 график имеет линейный вид. У вас, как я понял, линейность начинается примерно с 7000 оборотов. Покажите график угла, тогда можно будет судить об адекватности…
разные моторы разные моменты зажиганий…
график может быть любым…по Х шаг по оборотым по У шаг 35гр\256
датчик хола можно ставить в любом положении. и потом от него считать момент…
Насчет настройки, тут я ничего не понял, дайте ссылку на материал, по примеру которого Вы работали, как то я не в теме…
а ссылки и нет… яж сказал что своя разработка
У меня вопрос по контроллеру, он у вас при низких температурах работает?.
на такомже проце у меня сделан частотомер он стоял в стк-500 и соотвемственно был без корпуса… на -15 работал без проблем…обдувался дажить винтом… руки в перчатках за 6р 😁 замёрзли
[QUOTE=KGB;1758133…датчик хола можно ставить в любом положении. и потом от него считать момент…[/QUOTE]
Вот тут не соглашусь с Вами, ведь как работает автомат, к заданному механическому опережению контроллер добавляет задержку. А на максимальных оборотах этой задержки нет. Поэтому установив механическое опережение в 10 градусов, Вы не получите желаемое опережение в 30 градусов на максимальных оборотах, если конечно у Вас не специальная, хитрая тарировка угла опережения зажигания с большим временем задержки. Только к чему такие сложности, когда можно сделать проще.
Поэтому установив механическое опережение в 10 градусов, Вы не получите желаемое опережение в 30 градусов на максимальных оборотах.
😁 ну это вы уже наверно шутите !
понятно что надо отталкиваться от опережения на максимальных оборотов данного мотора…
на одном оно может быть 25гр а на другом 40гр (реально момент искры)
и ставить хол на моторе в 40гр с реальным опережением в 25гр не эфективно…
как Вы сами писали изза больших ступенек… а так дискретность меньше…точность выше.
-----------------------------------
а ваще я щитал так… сперва задол обороты… пределители таймера(возможности проца) и получил приблезительно 4мгц тактовой… сделал = 4 и стал щитать в обратку… задача была сделать так чтобы рабочие обороты мотора попали в диапазон счёта таймера от 0 до 255. чтоб не парится с 16 бит.
получилось так…
4 мгц
1 такт = 0.000 000 25 *1024 = 0.000 256
0.000 256 * 255 = 0.065 28 - это минимальные обороты…
= 15.3186гц * 60 = 919 оборотов. округляем = 920
на 15000 дощитает до 15.625
вполне всё устраивает…
это какбы сделан частотомер…
потом число счётика добавляем к начальному адресу таблицы…
и делаем выборку… те получаем опять число… от 0-255
теперь выбрали место установки хола… например 40гр…
на минимальных оборотах опережение гдето 5гр… менше не бывает…
значит рабочий диапазон 40-5=35гр разбиваем на 256 частей.
и получаем время… делаем в проге такую паузу…обзавём это Т
потом выесняем на каких оборотах какое надо опережение…
например 8000… опережение 30гр… значит задержка от хола составит 10гр
считаем за какое время на таких оборотах будет время ОДНОГО оборота…
потом это время делим на 360 и умножаем на 10…
потучили время прохода 10ти градусов на 8000обмин…
делим это время на Т и получаем сколько нам надо выдать пауз Т…и это число заносим в таблицу в ячейку 0адрес + число из счётчика
а для контроля что в реальности происходит…после выдачи искры, на компьтер по стандарту рс232 на скорости 115200 передаём два байта…
первый число из чсётчика…второй считаное по этому адресу значение количества задержек Т
…вот!!! и всё
это всё уже работает!
Поздравляю. Константин, если это не комерческая тайна, то сбросьте мне в личку исходник в асемблере. Интересно посмотреть, на иностранных сайтах эта задача была немного по другому организована, с какими-то плясками с бубном, немного не так как у Вас.
ща…
в тексте поправте этот кусок…
;----------------------------
; сбрасываем таймер
ldi Temp,1<<TOV0 ; сбрасываем переполнение…
out TIFR,Temp
ldi Temp,0x00
out TCNT0,Temp ; заполняем таймер
ldi Temp,1<<PSR10 ; сброс пред делителя…
out SFIOR,Temp
;----------------------------
добавлен сброс пред делителей… это повысит точность счётчина до единицы 😃))
я видел два варианта прошивок. в первом ДХ установлен в ВМТ и искра дается с задержкой уже для следующего оборота. Причем опережение может быть любым, хоть 100 градусов.
Только первая искра при запуске выдается сразу, без задержки, в ВМТ. В проге есть участок, где проверяется что мотор заглох. Если заглох, то первая искра опять без задержки.
У Вас же второй вариант - ДХ установлен на величину максимально возможного опережения и первая искра при запуске уже дается с задержкой. Но обороты то еще не рассчитаны. Проц не знает с какой силой вы толкнули винт. Тоесть первая искра получается с опережением “как повезет”. А теоретически, для легкого запуска, первую искру надо давать в ВМТ.
Скажите, я правильно все понял? И почему тогда вы выбрали такой вариант?
Проверте пожалуйста схему. перерисовал под пик16ф84 с учетом того что выше говорилось. Вот только не понял про высоковольтную часть. привел ее ниже. как делать? как у них или как у вас?
Схема тут keep4u.ru/…/0a177a878e77535f811dd1619d5e9667.html
Все делалось исходя из того что есть, то-есть двигатель, где механически выставлено опережение в 28 градусов, поэтому и прошивка такая. При запуске первая искра с опережением в 28 градусов, вторая уже пересчитывается, ничего страшного, все работает.
преобразователь можно делать по любой схеме, разницы нет, выбирайте что нравится.
По поводу контроллера, купите какой указан в первоисточнике, тем более он дешевле стоит. Я пытался сделать подобное, что у вас, но просто сжег контроллер, не понравилось ему что-то.
И еще, вы не внимательно изучили схему, общей земли между преобразователем и блоком контроллера не должно быть!!!
Характеристика угла следующая; 1000 об/мин - 4 градуса, 15000 об/мин - 12, 3000 - 3, потом ползет ввех почти линейно до 5800…6000 об/мин, а далее прямая горизонтальная линия.
Владимир, поясните, пожалуйста, все ли правильно в Вашей цитате и откуда на Excel-евском графике (и в графе “угол опережения”) получается более раннее зажигание для 1000 об/мин по сравнению с 2500 об/мин?
В графе “задержка для контроллера” и в таблице прошивки соответствующее число монотонно убывает без каких бы то ни было “провалов”!
… При запуске первая искра с опережением в 28 градусов, вторая уже пересчитывается, ничего страшного, все работает.
в моём варианте расчитывается сразу первая искра 😃
общей земли между преобразователем и блоком контроллера не должно быть!!!
Ах да, точно, не заметил, спасибо! Тоесть + и - двух плат соединяются через индуктивности.
16ф628 у нас нет ни в одном радиомагазине. а 84-е по 4$. А с чего ему гореть? Обвязка-то скопирована с рабочей схемы.
Также присоединяюсь к вопросу Павла.
запуске первая искра с опережением в 28 градусов
точнее сказать “отставание” а не опережение. =)
Нашел старый БП от компа. там три транса разных размеров. самый маленький я уже сломал, когда пытался расклеить - хрупкий, зараза. Грел в микроволновке, градусов до 80. надо больше?
Как думаете, можно использовать те, что побольше?
точнее сказать “отставание” а не опережение. =)
вообщето про 28гр не я сказал… и не отставание а опережение…
магнит встречается с датчиком когда коленвал ещё не дошол до ВМТ 28гр …
(в данном случае)