Тахометр на pic

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Родился
Сообщения: 16
Зарегистрирован: Пт окт 15, 2010 13:56:51
Откуда: Москва

Сообщение Doretus »

Здравствуйте, в программировании я еще только зародыш. В арсенале имею язык PicBasic Pro. Итак, сам вопрос - Я хочу сделать тахометр на Pic контроллере, смысл его такой он подсчитывает кол-во импульсов приходящих с зажигания за 1 секунду, конвертирует их в об/мин и выдает импульс определенной ширины на шаговый двигатель.
Так вот импульс на шаговый двигатель нужно посылать каждые 20мс, а кол-во оборотов МК подсчитывает за 1000мс(При этом как я понимаю программа останавливается на 1с), можно ли сделать так чтобы МК посылал импульс пока МК подсчитывает кол-во оборотов?
Всему можно научиться, но самому что-то научить не всегда представляется возможным...
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Doretus писал(а):Здравствуйте, в программировании я еще только зародыш. В арсенале имею язык PicBasic Pro. Итак, сам вопрос - Я хочу сделать тахометр на Pic контроллере, смысл его такой он подсчитывает кол-во импульсов приходящих с зажигания за 1 секунду, конвертирует их в об/мин и выдает импульс определенной ширины на шаговый двигатель.
Так вот импульс на шаговый двигатель нужно посылать каждые 20мс, а кол-во оборотов МК подсчитывает за 1000мс(При этом как я понимаю программа останавливается на 1с), можно ли сделать так чтобы МК посылал импульс пока МК подсчитывает кол-во оборотов?
на пиках не работаю, но суть для ВСЕХ мк одна - есть прервания вот их и юзай.
и еще интевал в 1 сек для тахометра не очень удобен, возьми лучше 0,33с
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Родился
Сообщения: 16
Зарегистрирован: Пт окт 15, 2010 13:56:51
Откуда: Москва

Сообщение Doretus »

GP1 писал(а):на пиках не работаю, но суть для ВСЕХ мк одна - есть прервания вот их и юзай.
и еще интевал в 1 сек для тахометра не очень удобен, возьми лучше 0,33с
Всмысле зациклить конструкцию подсчета и в конце каждого цикла ставить МК на паузу?
Всему можно научиться, но самому что-то научить не всегда представляется возможным...
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2365
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград

Сообщение Dmitry Dubrovenko »

Тахометр, это - тот же частотомер.
Есть два способа:
1. Подсчитывать количество импульсов за единицу времени (не обязательно за 1с, можно хоть за 0,00001с, а потом пересчитать),
2. Измерять временной интервал между соседними импульсами.
ИМХО, второй - более оптимален.
ICQ нет, и, в ближайшее время, не будет.
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Doretus писал(а): Всмысле зациклить конструкцию подсчета и в конце каждого цикла ставить МК на паузу?
ничего ставить на паузу не надо.
- в основном цикле вычисляете значение для ШИМа (в пиках наверняка есть аппаратный ШИМ как в любом мк)
- если значение поменялось - перезаписываем
- в прерывании получаем значения для расчета частоты (хоть период повторения, хоть число импульсов за период времени, не суть важно)
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

GP1 писал(а):возьми лучше 0,33с
И чем же полезна сия циферка ? Скажите, если не секрет...
Только увеличит погрешность в 3 раза и больше ничего. Плюсов не вижу никаких.
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

если исходить из того, что мы говорим о тахометре для 4х тактного, 4х цилиндрового авто, то формула пересчета частоты в обороты двигателя будет выглядеть так:

N(об/мин)=30*Fп

и получается, если измерительный интервал равен 0.3(3) то разрешающая способность тахометра будет 100 об/мин, вполне достаточно.
а вот чтобы получить разрешающую способность 10 об/мин - то лучше измерять интервал между импульсами.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Такс, стоп. Опять непонятки :roll:
Формула для интервала в 1 сек.

Код: Выделить всё

F(об/мин)=60*N
Где N- кол-во импульсов, прошедших за период.

Соответственно, для интервала в 3 раза меньше, формула будет

Код: Выделить всё

F(об/мин)=180*N
Т.е. число 60 нужно умножить на 3.

Ваша формула - это для периода в 2 сек. Разрешение для неё будет 30 об/мин.
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Аlex писал(а):

Код: Выделить всё

F(об/мин)=60*N
Где N- кол-во импульсов, прошедших за период.
непонятки у кого? :shock:
за период чего?
когда это частота измерялась в об/мин?

а теперь давай рассуждать
N(об/мин) - число полных оборотов коленчатого вала в минуту
частота измеряется в Гц - число импульс/секунду, значит чтобы узнать сколько будет импульсов в минуту надо:
частоту*60 -> вроде бы получаем тою формулу
N=60*F, НО (моё любимое НО), вся проблема в том, что при условиях как я сказал выше (4х тактный 4х цилиндровый), рабочий такт и соответственно искрообразование (а частоту его мы и собираемся измерять) происходит 2раза за один оборот.
т.е. число N будет в 2раза больше истинного числа оборотов,
поэтому формула примет вид:
N=(60*F)/2
или, как раз моя формула
N=30*F

ps если не веришь мне, возьми частотомер и посмотри частоты на реальном авто.
думаю у тебя получится такое: :wink:
1500 об/мин = 50 Гц
3000 об/мин = 100 Гц
6000 об/мин = 200 Гц
:tea:

pss совсем забыл :) , про волшебную цифирьку 0.33 сек, не буду грузить высшей математикой...
а для наглядности возьмем 3000 об/мин
если у нас будет интервал в 1 сек то на вход мк успеет просочиться 100 импульсов, а вот если взять 0.33 то при той же частоте в мк успеет пролезть только 30 импульсов, и теперь выводя это число на индикатор (поставив между 3 и 0 десятичную точку) мы и получаем индикатор тахометра с разрешением в 100 об/мин.

или я не прав? тогда поправьте кто-нибудь.
Последний раз редактировалось GP1 Пт сен 16, 2011 18:38:50, всего редактировалось 1 раз.
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

1500 об/мин = 50 Гц
3000 об/мин = 100 Гц
6000 об/мин = 200 Гц
Вот теперь всё понятно. :tea: Получается 30 об/1 герц.
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Аlex писал(а):... Получается 30 об/1 герц.
я бы сказал 1Гц = 30 об/мин :write:
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 830
Зарегистрирован: Пт ноя 16, 2007 11:21:37

Сообщение Pavel_1978 »

GP1 писал(а):
Аlex писал(а):
поэтому формула примет вид:
N=(60*F)/2
или, как раз моя формула
N=30*F
учи математеку из твоей формулы получится N=30*F/2
Последний раз редактировалось Pavel_1978 Сб сен 17, 2011 10:43:13, всего редактировалось 1 раз.
Встал на лапы
Сообщения: 116
Зарегистрирован: Ср апр 28, 2010 17:49:14

Сообщение zenek »

учи математику из твоей формулы получится N=30*F/2
:shock: :shock: :lol: :lol: :lol: :)) :))
Да ну?
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Pavel_1978 писал(а):
Аlex писал(а):
поэтому формула примет вид:
N=(60*F)/2
или, как раз моя формула
N=30*F
учи математику из твоей формулы получится N=30*F/2
Я не писал такого :shock:

60F/2 = 30F :)
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

Pavel_1978 писал(а): учи математику из твоей формулы получится N=30*F/2
Паша, вот с математикой-то у меня все в порядке, не то что с русским :oops:
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»