Свежие обсуждения
Микроконтроллеры

Реверсивный двухканальный счетчик импульсов на PIC18F452 - нужна помощь.

1 5

Имеется в наличии PIC18F452 и индикаторы LCD 2x16 Reystar(аналог HD44780) и LED FYQ-5642Ax . Требуется собрать реверсивный счетчик импульсов с двумя входами "А+" и "В-" или наоборот "А-" и "В+" На эти входы импульсы поступают поочередно : либо только на входа "А", либо только на вход "В". Т.е. не возможна ситуация одновременного поступления импульсов сразу по обоим входам. Но ситуация по входам находится в динамике и постоянно изменяется. Поэтому должен быть постоянный жесткий контроль (учет импульсов) за изменением ситуации по входам и вывод результата на индикацию. Может кто-то помочь в решении такой задачи ?

 

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

 

Я исхожу из того, что у меня имеется в наличии. Я бы не против взять что-то подешевле, но если у нас в городе нету его на рынке у мужиков, то надо ехать в Днепропетровск или в Запорожье. Тогда он мне станет дороже, чем PIC18F452. Я узнаю - может у кого то имеется в загашнике tiny2313. Вообще-то у этого устройства будет более объемная задача. Возможно, что tiny2313 не справится с полным объемом задачи. У меня имеется автомобильный тахометр на ATTINY26L-8SU. Можно его перепрограммировать на счетчик? Но лучше, все же, решить на PIC18F452 и индикаторе LCD 2x16 Reystar(аналог HD44780). А на BASIC-е ты можешь программировать ?

 

Если у "мужиков" нету tiny2313 - тогда мужики там зря стоят. Если задача более объемная чем вначале, то ее либо нужно ставить полностью, либо Вы, я так понимаю, собирались дописывать остальной функционал сами. Я если и смогу помочь, то только AVR ассемблером.

 

Я далек от программирования. Поэтому самостоятельно ничего не смог бы дописать. В этом плане "мой поезд ушел".

А автомобильный тахометр на ATTINY26L-8SU можно перепрограммировать на счетчик? Он на каком языке запрограммирован ?

 

Контроллеру по-барабану на каком языке писАлась прошивка. Компилятор все равно это транслирует в машинные коды. Да и контроллеры Microchip / Atmel / TI и т.д. в одной "весовой" категории не отличаются грандиозно друг от друга. Главное максимально правильно поставить техзадачу, во всех мелочах, а то на каком и микроконтроллере и на каком языке программирования это будет реализовываться - зависит уже от того программиста с которым свяжетесь. Ну вот например:
1. Есть микроконтроллер, это понятно.
2. Есть дисплей стандарта HD44780 - это тоже понятно.
3. Есть вход с которого надо плюсовать +1 к счетчику, есть вход с которого минусовать.

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

Вот примерно это и будет ТЗ. Ну а дальше уже нужно размышлять - то ли Вы мастерите какой-то интересный радиолюбительский девайс и просите помощи у тех кто знаком с программированием и такие же энтузиасты, как и Вы помогут безвозмездно, то-ли это попахивает коммерческим (пусть и не очень крупнобюджетным проектом) - тогда, сами понимаете, придется делиться. Лично я пришел к изучению программирования потому, что искал решение проблемы с очень интересным устройством а помощи на форуме так и не нашел (точнее нашел только коммерческое предложение) - поэтому не хочу чтобы Вас постигло такое же разочарование в людях как меня когда-то.

 

Касательно автомобильного тахометра на ATTINY26L-8SU - я спрашиваю потому что не знаю относится ли он к серии перезаписываемых или он одноразовый - записали, запаяли и теперь уже изменить в нем программу невозможно.

Касательно основной задачи : импульсы будут поступать от ротационного датчика (encodera) прямоугольной формы, TTL 5V. Пока не известно, но думаю, что максимально возможная частота следования импульсов до 70000 в секунду. Пиковое изменение импульсов , думаю, будет лежать в пределах 1000 - 1500 импульсов. Импульсы , до поступления на вход микроконтроллера, будут проходить схемотехническую обработку. Схема имеется и уже собрана и опробирована. Счетчик должен быть двухканальный, т.е. с возможностью независимой обработки информации от двух датчиков, реверсивный с запоминанием и возможностью сброса в 0. Разрядность - четыре - 00,00 . Индикация на LED : 00,00 ; а если на LCD , то в две строки. Первая : ENCODER1-00,00mm ; вторая : ENCODER2-00,00mm. 1 импульс будет соответствовать 0,01 мм. Возможно, что для второго счетчика будет другая цена импульса - возможно 1 импульс 0,05 мм. Это выяснится при настройке.Распиновку и подключение будем согласовывать.
Можете писать мне на адрес : iparktur@gmail.com с пометкой "Счетчик на PIC18F452".

 

tiny26 - "многоразовый". Под Ваши цели и задачи замечательно подошел бы. Энкодер в качестве датчика.... Энкодеры (датчики угла поворота) бывают разные - механические, оптические, могут содержать в себе схему обработки и выдавать уже "нужную" информацию. Вобщем довольно туманно Вы пишите... У датчика (энкодера) есть название?

 

В сумме эта фигня похожа контроль положения инструмента на двухкоординатном столе.
Поэтому, чтобы не морочить голову себе и людям, следует поискать на специализированных форумах, например на http://www.chipmaker.ru/forum/31/ , там вроде был похожий готовый проект несколько лет назад.

P.S. Не совсем понятно, какая нужна помощь: тут надобно не помогать (при нулевых знаниях и умениях), а сделать для (вместо) автора. Сэр автор - любитель халявы?

 

А как реально этот ATTINY26L-8SU перепрограммировать в счетчик? Вы можете это сделать?

У меня имеется датчик оптический - HEIDENHEIN ROD 426. Но это же не принципиально - какой датчик. Он может быть и ротационный и линейный. Может даже и лазерный придется опробовать. Это будет решаться в дальнейшем. Но в данной ситуации исхожу из того, что есть. Принципиально какой выходной сигнал у датчика - прямоугольный TTL 5V. Тем более, что импульсы , до поступления на вход микроконтроллера, проходят схемотехническую обработку. Схема имеется и уже собрана и опробирована. В положительном направлении вращения она выдает импульсы по выходу "А", а в обратном направлении - по выходу "В". Направление счета "+" или "-" окончательно можно будет согласовать,поменяв их местами либо изменением направления счета в программе. Думаю это не будет проблемой. Она может подойти и под перепрограммированный из тахометра счетчик на ATTINY26L-8SU. Как выразился "ATLab" "...эта фигня похожа контроль положения инструмента на двухкоординатном столе..." Похожа, но ничего полезного для решения этой задачи я на том сайте не нашел. (Обезьяна тоже похожа на человека). Тут может возникнуть такая проблема : сможет ли микроконтроллер контролировать пиковые изменения? Не будет ли он "захлебываться" и пропускать импульсы?