Гость Борис

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

 

Печально.

 

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

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

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


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

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

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

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


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

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

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

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


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

 

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
BARS_    733
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    546

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

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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

Загрузка...

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

    • Автор: Михаил Якимец
      Здравствуйте!
      Монтировали кнопку открытия электрозамка на двери, бюджет был ограничен и закупили Таймер импульсов (ТИ). Точнее, купили две платы и обе работают не корректно, а именно: после нажатия кнопки (после подачи сигнала на вход ТИ) он размыкает контакты электрозамка, отсчитывает заданный интервал времени, замыкает контакты электрозамка, и может еще несколько раз сработать реле на ТИ. Т.е. кнопку нажали раз, а сработок было много. Пытались подключать диоды, но это не помогло. Проблема пропала после установки полноценного дверного контроллера СКД, но это решение не устраивает. Есть мысли, что происходят наводки в кабеле, ибо когда тестировали ТИ в офисе на столе с короткими кабелями, то система работала как надо.
      А теперь вопрос: может есть способ подключить данный ТИ таким образом, чтобы избежать ложных срабатываний?


    • Автор: Александр Липатов
       
       Нужна кнопка с импульсным принципом работы на 12В. Т.е При нажатии кнопки контакт замкнулся "I" и отщелкнулся обратно в "0" а кнопка осталась вдавленной пальцем . . Этакая кнопка-щелкунчик. Как технически правильно называется КНОПКА не знаю. 
    • Автор: Tema Tokarev
      Доброго времени суток, обитатели данного форума.
      Ввиду незначительного опыта работы в данной сфере, необходима консультация относительно проектируемой системы, представленной ниже.
      Основные задачи, поставленные при проектировании:
      импульс на выходе амплитудой 6 ± 1 В; 0,6 ± 0,05 А; компактность системы и минимальные затраты при реализации; не предполагается долговременное использование, ввиду чего долговечность не имеет значения, элемент играет предохранительную сигнализирующую роль, эксплуатация носит одноразовый характер. В соответствии с заданными условиями был разработан элемент системы. Ввиду относительно высокой стоимости и крупных габаритов механических и магнитных реле, в данной цепи используются электрические бесконтактные ключи, построенные на базе схемы каскадного усилителя на биполярных транзисторах n-p-n типа с общим эмиттером.
      Сигналы управления [X1], [X2] - цифровые сигналы (лог 1 и 0), подаваемые элементом управления в необходимом порядке.
      Правильно ли подобраны нагрузки, емкости и элемент питания?
      Какое наиболее оптимальное значение емкости для форсирующих конденсаторов, шунтирующих нагрузку на базе?
      Какие лучше использовать биполярники и есть ли возможность оптимизации схемы путем замены каскадов на логические элементы без увеличения стоимости?
      Какие временные интервалы лучше задать для заряда/разряда конденсатора С3?
       
      Заранее благодарю за помощь и критику; прошу не закидывать камнями за какие-либо вопросы, заданные выше, ввиду того, что в данной сфере имею незначительный опыт.

    • Автор: Krokodil007
      Продам реле:
      РЭС48А, 201п. новые.
      Года такие: 92г. -1шт., 91г. - 3шт., 87г. - 21шт., 88г. - 15шт., 86г. - 35шт., 83г. - 2шт., 84г. - 83шт., 89г. -2шт., 85г. - 30шт.
      Всего: 192шт.
      Новые, состояние отличное
      Цена 230 руб/шт.
      Саратовская обл.
      Возможна отправка почтой или транспортными компаниями.
       



    • Автор: Korik
      Собрана вот эта схема. Готовая плата с микрофоном на микрике MAX9812 + усилитель на 3 транзисторах + схема управления. Все работает как надо, при наличии звука на микрофоне на нагрузке присутствует напряжение. Когда звук исчезает, через некоторое время (зависит от С4 в правой схеме) напряжение на коллекторе КТ814 опускается до нуля. 
      Когда к нагрузке подключен светодиод, все работает как часы. Но для решения моей задачи, туда приходится подключать реле. Вот тут и  начинаются чудеса. Реле не хочет отключаться, а начинает работать в режиме вкл-вкл-выкл-вкл...
      С Сенькой пробовали несколько вариантов ( резистор по минусу, дополнительный электролит на питание микрофонной платы, разнонаправленные диоды и т д...
      Нет надежного решения.
      В итоге пришли к выводу, что микрофон  ловит щелчок реле (хотя он щелкает достаточно тихо) и на этой акустической обратной связи происходит переход в режим мультивибратора.
      Устройство, где это должно применяться, достаточно компактное и нет возможности их далеко разносить. То есть вариант акустической изоляции трудно осуществим.
      По правде говоря, когда питание опускал до 6В, то он (9 вольтовое реле) вроде начинал выключаться. Но нужно, чтобы он это делал при большем напряжении.
      Отсюда вопрос - если нельзя надежно применить реле в этой схеме, то нельзя ли вообще от него отказаться?
      Нельзя ли дополнить эту схему так, чтобы при наличии сигнала на микрофоне напряжение было на одном выходе, а при исчезновении внешнего звукового раздражителя, через некоторое время на этом выходе напряжение исчезло и появилось на втором выходе?
      Это нужно для ЦМУ, чтобы в долгих паузах фоновый режим переключился на другой вариант фона.