Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

Регулятор УОЗ на основе "Тахометр на ATtiny2313"

Здесь только проекты на ATtiny

Регулятор УОЗ на основе "Тахометр на ATtiny2313"

Сообщение sergdvin » 29 фев 2016 12:19

Добрый день! Не хотите добавить в прошивку Тахометра возможность управления опережением зажигания? Будет устройство 2 в 1. Сейчас собираю себе гибрид ПЛМ Ветерок + Champion G200 на этих моторах фиксированный угол опережения зажигания, хочется собрать устройство которое будет изменять угол опережения в зависимости от оборотов двигателя. Тахометр также необходим для подбора винта. Готовых решений не нашел. С программирование не очень но с паяльником на ты. Нет желания помочь?
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

Re: Тахометр на ATtiny2313

Сообщение IYra » 29 фев 2016 15:53

sergdvin писал(а): добавить в прошивку возможность управления опережением зажигания? Будет устройство 2 в 1. Сейчас собираю себе гибрид ПЛМ Ветерок + Champion G200

Стоит ли там датчик Холла ?
Если есть то в принципе можно. Выход свободный есть PD3 (7 ножка)
на него выводить импульс со сдвигом
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение sergdvin » 29 фев 2016 16:20

Да там будет стоять датчик Холла

Добавлено спустя 13 минут 51 секунду:
Я представляю все это дело так:
1. Физически ставлю датчик под опережение допустим 40 градусов
2. МК получает сигнал с датчика и делает задержку если обороты от 0 до 1000 задержка 1 , от 1000 до 2000 задержка 2, от 2000 до 3000 задержка 3 , от 3000 до 4000 задержка 4, от 4000 до 5000 задержка 5, после 5000 отключить выдачу импульсов с МК (защита от перекрута получается)
3. Сигнал с МК хочу подать на коммутатор от ВАЗ который работает с датчиком Холла
4. Время задержки для получения оптимальных углов опережения подбирается по мере испытаний.
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

Re: Тахометр на ATtiny2313

Сообщение IYra » 29 фев 2016 16:49

sergdvin писал(а):3. Сигнал с МК хочу подать на коммутатор от ВАЗ который работает с датчиком Холла

Все остальное понятно а вот сигнал с МК на коммутатор какой должен быть ?
Его длительность и амплитуда.
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение sergdvin » 29 фев 2016 17:23

Длительность примерно 3-4 мс, амплитуда 5 вольт (пойдет к коммутатору через транзистор).
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

Re: Тахометр на ATtiny2313

Сообщение hardlock » 29 фев 2016 17:25

Могу выложить проект стробоскопа для измерения угла опрережения зажигания. Там уже есть математика для вычисления угла.

Импульс на коммутатор обычно почти меандр.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Тахометр на ATtiny2313

Сообщение sergdvin » 29 фев 2016 17:33

С датчика Холла вроде такой и выходит, а коммутатор рассчитан на работу с ним. Математику неплохо почитать будет.
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

Re: Тахометр на ATtiny2313

Сообщение IYra » 01 мар 2016 19:12

sergdvin писал(а): Математику неплохо почитать будет.

Математику я использовал такую
Расчет УОЗ
60 000 000 мкСек (1 мин) делим на обороты - узнаем кол-во мкСек на один оборот
затем делим на 360гр - узнаем кол-во мкСек на один градус
Для формирования импульса используется прерывание по сравнению OCR1A
interrupt [TIM1_COMPA] void SYSTEM_TICK_interrupt(void)
одна единица(тик) - 16 мкСек. Например если OCR1A = 10 прерывание наступит через 160 мкСек
поэтому формула расчета тиков на 1гр получается такая
(60 000 000/(16*360))/обороты = 10417/обороты
а задержка в тиках - YOZ*10417/обороты (для увеличения точности умножаем и делим на 4 )

zad = (41667/wRpm) ; // (60 000 000/(16*360)) = 10417 -> 10417*4
zad = (zad * grad)/4 ;

grad вычисляется как разница между углом установки датчика
#define Holl 40
и УОЗ в зависимости от оборотов
#define Grad1 10
#define Grad2 12
#define Grad3 14
#define Grad4 16
#define Grad5 17

grad = Holl - Grad

И затем OCR1A = zad
Поправьте если ошибаюсь.
И еще возник вопрос
Надо ли учитывать длительность формируемого импульса ? Ведь искра формируется по спаду
Вроде надо
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение sergdvin » 01 мар 2016 20:29

Длительность импульса можно задать константой 2-4 мс этого времени хватит для накопления энергии катушкой. Все верно искра формируется по спаду. Но ведь ничего не мешает начать отсчитывать задержку от поступления импульса с датчика и подать сигнал на катушку длинной 2-4 мс.
Последний раз редактировалось sergdvin 01 мар 2016 20:55, всего редактировалось 1 раз.
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

Re: Тахометр на ATtiny2313

Сообщение IYra » 01 мар 2016 20:54

sergdvin писал(а):Длительность импульса можно задать константой 2-4 мс этого времени хватит для накопления энергии катушкой. Все верно искра формируется по спаду.

Ну дак надо учитывать длительность импульса при определении задержки ?
Получается так - тахометр отловил спад импульса от датчика Холла и расчитав задержку выдал импульс 2-4 мс, а искра пойдет позже чем расчитано. И чем больше обороты - тем дальше уйдет поршень за 2-4 мс
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение sergdvin » 01 мар 2016 20:58

Понял о чем Вы, да учитывать нужно , так чтобы задержка считалась от спада или поднятия уровня с датчика до спада выходного импульса.
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

Re: Тахометр на ATtiny2313

Сообщение IYra » 01 мар 2016 21:18

sergdvin писал(а): чтобы задержка считалась от спада или поднятия уровня с датчика

В тахометре сделано по спаду уровня с датчика. А для этой конструкции наверно лучше сделать по подъему уровня
И еще вопрос. Сколько будет импульсов датчика за один оборот ?
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение sergdvin » 01 мар 2016 21:43

Двигатель одноцилиндровый четырехтактный, значит один импульс за один оборот, одна искра рабочая одна холостая. Нет лучше по спаду.Прошу прощения я все перепутал , когда система работает со стандартным датчиком холла для определения времени накопления заряда и пробоя воздушного зазора используется шторка модулятор с вырезанными секторами. Когда металлическая часть шторки выходит из датчика Холла , напряжение на нем возрастает и коммутатор разрывает массу катушки. Получается что время горения должно составлять 2-3 мс , а время накопления будет зависеть от оборотов. То есть задержка должна быть спад подъем на коммутатор нужно подать импульс (5в. логическая 1) длительностью 2-3 мс, время начала подачи импульса и будет искрой. Потом 0 в это время катушка зарядится до следующего импульса.
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

Re: Тахометр на ATtiny2313

Сообщение IYra » 02 мар 2016 11:04

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

Ну это надо сначала по тахометру посмотреть. Какой коэффициент использовать
#define byBladeCnt 2 //1- две катушки, 2 - одна катушка, 4 - мотоцикл.
Сейчас поставил 2
sergdvin писал(а): когда система работает со стандартным датчиком холла для определения времени накопления заряда и пробоя воздушного зазора используется шторка модулятор с вырезанными секторами. Когда металлическая часть шторки выходит из датчика Холла , напряжение на нем возрастает и коммутатор разрывает массу катушки. Получается что время горения должно составлять 2-3 мс , а время накопления будет зависеть от оборотов. То есть задержка должна быть спад подъем на коммутатор нужно подать импульс (5в. логическая 1) длительностью 2-3 мс, время начала подачи импульса и будет искрой. Потом 0 в это время катушка зарядится до следующего импульса.

Вот чего я нашел в сети. http://manual.countryauto.ru/vaz/2107/8-5-3-3-kommutator.html
Получается что с датчика идет 10В и коммутатор формирует искру при спаде.
Соответственно я и сделал.В приложении проект в Протеусе
Вложения
tach_YOZ.rar
(31.71 КБ) Скачиваний: 49
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение sergdvin » 02 мар 2016 12:35

Огромное спасибо в протеусе все работает, буду воплощать в железе. Вы не могли бы расписать подробно построчно код чтоб в нем можно было разобраться человеку не близкому к программированию. Например что б можно было начинать отсчет опережения не от спада а от поднятия напряжения. Чтоб каждый кто захочет себе собрать устройство смог подогнать код под свои условия.
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

Re: Тахометр на ATtiny2313

Сообщение IYra » 02 мар 2016 20:07

sergdvin писал(а): Например что б можно было начинать отсчет опережения не от спада а от поднятия напряжения.

Надо заменить
MCUCR = 0x02 ; // Настраиваем INT0 на спад остальные биты не важны.
на
MCUCR = 0x03 ; // Настраиваем INT0 на подъем остальные биты не важны.

Ну что еще..
Углы определены дефайнами

#define Holl 40 // Датчик Холла
#define Grad1 10 // < 1000
#define Grad2 12 // < 2000
#define Grad3 14 // < 3000
#define Grad4 16 // < 4000
#define Grad5 17 // < 5000

Хотя наверно удобней при расчете угла использовать линейную функцию (с перегибом)
Углы измеряются от ВМТ
Длительность импульса задается
OCR1A = 200 ; formImp = 0 ; // Ширина импульса 200*16 = 3.2 мс
Ну вроде все пока. Спрашивайте если что
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение sergdvin » 03 мар 2016 13:31

Добрый день , как переделать код под atmega8 , если заменить attiny2313 на include mega8.h, при компиляции ругается GIMSK , TCCR0B , EIFR, CLKPR, PORTA , DDRA это возможно исправить под atmega8 ? Еще вопрос на сколько важен внешний кварц , хватит ли встроенного генератора?
P.S. Прошу прощения за наверное глупые вопросы.
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

Re: Тахометр на ATtiny2313

Сообщение IYra » 03 мар 2016 16:39

sergdvin писал(а): как переделать код под atmega8 , это возможно исправить под atmega8 ? Еще вопрос на сколько важен внешний кварц , хватит ли встроенного генератора?

Кварц обеспечивает точность и стабильность показаний. Лучше с ним.
А под atmega8 можно переделать
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение hardlock » 04 мар 2016 11:42

sergdvin писал(а): на сколько важен внешний кварц , хватит ли встроенного генератора?

без него на тиньке показания пляшут как бешеные, с ним - стоят...
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3374
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Тахометр на ATtiny2313

Сообщение IYra » 12 мар 2016 21:10

sergdvin писал(а):как переделать код под atmega8 ,

Переделал под atmega8 . Кварц на 8 мГц. Добавлены кнопки.
Можно настраивать углы не перепрошивая. Два режима.
1.
Если тахометр показывает 0 - нажатие "-" включает режим выбора угла (нижнее подчеркивание)
выводит углы в цикле (1000/1 - 2000/2 - 3000/3 - 4000/4 - 5000/5)
нажатие "+" включает режим корректировки угла (верхнее подчеркивание)
через 4 сек если не нажимать кнопки - переход в режим Тахометра.
Углы запоминаются в EEPROM
2.
При работающем двигателе нажатие "-" включает режим выбора угла соответствующего частоте.
частота и угол выводятся в цикле с периодом 0.5 сек
Можно зафиксировать газ (обороты) и подбирая угол добится максимальных оборотов.
Я так думаю что это и будет оптимальный угол.
Вложения
taho_yoz_mega8.rar
(34.03 КБ) Скачиваний: 51
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение sergdvin » 20 мар 2016 21:39

Собрал себе Тахометр + ФУОЗ , схему нарисовал такую , все работает огромное спасибо за помощь с программой. Тестировал на двигателе Лифан 1 цилиндр четыре такта , датчик холла униполярный , катушка для CDI от индукционного счетчика 9300 витков проводом 0.14 , питание пока от акб , хочу домотать витков и пить вообще без внешнего питания. Для второго похожего мотора буду собирать на Атмега8 попробую функции настройки на ходу , а то сегодня много раз прошивал чтоб добиться оптимальной работы.

Добавлено спустя 1 минуту 39 секунд:
Еще вопрос , что менять в коде если использовать кварцы разной частоты?

Добавлено спустя 22 минуты 19 секунд:
Vetal001 писал(а):То есть вы хотите сказать, что не работает кварц?

Если компоненты исправны все работает сразу. Проверить кварц не кварц можно запустить со встроенным генератором и тогда будет видно работает или нет. Шил Аттини простейшим программатором LPT , Понипрогом, только кварц в него добавил.

Добавлено спустя 10 часов 48 минут 59 секунд:
На аттини2313 у меня остались свободными ножки 11 (PD6) и 14 (PB2) можно на них как-то повесть кнопки регулировки УОЗ как на Атмега8?
Вложения
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

Re: Тахометр на ATtiny2313

Сообщение IYra » 21 мар 2016 11:00

sergdvin писал(а): что менять в коде если использовать кварцы разной частоты?

Это для проекта на ATtiny2313
Код: Выделить всё
#define Prescaler 0x01 //0x00 - для кварца 4MHz, 0x01 - для кварца 8MHz...

sergdvin писал(а): На аттини2313 у меня остались свободными ножки 11 (PD6) и 14 (PB2) можно на них как-то повесть кнопки регулировки УОЗ как на Атмега8?

Не знаю как по памяти хватит ли. Попробую.
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Re: Тахометр на ATtiny2313

Сообщение sergdvin » 21 мар 2016 20:43

Спасибо буду очень признателен. Еще выяснилась такая особенность если ставить количество импульсов 1 то значение положения датчика 60 , если 2 то 30 , фактически стоит примерно 50-60 и один сигнал за 1 оборот, как связанны эти параметр(Так получилось случайно прошив не той прошивкой )? Момент смотрел стробоскопом, регулировке опережения от оборотов правильные , отсечка при превышении также хорошо работает.
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

Re: Тахометр на ATtiny2313

Сообщение IYra » 21 мар 2016 21:03

sergdvin писал(а):Еще выяснилась такая особенность если ставить количество импульсов 1 то значение положения датчика 60 , если 2 то 30 , фактически стоит примерно 50-60 и один сигнал за 1 оборот, как связанны эти параметр?

Что-то не пойму я вопроса.
Код: Выделить всё
#define byBladeCnt 2 //1- две катушки, 2 - одна катушка, 4 - мотоцикл..

Про этот параметр вопрос ?
IYra
Живу тут
 
Сообщения: 543
Зарегистрирован: 01 фев 2012 19:36
Откуда: Санкт-Петербург

Регулятор УОЗ на основе "Тахометр на ATtiny2313"

Сообщение sergdvin » 21 мар 2016 21:46

Да и параметр Holl
sergdvin
Пробегал мимо
 
Сообщения: 24
Зарегистрирован: 29 фев 2016 12:14
Откуда: Архангельск

След.

Вернуться в ATtiny



Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 10