Гость Борис

Тахометрическое реле на ардуино

14 сообщений в этой теме

Гость Борис   
Гость Борис

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Falconist    4 845

Печальная картина. Абдурина в роли банального частотного компаратора...

При том, что и в кодировании - никак и в схемотехнике - плинтус...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
alend    668

Можете делать как вам хочется,в смысле ардуины или не ардуины,-но оптические датчики на транспортёрную ленту не ставить!!!!

Сыпучие материалы создают пыль,а пыль в скором времени забьёт оптику и ваша автоматика встанет.

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

Типа этого http://www.sensor-com.ru/catalog/speedcontrol/use

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
hasl    47

Почему сразу такой хой подняли по поводу МК?

Какая выйдет схема на аналоговых компонентах и МК?

К тому же МК обеспечивают более лучшую гибкость в логике управления.

Если боролись за цену, вопрос может еще как то и стоял бы, но при наличии дешевых МК от STM или других контор, смысла в аналоговой схеме нет

К тому же. почему у многих привычка, давить собеседника.

Он вообще спросил про одно, а ему про  жизнь и  какой он "К...."

 

Печально.

 

ТС, напишите в личку и пришлите скейтч, посмотрю

Изменено пользователем hasl

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BARS_    659

Сктеч, ардуина. Да без ардуиновского шлака, в том же AVR Studio, вся логика работы реализуется в 10-15 строках кода. Берем таймер, запускаем в режиме внешнего тактирования, заводим на него сигнал. Через определенные дискреты времени (например, по прерыванию от второго таймера) проверяем значение в счетном регистре, переводим в об/мин (если надо) или сравниваем с неким значением прямо так. Если превысили - включаем реле. ждем, пока обороты упадут. В чем вообще проблема, особенно учитывая наличие исходников тахометров в инете? Хотя да, в говнуино же таймеры не дают пользователю, там все труднее. А вот в нормальных IDE все делается за пол часа вместе с чтением даташита. Это как раз тот случай, когда ардуйня усложняет процесс разработки.

Изменено пользователем BARS_

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Загрузка...
Dr. West    2 740
36 минут назад, hasl сказал:

К тому же. почему у многих привычка, давить собеседника.

Смысл не в том, чтобы "задавить" идею на корню, а в том, что для решения задачи выбран  инструмент, с которым ТС сам не знает что делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, Гость Борис сказал:

 

Смысл прост: если появились обороты, реле замыкает цепь питания пускового контактора эл.двигателя предыдущего конвейера. Если второй конвейер остановиться по какой либо причине(пробуксовка ленты или обрыв), то при выключении реле отключиться предыдущий, т.с. предотвратит заваливание с 1.

Почему МК? Передача данных на ПУ по беспроводной. Дешево и не сердито. От магнитных датчиков отошли, "гемороя" много. Блоки упр-я в данный момент есть, но очень много проводов. Вот и ищем вариант с беспроводной передачей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
BARS_    659
15 минут назад, Борис Зимирев сказал:

если появились обороты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

const int inPin = A0;

void setup() {
  Serial.begin(9600);
 pinMode(inPin, INPUT);
 digitalWrite(inPin, HIGH);
}
void loop() {
int rpm=get_rpm();
Serial.print("ob/min: ");
Serial.println(rpm);
if (rpm >=2){digitalWrite(12,HIGH);
}
else{
  digitalWrite(12,LOW);
}

}
int get_rpm()
{
int acct=0;
boolean IR=LOW;
unsigned long Time=0;
unsigned long sTime=millis();
while (Time<=1000)
{
if (digitalRead(inPin)==HIGH)
  {IR=HIGH;}
if (digitalRead(inPin)==LOW && IR==HIGH)
{
acct++;
IR=LOW;
}
Time=millis()-sTime;
}
int acct2 = int(1000./float(1000))*acct;
return acct2;
}

Вот код с которым работал. Нашел где-то на форумах. Там хотели пригородить это к токарному станку, чтобы при 300 об вкл реле

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Решение найдено. Может кому пригодиться. В строчке if (rpm <= 3 ){digitalWrite(10, LOW);} можно менять на нужное кол-во об.

const int inPin = A3;

void setup() {
 pinMode(inPin, INPUT);
 digitalWrite(inPin, HIGH);
 pinMode(10, HIGH);
}
void loop(){
  Serial.begin(9600);
int rpm=get_rpm();
 if (rpm <= 3 ){digitalWrite(10, LOW);}
 else {digitalWrite(10, HIGH);}
Serial.print("ob/min: ");
Serial.println(rpm);
}
int get_rpm()
{
int acct=0;
boolean IR=LOW;
unsigned long Time=0;
unsigned long sTime=millis();
while (Time<=1000)
{
if (digitalRead(inPin)==HIGH)
  {IR=HIGH;}
if (digitalRead(inPin)==LOW && IR==HIGH)
{
acct++;
IR=LOW;
}
Time=millis()-sTime;
}
int acct2 = int(1000./float(1000))*acct;
return acct2;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    558

Решение глупое и тупо "в лоб". Проще считать период, быстрее обрабатываться будет. А лучше аппаратными способами, а не тупо опросом пина.

Да и вот это выражение

5 часов назад, Борис Зимирев сказал:

int(1000./float(1000))*acct;

уж очень сомнительное. Что Вы этим хотели сделать, поведайте нам ?
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Борис   
Гость Борис

Решение не глупое. Строчка int(1000./float(1000))*acct;  показывает импульсы  за секунду. Впрочем у меня получилось добиться нужного результата. Сейчас занимаюсь пультом для дистанционного запуска и опроса датчиков скорость. В блокировках применён модуль NRF24L01. Такое решение позволит заменить магнитные дорогие датчики, позволит избавиться от кабелей, упростит управление пускателями эл.двигателей ТЛ, поможет предотвратить заваливание конвейеров и дробилок ввиду быстрого срабатывания, лишит лишней работы лопатой работников дробильного отделения, которым зачистую приходилось разгребать завалы...

Из всей этой болтовни я понял одно - два человека попытались помочь и дать совет, остальные пытались засмеять и т.д.  Так что не вам судить и не судимы будите. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    558
В 02.12.2017 в 06:21, Гость Борис сказал:

Строчка int(1000./float(1000))*acct;  показывает импульсы  за секунду.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: pavelok
      Здравствуйте! Собрал схему, приложенную к посту. В принципе, все работает, но очень не устраивает такой баг: если периодически переключать реле, то в какой-то случайный момент esp01 просто перестает работать и перезагружается. Также заметил, что перед тем, как перезагрузиться, начинает греться ams1117, напряжение на его выходе подскакивает до 4.2.
      В чём может быть проблема? Спасибо!

    • Автор: кип-сервис
      В связи с закрытием склада, распродаю остатки оборудования для промышленной автоматизации.
      1. Siemens Simatic :
       модули CP342-5 SIMATIC NET и SM321, модули питания и ввода-вывода от станции ET 200S ,соединители DP .
       Оборудование без оригинальных упаковок, в отличном состоянии, практически новое ( прошло только пуско-наладку, проект закрылся).
      Прилагаю на фото полный перечень, что есть в наличии. Цены по запросу.
      2 .Новая автоматика в упаковках: пневматика, реле, датчики, контроллеры и другая известных мировых производителей.
      Прилагаю на фото полный перечень, что есть в наличии.
      Цена договорная, по запросу.
      3. - Два частотника INNOVERT ISD222U43B. Вход: 3 фазы 380 В. Выход: 3 фазы 380 В, 5А, 0.1-400 Гц. 2,2 кВт.  В отличном состоянии. 
         - Частотник MICROMASTER 420 0,37kW  с пультом BOP  6SE6400-0BP00-0AA0, в отличном состоянии.
      Территориально в Крыму. Отправка в любой регион. Цены до 50% ниже рыночных.


    • Автор: dengeneral
      Имеется вот такая плата индикации от стабилизатора ресанта. Подскажите пожалуйста как ее подключить к ардуино и какой скетч нужен для ее проверки?

    • Автор: Константи
      Объясните пожалуйста, поможет ли трехфазное реле чередования фаз, если на оборудовании(винтовой компрессор) нет маркировки фаз. Спасибо.
    • Автор: ALEX__45
      хочу измерить напряжение до 110 вольт примерно. Проблема в том что земля не общая. Соединить невозможно (коммутируется мосфетом). Поэтому простой резист. делитель не подходит. Подозреваю нужен ОУ. Не подскажете как подключить?
      Схема примерно такая:
      Новый точечный рисунок.bmp