Чтение и задание частоты с помощью Арнуино Уно для управления внешним устройством

metrim
Offline
Зарегистрирован: 01.08.2019

Прошу прощение за новичковый вопрос. Я биолог, в радиоэлектронике полный профан , да и в програмировании слаб.

У меня есть старые приборы, производства LKB/Pharmacia. Насосы в частности. Их скоростью можно управлять подачей частоты 0-200 Герц на порт внешнего управления (на один из пинов). С другого пина можно читать текущую скорость тоже в герцах.

Собственно задача считывать и передавать частоты с Ардуино на устройство.

По чтению вроде нашел упоминание библиотеки FreqMeasure Library Она вроде как аккурат 0-1000Герц читать может, что покрывает мой диапазон. Как я понимаю из таблички, на Ардуино Уно я смогу читать частоту только с одного пина 8, при этом пины 9 и 10 станут недоступными для использования вовсе. Верно? Правильно ли я понимаю, что для чтения низких частот 0-200Герц мне можно подключать устройство прямо к пину, без монтажа дополительной электронной "обвязки" ?  Может быть есть долее простое решение, что бы читать такой узкий диапазон частот и терять при этом поменьше портов? +мне хотелось бы читать на одну Ардуино частоты от нескольких устройств одновременно по возможности.

Теперь про "генерацию частоты". На форуме я прочитал, что задавать частоту на пин можно тем же скетчем, которым зажигается/гасится диод. Я попробовал включать/выключать напряжение на пине с delay(10), что по моим предположением должно было бы выдавать 50герц, подцепил пин к подопытному насосу, но это не возымило никакого эффекта. Каким образом корректно задавать частоту на внешне устройство?

svm
Offline
Зарегистрирован: 06.11.2016

Кроме частоты, наверное нужно знать и напряжение, которое необходимо Вашим приборам. Возможно оно отличается от уровней Ардуино. Старые приборы могут требовать 12 или 24 В. Придется делать согласование уровней. Для этого надо хотя-бы знать параметры интерфейса прибора. Смотреть в инструкции по эксплуатации.

metrim
Offline
Зарегистрирован: 01.08.2019

Напряжение 5 вольт и в документации указано "Inpors all with 10kOm pull-up"

svm
Offline
Зарегистрирован: 06.11.2016

Вроде работать должно. Возможно управление с этого входа нужно где-то включить? А по умолчанию управление идет еще откуда-то?

А по поводу читать на одну Ардуину несколько устройств- это только по очереди, коммутируя входа.

Если есть возможность сбросьте ссылки на документацию.

metrim
Offline
Зарегистрирован: 01.08.2019

По инструкции ничего дополнительно подключать не нужно вроде. "По обычному" - управление идет с панельки передней, но можно и со специального внешнего контроллера, что бы в процессе работы можно было скорость менять.

Один из девайсов, которые я хочу подключить - Pharmacia P-1, но аналогично управляются и другие насосы их проиводства.

Кстати указано, что "Outports (all open-collector)" . Это же значит , что Ардуинку можно к нему подключать напрямую, без резисторов и т.д. ?

Спасибо за ответы и внимание к теме !

svm
Offline
Зарегистрирован: 06.11.2016

metrim пишет:

По инструкции ничего дополнительно подключать не нужно вроде. "По обычному" - управление идет с панельки передней, но можно и со специального внешнего контроллера, что бы в процессе работы можно было скорость менять.

Один из девайсов, которые я хочу подключить - Pharmacia P-1, но аналогично управляются и другие насосы их проиводства.

Кстати указано, что "Outports (all open-collector)" . Это же значит , что Ардуинку можно к нему подключать напрямую, без резисторов и т.д. ?

Спасибо за ответы и внимание к теме !

Если  выходы с открытым коллектором, то нужны резисторы к+ блока питания, иначе там всегда будет "0", но это-выходы и они нужны для обратной связи от насоса (скорость).  А вот насчет управления с передней панельки или от другого источника, где-то должен быть параметр указывающий на источник управления ( это, я по аналогии с частотниками) . Там есть праметр выбирающий откуда идет управление: с панели, с аналогового входа, с цифровых входов и т.д. вплоть до WiFi и других интерфейсов. Судя по https://www.ssllc.com/images/uploads/Peristaltic%20Pump%20P-1-%20User%20Manual.pdf на 12 странице написано, что пин 14 -1 внутреннее управление, 0 внешнее (т.е. на 14 контакт разъема нужно подать "землю", чтобы управлять скоростью с 12) может и напутал т.к. "настроение" праздничное и читал по диагонали,а Вы как лицо заинтересованное  прочитайте внимательно. Ну и остальные проверьте - пуск, направление и т.д и т.п.

metrim
Offline
Зарегистрирован: 01.08.2019

Ну более подробное описанеи есть в мануале к контроллеру для данных насосов LCC-501 https://www.gelifesciences.co.jp/tech_support/manual/pdf/lcc-501plus.pdf

14 пин используется для задачи частоты, а через неё - скорости, с которой должна работать помпа.

12 пин - Internal/external speed control. 1=internal, 0=external типа как. Только я то предполагал, что если на него не подавать ничего, то это "ноль" и помпа считает, что ей нужно читать частоту с 14 пина, а если подать напряжение с цифрового пина 5 вольт, то типа как помпа "должна исходя из собственных настроек работать"

А вы говорите, что нужно к 12 пину подключить цифровой пин и выставить на нем LOW , итогда помпа это как "0" воспринимать будет?

А задача "герцовки" через скетч мигания лампочки - это правильный концептуально вариант или частоту на 14 пин лучше как то по другому "командовать" ?
 

svm
Offline
Зарегистрирован: 06.11.2016

metrim пишет:

Ну более подробное описанеи есть в мануале к контроллеру для данных насосов LCC-501 https://www.gelifesciences.co.jp/tech_support/manual/pdf/lcc-501plus.pdf

14 пин используется для задачи частоты, а через неё - скорости, с которой должна работать помпа.

12 пин - Internal/external speed control. 1=internal, 0=external типа как. Только я то предполагал, что если на него не подавать ничего, то это "ноль" и помпа считает, что ей нужно читать частоту с 14 пина, а если подать напряжение с цифрового пина 5 вольт, то типа как помпа "должна исходя из собственных настроек работать"

А вы говорите, что нужно к 12 пину подключить цифровой пин и выставить на нем LOW , итогда помпа это как "0" воспринимать будет?

А задача "герцовки" через скетч мигания лампочки - это правильный концептуально вариант или частоту на 14 пин лучше как то по другому "командовать" ?
 

1 Для переключения помпы в режим внешнего управления есть несколько вариантов. Один Вы уже указали, но он потребуется если Вы хотите программно переключать источник управления. В простейшем случае можно поставить тумблер, который соединяет 12 пин с землей, или просто проводник на землю.

2. В принципе, если Вас удовлетворяет диапазон частот, то использовать можно, но это уж очень кривое решение. Лучше собрать генератор, например от Димакса. Он прекрасно справится с Вашей задачей. Начальный  вариант управления частотой с ПК не требует никакой навесухи. Ну или для экспириментов посмотрите на функцию Tone().

metrim
Offline
Зарегистрирован: 01.08.2019

1. Большое спасибо! НАконец, когда я просто перемкнул землю (пин 15) и пин 12 - помпа остановилась. В предыдущий раз, когда пытался так просто замкнуть - пчему то не проканало.... Пин 14 (который должен получать частоту от контроллера), замкнутый на пин 15 - так же останавливает помпу. А как мне все же с помощью Ардуино обеспечить перемыкание пина 12 на землю? Я пробовал и подавать на него HIGH и LOW, мотор продолжал крутиться. Мне бы все же хотелось иметь возможность обеспечивать програмное переключение внешнее/внутренее управление.

2. Речь про данный генератор http://arduino.ru/forum/proekty/generator-s-reguliruemoei-chastotoi-na-arduino ? Мне как то до 8 то мегагерц сильно излишне, да и код как то великоват, для моей простой то относительно задачи + как я понимаю нужно городить схему с конденсаторами, вешать энкодер .... Мне то всего надо что бы програмно можно было менять частоту от 0 до 200 герц ....

 

Попробовал функицю Tone() ! Да, это примерно то что мне нужно ! Если у неё нет каких то "подводных камней" - вполне подойдет наверное мне. Если же для обеспечения качества и безопасности лучше использовать иной програмный код, либо спаять дополнительную схему - придется пойи и на это ... Система должна будет функционировать часами и сутками и без человеческого пригляду, так что надежность - очень важный фактор

svm
Offline
Зарегистрирован: 06.11.2016

metrim пишет:

1. Большое спасибо! НАконец, когда я просто перемкнул землю (пин 15) и пин 12 - помпа остановилась. В предыдущий раз, когда пытался так просто замкнуть - пчему то не проканало.... Пин 14 (который должен получать частоту от контроллера), замкнутый на пин 15 - так же останавливает помпу. А как мне все же с помощью Ардуино обеспечить перемыкание пина 12 на землю? Я пробовал и подавать на него HIGH и LOW, мотор продолжал крутиться. Мне бы все же хотелось иметь возможность обеспечивать програмное переключение внешнее/внутренее управление.

2. Речь про данный генератор http://arduino.ru/forum/proekty/generator-s-reguliruemoei-chastotoi-na-arduino ? Мне как то до 8 то мегагерц сильно излишне, да и код как то великоват, для моей простой то относительно задачи + как я понимаю нужно городить схему с конденсаторами, вешать энкодер .... Мне то всего надо что бы програмно можно было менять частоту от 0 до 200 герц ....

 

Попробовал функицю Tone() ! Да, это примерно то что мне нужно ! Если у неё нет каких то "подводных камней" - вполне подойдет наверное мне. Если же для обеспечения качества и безопасности лучше использовать иной програмный код, либо спаять дополнительную схему - придется пойи и на это ... Система должна будет функционировать часами и сутками и без человеческого пригляду, так что надежность - очень важный фактор

1 Если подача сигнала с ардуино не дает желаемого результата, значит не совпадают логические уровни. Придется ставить ключи можно на транзисторах или мосфетах, но самый простой для Вас это микросхему типа ULN203. Она содержит 7 ключей и обеспечит требуемое согласование.

2 В посте #22 eсть терминальная версия генератора http://arduino.ru/forum/proekty/generator-s-reguliruemoei-chastotoi-na-arduino#comment-247826 управление частотой осуществляется из терминала ПК.

у tone есть ограничение - нижняя частота около 30 Гц

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

У DIMAX можно позаимствовать и частотомер (функцию), работает превосходно, только операционник нужен высокоскоростной (для 300 кгц) если измерять не с цифрового входа, места в памяти ардуины занимает немного

metrim
Offline
Зарегистрирован: 01.08.2019

svm пишет:
1 Если подача сигнала с ардуино не дает желаемого результата, значит не совпадают логические уровни. Придется ставить ключи можно на транзисторах или мосфетах, но самый простой для Вас это микросхему типа ULN203. Она содержит 7 ключей и обеспечит требуемое согласование.

Мнде. Т.е. вот "всесилие Ардуины малость преувеличено" ? Как то странно, ведь в инструкции пишется о 5 вольтах и 10кОмных сопротивлениях для активации пинов, а по факту получается, что процессом управляетзамкнутось пинов на землю? Может просто чего то пока недопоняли?

  На ULN2003 значит пятью вольтами с ардуинки нужно будет замыкать/размыкать пины насоса на землю?

Цитата:
2 В посте #22 eсть терминальная версия генератора http://arduino.ru/forum/proekty/generator-s-reguliruemoei-chastotoi-na-arduino#comment-247826 управление частотой осуществляется из терминала ПК.

у tone есть ограничение - нижняя частота около 30 Гц

Что то я пока не очень хорошо читаю код и не вполне его понимаю. Там в начале программы объявляется 9 пин, но дальше я что то не нахожу: где именно на этот 9 пин идет сгенерированная частота. В какой строчке это указано?

30 герц мне не подходит, мне нужно от 0 до 200-300 плавно регулировать.

metrim
Offline
Зарегистрирован: 01.08.2019

ua6em пишет:
У DIMAX можно позаимствовать и частотомер (функцию), работает превосходно, только операционник нужен высокоскоростной (для 300 кгц) если измерять не с цифрового входа, места в памяти ардуины занимает немного

Большая просьба - объясняться попонятней... Я биолог и только вот суровая нужда, а не "желание чего то нового" заставила обратиться к Ардуино. Так что очевидная и понятная вам терминология и "жаргонизмы" - мне не сообщают нужную информацию.

Замерять частоту, для калибровки насоса - мне очень нужно. Какие значит элименты мне нужно еще обзавести и какие ограничения существуют?

svm
Offline
Зарегистрирован: 06.11.2016

metrim пишет:

Замерять частоту, для калибровки насоса - мне очень нужно.

При задании частоты с внешнего генератора, Вам достаточно знать его частоту. Сердцем насоса является шаговый двигатель и скорость его вращения зависит только от частоты. При работе от внутреннего генератора - Вы измеряете не скорость вращения, а частоту внутреннего генератора. Смысл измерять частоту которую Вы подаете отсутствует.

metrim
Offline
Зарегистрирован: 01.08.2019

svm пишет:
При задании частоты с внешнего генератора, Вам достаточно знать его частоту. Сердцем насоса является шаговый двигатель и скорость его вращения зависит только от частоты. При работе от внутреннего генератора - Вы измеряете не скорость вращения, а частоту внутреннего генератора. Смысл измерять частоту которую Вы подаете отсутствует.

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

Это методические аспекты подбора условий в хроматографии....

metrim
Offline
Зарегистрирован: 01.08.2019

Съездил купил в Чип и дип  ULN2003A, а до кучи ULN2003APG и ULN2004A ,по паре штук каждого.

И вот какая история: подключаю пины 15 (земля) и 12 (сигнальный) насоса к пинам 9 и 15 микросхемы (равно как и к любым другим пинам 9-16) и там цепь оказывается всегда "замкнута", во всяком случае помпа останавливается, как будто я просо перемкнул 15 и 12. Это происходит совершенно независимо от того что подано на 1-8.

Такую схему http://i33.fastpic.ru/big/2012/0327/72/669aae126ef7480fa10c04d9a115e672.jpg я для проверки собрал, с резистором и диодом. Диодик исправно гаснет в соответствии с поданным на управляющий пин напряжением.

Как мне добиться требуемого помпой управления?

svm
Offline
Зарегистрирован: 06.11.2016

metrim пишет:

 Т.е.  "всесилие Ардуины малость преувеличено" ? Как то странно, ведь в инструкции пишется о 5 вольтах и 10кОмных сопротивлениях для активации пинов, а по факту получается, что процессом управляет замкнутось пинов на землю? Может просто чего то пока недопоняли?

  На ULN2003 значит пятью вольтами с ардуинки нужно будет замыкать/размыкать пины насоса на землю?

]2 В посте #22 eсть терминальная версия генератора http://arduino.ru/forum/proekty/generator-s-reguliruemoei-chastotoi-na-arduino#comment-247826 управление частотой осуществляется из терминала ПК.

Что то я пока не очень хорошо читаю код и не вполне его понимаю. Там в начале программы объявляется 9 пин, но дальше я что то не нахожу: где именно на этот 9 пин идет сгенерированная частота. В какой строчке это указано?

Да ардуина не всесильна, и если  нужно управлять чем-то нестандартным, то приходится ставить "посредников" ULNка хороша тем, что не нужно ничего дополнительного, а так, один из ее ключей можно зменить NPN транзистором с резистором 1-2 КОм или мосфетом с управлением логическим уровнем. Но это будет уже более трудоемко и габаритно. Российский аналог К1109КТ22.

А насчет генератора, действительно 9 пин-выход что в скетче и указано, а то что он нигде больше не упоминается, то лучше просто поверьте, генератор Димакса работает, и все.

svm
Offline
Зарегистрирован: 06.11.2016

metrim пишет:

Съездил купил в Чип и дип  ULN2003A, а до кучи ULN2003APG и ULN2004A ,по паре штук каждого.

И вот какая история: подключаю пины 15 (земля) и 12 (сигнальный) насоса к пинам 9 и 15 микросхемы (равно как и к любым другим пинам 9-16) и там цепь оказывается всегда "замкнута", во всяком случае помпа останавливается, как будто я просо перемкнул 15 и 12. Это происходит совершенно независимо от того что подано на 1-8.

Такую схему http://i33.fastpic.ru/big/2012/0327/72/669aae126ef7480fa10c04d9a115e672.jpg я для проверки собрал, с резистором и диодом. Диодик исправно гаснет в соответствии с поданным на управляющий пин напряжением.

Как мне добиться требуемого помпой управления?

На 15 нужно подключить не 9, а 8 вывод микросхемы (как в Вашем примере с светодиодом). 9 нужен при работе микросхемы на индуктивную нагрузку. Его Вам можно никуда не подключать. Если посмотрть на принципиальную схему микросхемы то Вы просто подключаете защитный диод, через который и закорачиваете 12 пин на землю.

metrim
Offline
Зарегистрирован: 01.08.2019

svm пишет:
А насчет генератора, действительно 9 пин-выход что в скетче и указано, а то что он нигде больше не упоминается, то лучше просто поверьте, генератор Димакса работает, и все.
А можно ли будет на одной ардуине на 2 пина такие генераторы развести? Мне нужно управлять параллельно двумя насосами и изменять их скорости синхронно нужно будет при единой скорости потока изменять соотношение растворов А и В в смеси. Понятное дело, что можно каждый насос повесить на свою Ардуино нано и с внешнего устройства уже командовать каждой: с какой скоростью качать в данный момент времени, но пока что мне спокойней было бы обходиться меньшим кол-вом ардуин в системе, если это возможно...

 

Кстати оффтопик, не знаю как корректно запрос в поисковик сформулировать, т.к. не знаю как называется "принцип". Есть позиционирование по осям Х и У , а есть вариант позиционирования, когда есть одна линейная направляющая Х, а на ней смонтирована вращающаяся каретка, обеспечивающая позиционирование манипулятора в пространстве У. Что посмотреть по этим алгоритмам и механическим решениям?

svm
Offline
Зарегистрирован: 06.11.2016

metrim пишет:

svm пишет:
А насчет генератора, действительно 9 пин-выход что в скетче и указано, а то что он нигде больше не упоминается, то лучше просто поверьте, генератор Димакса работает, и все.
А можно ли будет на одной ардуине на 2 пина такие генераторы развести? Мне нужно управлять параллельно двумя насосами и изменять их скорости синхронно нужно будет при единой скорости потока изменять соотношение растворов А и В в смеси. Понятное дело, что можно каждый насос повесить на свою Ардуино нано и с внешнего устройства уже командовать каждой: с какой скоростью качать в данный момент времени, но пока что мне спокойней было бы обходиться меньшим кол-вом ардуин в системе, если это возможно...

 

Кстати оффтопик, не знаю как корректно запрос в поисковик сформулировать, т.к. не знаю как называется "принцип". Есть позиционирование по осям Х и У , а есть вариант позиционирования, когда есть одна линейная направляющая Х, а на ней смонтирована вращающаяся каретка, обеспечивающая позиционирование манипулятора в пространстве У. Что посмотреть по этим алгоритмам и механическим решениям?


В Вашем случае наверное можно (диапзон изменения частот неболшой 0-200 Гц), только не с этим генератором, а написать свой. В принципе это не сложно, почти так как и моргание светодиодами, но нужно немного подучиться. Или поискать готовый скетч. Скорее всего кто-то уже делал два генератора на одной ардуинке.

А по поводу позиционирования, нет никакой разницы линейное или вращательное движение. В любом случае задается количество шагов на ШД. А дальше он просто крутит каретку , или вал / ШВП/ремень, для линейного перемещения.

metrim
Offline
Зарегистрирован: 01.08.2019

svm пишет:
На 15 нужно подключить не 9, а 8 вывод микросхемы (как в Вашем примере с светодиодом). 9 нужен при работе микросхемы на индуктивную нагрузку. Его Вам можно никуда не подключать. Если посмотрть на принципиальную схему микросхемы то Вы просто подключаете защитный диод, через который и закорачиваете 12 пин на землю.
О! Вот так наконец получилось, СПАСИБО! Ну я ж говорил, что в электронике - вообще не разбираюсь. Скорее всего буду в итоге искать для помощи какого нибудь студента с технических специальностей. С минимальными техническими навыками все это будет вероятно "раз плюнуть". Пока просто соберу первое, пусть и корявое устройство, что бы хоть что то понимать в вопросе и иметь возможность контролировать проект.

svm
Offline
Зарегистрирован: 06.11.2016

Удачи! Но сдвиги уже есть, и в электронике и программировании.

metrim
Offline
Зарегистрирован: 01.08.2019

svm пишет:
А по поводу позиционирования, нет никакой разницы линейное или вращательное движение. В любом случае задается количество шагов на ШД. А дальше он просто крутит каретку , или вал / ШВП/ремень, для линейного перемещения.
Ну так то я понмаю, что все вокруг импульсов на серво-приводы. Я про другое: есть же алгоритмы расчета "Есть точка с координатами Х и У. Как найти координаты центра окружности (центра враения) и угол поворота манипулятора, что бы конец манипулятора попал в точку ХУ". Ну и технические еализации таких систем на арудине... Просто я даже не знаю как такое называется, видел только работающие приборы. Например https://www.agilent.com/cs/publishingimages/SPS4_Primary_226x191.jpg

И может быть подскажете: как называется такой тип захвата манипулятора? https://i.ytimg.com/vi/VIWy8nJf1cg/maxresdefault.jpg , а то на Али нахожу только манипуляторы-клушни, а вот такого вот "цангового зажима" - не нахожу

svm
Offline
Зарегистрирован: 06.11.2016

metrim пишет:

svm пишет:
А по поводу позиционирования, нет никакой разницы линейное или вращательное движение. В любом случае задается количество шагов на ШД. А дальше он просто крутит каретку , или вал / ШВП/ремень, для линейного перемещения.
Ну так то я понмаю, что все вокруг импульсов на серво-приводы. Я про другое: есть же алгоритмы расчета "Есть точка с координатами Х и У. Как найти координаты центра окружности (центра враения) и угол поворота манипулятора, что бы конец манипулятора попал в точку ХУ". Ну и технические еализации таких систем на арудине... Просто я даже не знаю как такое называется, видел только работающие приборы. Например https://www.agilent.com/cs/publishingimages/SPS4_Primary_226x191.jpg

И может быть подскажете: как называется такой тип захвата манипулятора? https://i.ytimg.com/vi/VIWy8nJf1cg/maxresdefault.jpg , а то на Али нахожу только манипуляторы-клушни, а вот такого вот "цангового зажима" - не нахожу

Здесь скорее всего нужен математик, а не электронщик

А по захвату, на цангу он не похож, скорее всего три пальца вращающихся на эксцентриках

metrim
Offline
Зарегистрирован: 01.08.2019

svm пишет:
Здесь скорее всего нужен математик, а не электронщик
Ну с точки зрения матиматики то - тут "задачи нет" собстно: отклонение от центра Y оси это скажем синус, тогда смещение центра вращения находится оттуда как косинус , ну и угол соответственно. Просто наврняка же на ардуино это уже решали, наверное и библиотеки есть, и прототипы. Было бы странно тут с нуля "изобретать велосипед"

Цитата:
А по захвату, на цангу он не похож, скорее всего три пальца вращающихся на эксцентриках
Ну как то я не приглядывался, как там устроено, со стороны просто видно как "пальцы" сжимаются. Может и эксцентрики. Наверное же такая конструкция должна иметь некое общее наименование, что бы на али запрос забить ....