Счетчик импульсов частотой до 50кГц

rubin26
Offline
Зарегистрирован: 18.09.2016

Друзья, есть проблема:

ЧПУ станок управляется программой Mach3 через LPT-порт: программа дрыгает выходами порта, эти сигналы идут в драйвера шаговых двигателей, где формируется силовой сигнал управления на обмотки шагового двигателя (думаю все тут и без меня это знают).

После замены электроники вылезла болячка: ведется послойная обработка и через некоторое время я понял что станок потерял ноль, то есть: после 20 минут обработки я его остановил через паузу, нажал вернуться в ноль и он приехал в позицию, отличную от установленного нуля на 4мм по всем осям.....

Короче, нужен счетчик импульсов, проверить количество подаваемых импульсов при движении по оси допустим в +300мм, потом в -300мм. По идее число импульсов должно будет совпасть один в один.

На руках есть ардуино уно, так ее и не освоил.

Прошу, помогите, впринципе понимаю что задача не сложная, но сам не осилю.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

ЕвгенийП, похоже ему нужно просто attachInterrupt + инкремент переменной. Ну или (что лучше) тактировать входными импульсами таймер T1, если там действительно 50-кГц.

rubin26
Offline
Зарегистрирован: 18.09.2016

Вот видео, где проверялась такая проблема, и здесь такой счетчик реализован на AVR. Но мне надо для Ардуино, тоже самое.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

rubin26 пишет:

здесь такой счетчик реализован на AVR. Но мне надо для Ардуино...

приехали

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

rubin26 пишет:

и здесь такой счетчик реализован на AVR. Но мне надо для Ардуино, тоже самое.

Открою страшную тайну, только никому! Тссс... (шепотом) - Ардуино это и есть AVR, распаянный на плате с обвязкой.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Jeka_M пишет:

rubin26 пишет:

и здесь такой счетчик реализован на AVR. Но мне надо для Ардуино, тоже самое.

Открою страшную тайну, только никому! Тссс... (шепотом) - Ардуино это и есть AVR, распаянный на плате с обвязкой.

я так и знал!

народ Урала и Дальнего Востока, итальянские империалисты много лет вас найопывали, впаривая под видом модной Ардуино обычные контроллеры AVR!

rubin26
Offline
Зарегистрирован: 18.09.2016

ну ок, все потролили, молодцы. Решение есть какоето?

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Есть. Оно указано в посте №2, от dimax. Или вы ждете, что за вас программу напишут?

di_mot
Offline
Зарегистрирован: 12.08.2016

rubin26 пишет:

ну ок, все потролили, молодцы. Решение есть какоето?

Типа написать за тебя код?

Ва-аще-то задачка на "2-й урок прогрАманья", после Блинка светиком.

 

rubin26 пишет:

+300мм, потом в -300мм. По идее число импульсов должно будет совпасть один в один.

Типа на импульсе написано, что он "правый" (инкрементный) или "левый" (декрементный)?

 

rubin26
Offline
Зарегистрирован: 18.09.2016

да, я жду что кто нить напишет программу. Для программистов это не сложно ведь, я не программист, поэтому прошу помощи

rubin26
Offline
Зарегистрирован: 18.09.2016

давай, di_mot, напиши за меня код, кину тебе 200р на телефон, если будет работать.

rubin26
Offline
Зарегистрирован: 18.09.2016

ЕвгенийП пишет:

Вот это не то, что нужно? http://arduino.ru/forum/programmirovanie/schityvanie-impulsov#comment-218898

dimax пишет:

ЕвгенийП, похоже ему нужно просто attachInterrupt + инкремент переменной. Ну или (что лучше) тактировать входными импульсами таймер T1, если там действительно 50-кГц.

Друзья, я честно не знаю, это мне нужно или не это, в коде не разбираюсь.

Ятак понимаю эта программа выводит частоту? Мне нужно именно сумму импульсов посчитать

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Jeka_M пишет:

rubin26 пишет:

и здесь такой счетчик реализован на AVR. Но мне надо для Ардуино, тоже самое.

Открою страшную тайну, только никому! Тссс... (шепотом) - Ардуино это и есть AVR, распаянный на плате с обвязкой.

Та нет, я тоже думал, что AVR, пригладелся, а оно, блин ... в общем был такой древний-древний анекдот как раз в тему. Бабуля даёт показания в суде в деле о разводе, как свидетель "левака". ну, рассказывает

- (бабуля - Б) Иду я, значить, от Кузминишны, слышу в кустах шорох. Посмотрела, а там @буцца
- (судья)  Вы в суде. а не на базаре, выбирайте выражения, ну, там, скажем, "сношаются"
- (Б) Так вот и я ж...  иду я, значить, от Кузминишны, слышу в кустах шорох. Посмотрела, вроде сношаются, пригляделась, а они, @лядь, @буцца!

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Раздел «ищу исполнителя».

di_mot
Offline
Зарегистрирован: 12.08.2016

rubin26 пишет:

давай, di_mot, напиши за меня код, кину тебе 200р на телефон, если будет работать.

Да лехко! Тынц  :-)

 

rubin26
Offline
Зарегистрирован: 18.09.2016

С этим кодом я могу измерить количество импульсов так же как на видео, на которое я давал ссылку?

di_mot
Offline
Зарегистрирован: 12.08.2016

rubin26 пишет:
С этим кодом я могу измерить количество импульсов так же как на видео, на которое я давал ссылку?

А кто его смотрел кроме тебя?

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

rubin26, на сам деле программа ваша состоит из двух строк, мне дольше описывать как это работает, чем писать программу :) Импульсы подавать на вход №5 ардуины. Счётчик считает кол-во переходов из лог. "0" в лог."1", в данном виде умеет считать до 65535, потом опять с ноля начинает.

 

void setup() { TCCR1B=7;TCNT1=0; Serial.begin(9600);}
void loop() {Serial.println(TCNT1); }

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

rubin26 пишет:
С этим кодом я могу измерить количество импульсов так же как на видео, на которое я давал ссылку?
Да, кто ж тебя знает что ты можешь, а что не можешь? :))))

rubin26
Offline
Зарегистрирован: 18.09.2016

Думаю те люди, которые хотят помочь посмотрели

rubin26
Offline
Зарегистрирован: 18.09.2016

Спасибо dimax за помощь, попробую с вашим кодом. А почему только до 65535 может считать? И как заставить считать хотя бы до миллиона?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

rubin26, ну вот, начинается... это ваш просчёт, нужно сразу озвучивать тех.условие. Я переделывать не буду из вредности :)

ToRcH2565
Offline
Зарегистрирован: 16.05.2015

Готов написать код, потребуется неделя времени и 30к рубликов на отладку, вроде не сильн сложно чтоб аж до милиона считало =) но тестировать придется основательно, отседа и сумма =)

di_mot
Offline
Зарегистрирован: 12.08.2016

ToRcH2565 пишет:

...потребуется неделя времени и 30к рубликов на отладку...

За эти деньги можно устно пощЕтать до мильена. Андрющей - цифирьку увеличивай... :-))

 

rubin26
Offline
Зарегистрирован: 18.09.2016

Нет нет, мне хватит и столько сколько есть для теста, просто интересуюсь, не настаиваю даже на ответе )

ToRcH2565
Offline
Зарегистрирован: 16.05.2015

di_mot пишет:

ToRcH2565 пишет:

...потребуется неделя времени и 30к рубликов на отладку...

За эти деньги можно устно пощЕтать до мильена. Андрющей - цифирьку увеличивай... :-))

 

 

нет, ну а как же тесты? вдруг ей надоест считать на 999999, и она остановицо, или каждую сотую цифорку будет пропускать и не считать а переходить к следующей? деньги исключительно на тестирование и ручную проверку что она сосчитала все цифорки, и ничего не пропустила =) говорю же тестировать на таких числах нужно тщательно, с полной проверкой по тетрадке =)