Arduino с оптопарами (Optocouplers)
Существует множество типов оптопар, и выбирать их нужно исходя из требований вашей схемы. Моей целью было создать автоматический спуск затвора для моей камеры Canon, поэтому схема включала 5V Arduino и Canon 40D, у которого на контактах спуска затвора около 3.2V. Благодаря относительно низким напряжениям, можно выбрать из множества подходящих оптопар. У меня уже была Fairchild 4N26, поэтому я использовал именно её.
4N26
Оптопары – это цифровые переключатели. Они работают с помощью светодиодного излучателя, спаренного с фотодетекторным транзистором. Это позволяет одной цепи управлять отдельной цепью без какого-либо электрического контакта между ними. По сути, если подать ток через контакты 1 и 2, зажигая светодиод, фотодетекторный транзистор обнаруживает свет от светодиода и позволяет току протекать через контакты 5 и 4. Отсутствие тока на контактах 1 и 2 означает, что ток не проходит через контакты 5 и 4.
Контакты 1 и 2 подключаются к Arduino, контакты 5 и 4 – к кабелю спуска затвора. Обратите внимание, что +5 вольт (VCC) от цифрового пина Arduino идут на контакт 1, а земля Arduino – на контакт 2. Необходимо добавить подходящий резистор на входе (см. ниже). Провод спуска от кабеля спуска затвора идёт на контакт 5, а земля от кабеля спуска – на контакт 4. Если подключить наоборот, работать не будет.
Основные параметры, которые нужно знать при выборе оптопары:
Коэффициент передачи тока (CTR)
Время переключения (полоса пропускания)
Максимальное напряжение коллектор/эмиттер
Входной ток (IF)
Коэффициент передачи тока (CTR)
CTR – это отношение тока коллектора фототранзистора к прямому току светодиодного излучателя. Он аналогичен коэффициенту усиления постоянного тока транзистора и выражается в процентах.
У большинства оптопар CTR составляет от 10% до 50%. У Fairchild 4N26 CTR около 20%. Значение CTR меняется в зависимости от входного тока и температуры окружающей среды. В качестве общего правила – оптопары наиболее эффективны при токе около 10 мА. CTR = (IC/IF) * 100. Имейте в виду, что это лишь общее руководство, и вам следует проверить техническое описание для получения точной информации. Согласно приведённой ниже диаграмме из технического описания, Fairchild 4N25 наиболее эффективна при токе около 6 мА (вершина кривой).
CTR зависит от входного тока светодиода (IF), и CTR уменьшается от максимальной точки при увеличении и уменьшении входного тока. Если посмотреть на диаграмму ниже, вершина кривой находится в районе 6 мА. Это точка наибольшей эффективности микросхемы. Обратите внимание, что кривая значительно круче на стороне малых токов (IF от 0 мА до 6 мА) по сравнению со стороной больших токов (IF от 6 мА до 20 мА), и поэтому лучше иметь немного больший ток на входе, чем немного меньший. Недостаток в 1 мА имеет гораздо больший эффект, чем избыток в 1 мА.
CTR зависит от коэффициента усиления тока (hfe) транзистора, напряжения питания фототранзистора, прямого тока через светодиод и рабочей температуры. CTR = (IC/IF) * 100.
Время переключения
Это время, необходимое оптопаре для включения или выключения. У 4N26 время включения составляет 2 мкс (2 микросекунды или 2 миллионных доли секунды), а время выключения – 2 мкс. Для моих целей этого более чем достаточно.
Максимальное напряжение коллектор/эмиттер
Это максимальное напряжение, которое оптопара может выдержать на выходной стороне. Для 4N26 оно составляет 30V. Поскольку я хочу использовать её с Canon 40D, у которого на кабеле спуска затвора около 3.2V – этого более чем достаточно.
Входной ток
Используется для расчёта номинала резистора на входной стороне. Обычно это около 10 мА.
Можно добавить диод на входную сторону для защиты устройства от обратного напряжения, но поскольку используемые мной напряжения ниже порога обратного напряжения микросхемы, диод не нужен. Максимальное обратное напряжение 4N26 составляет 6V (из технического описания), и поскольку я управляю им от 5V Arduino, я не повредю микросхему, если перепутаю провода.
У моей 4N26 прямое напряжение 1.2V (при 10 мА). Итак, используя r = v / i, нам нужен резистор: 5V - 1.2V = 3.8V / 0.010 = 380 Ом на входной стороне. 380 – это минимум, более высокие значения тоже подойдут (можно использовать больше, но не меньше). Ближайший номинал, который у меня был – 470 Ом.
В зависимости от вашей схемы, вам может потребоваться добавить резистор и на другую сторону оптопары.
Тестовая схема
Чтобы начать и убедиться, что всё работает, прежде чем подключать камеру, я создал тестовую схему. Это просто оптопара с Arduino, подключённой с одной стороны, и светодиод с батареей – с другой. Оптопара подключена к пину 12 на Arduino. Две цепи полностью разделены. Нет электрического контакта между стороной Arduino и стороной батареи/светодиода. Хотя я уверен, что если пропустить через одну сторону достаточно тока и превысить пределы микросхемы, можно вызвать короткое замыкание.
Я включил небольшой резистор на выходной стороне.
Для тестирования схемы я модифицировал скетч Blink, добавив оптопару на пин 12 и переключая его в HIGH/LOW одновременно с пином светодиода.
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
int opto = 12;
// the setup routine runs once when you press reset:
void setup()
{
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
pinMode(opto, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop()
{
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
digitalWrite(opto, HIGH);
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
digitalWrite(opto, LOW);
delay(1000); // wait for a second
}
Это сработало отлично – зелёный светодиод мигал синхронно со светодиодом на пине 13 Arduino. Следующим шагом было подключение камеры.