Ардуино
на примере управления катушечником типа Союза, Илети, Ростова:
вешаем на выходные пины ардуинки исполнительные устройства (через транзисторы или реле, как удобней) - т.е. светодиоды (или жк экранчик), электромагниты, движки приемного и подающего узлов (можно и ведущий).
на входные пины вешаем кнопки и ик-фотоэлемент (для ДУ).
далее ваяем скетч который будет преобразовывать входящие сигналы с кнопок и ДУ, в исходящие для исполнительных устройств.
прописываем какие пины на выход, какие на вход, команда - pinMode(номер порта, OUTPUT); или pinMode(номер порта, INPUT);
например электромагнит притягивания прижимного ролика вешаем на пин 1, значит прописываем pinMode(1, OUTPUT);
теперь для того, чтобы включить электромагнит нужно всего лишь подать высокий уровень на пин 1 командой digitalWrite(1, HIGH);
так же прописываем читалки кнопок, например кнопку ВОСПР вешает на пин 10, конфигурируем пин: pinMode(10, INPUT);
в цикле опроса клавиатуры прописываем:
int VOSPR = 0; //задаем переменную хранящую значение кнопки 1-вкл, 0-выкл
читаем пин 10
VOSPR = digitalRead(10);
если нажали на воспроизведение в переменной VOSPR будет 1.
дальше идет блок обработки команд
if (VOSPR==1) // было нажато воспроизведение
{
digitalWrite(5, HIGH); // запускаем ведущий мотор (выбор скорости 9-19 можно сделать на отдельном пине)
delay(2000); // задержка 2 сек. на разгон тонвала
digitalWrite(2, HIGH); // врубаем магнит отвода тормозов
digitalWrite(1, HIGH); // подводим прижимной ролик
start_motor_play();
}
start_motor_play(); - это процедура старта моторов подающего и приемного узла, которая управляется с пинов ардуины в ШИМ режиме. 2 пина считывают фотодиоды с крыльчатки подкатушечников, и по их скорости идет регулировка импульсов ШИМа, чтобы выровнять натяжение ленты, в зависимости от кол-ва ленты. данная процедура требует калибровки.
тут можно сделать и кнопку 18-22, которая есть на Союзах, переключающая мощу движков. С этих же фотодиодов берем импульсы для счетчика, его выводим или на обычные сегментники, или на ЖК. я думаю что можно сделать и реальный счетчик, в метрах, а не в УЕ.
соответственно есть процедуры start_motor_rw(); и start_motor_fw(); для работы моторов в режиме перемотки. причем легко реализовать плавный старт и плавное снижение оборотов по датчикам подкатушечников, для более бережного обращения с лентой. процедуры вешаем на считывание кнопок перемотки.
кнопка стоп - все режимы останавливаем, включаем магниты тормозов.
если у нас подключен ЖК дисплей, то все режимы можно выводить на него, команды там простые. Если как обычно на светодиод, то digitalWrite(номер пина светодиода, HIGH); - все он загорелся. если надо мигающий, то пишем процедурку мигания, если надо многоцветный - тоже самое.
нужен реверс? ставим еще одну бошку, реле коммутации, и пишем процедурку переключения бошек (реле) и реверса движка. буквально десяток строк кода и все закрутилось.
нужен поиск по паузам? ставим бошку читалку с усилочком, кидаем на пин в аналоговом режиме, измеряем уровень, если уровень на сколько то мсек упал ниже порогового - кидаем команду стоп и через задержку плей.
нужны хитрозамученные режимы - все в ваших руках, как захотите, так и будет крутить. и все это на ОДНОЙ маленькой платке с питанием 5 вольт.
вот ПРИМЕРНО так выглядит программирование ардуины применительно к магнитофонам. конечно с первого раза код не заработает как надо, нужно все будет тестировать, где-то что-то подгонять, ставить задержки и т.д. но по итогу все это будет работать четко и надежно и с расширенным функционалом. (ЖК дисплеи, ДУ управление, счетчики, индикаторы и т.д,).
Социальные закладки