Бесконтактные концевые выключатели с принтеров и Arduino
Те, кто хоть раз разбирал принтер или сканер, наверняка обращали внимание на концевые выключатели.
Они устанавливаются в конце хода каретки и служат для генерации сигнала, после которого двигатель перестает вращаться. Подобные устройства используються не только в бытовой технике, но и во многих проектах на Arduino.
Разные виды концевых выключателей показаны на фотографии ниже:

Некоторые из них установлены в пластиковые корпуса и, соответственно, отлично подойдут для проектов на Arduino.
Принцип действия бесконтактных концевых выключателей
Самые распространенные бесконтактные концевые выключатели состоят из инфракрасного светодиода и фоторезистора, которые расположены друг напротив друга. Когда светодиод дает освещение на фоторезистор, ток проходит, когда светодиод блокируется, ток не будет проходить через фото транзистор и в этом случае на выходе будет генерироваться сигнал low, который может использоваться нашим Arduino в дальнейшем.
Светодиод слева и фототранзистор справа:

Контакты концевых выключателей
Для того, чтобы использовать оптический концевой выключатель в вашем будущем проекте, надо определиться с его контактами. На плате выведено три контакта: Vcc (питание), Gnd (земля) и Sig (сигнал). Vcc подключается к аноду светодиода (+), Sig подключается к коллектору фототранзистора (+), а Gnd подключается к двум контактам: катоду светодиода и эмиттеру фототранзистора.
На фото ниже приведен пример концевого выключателя, который смонтирован на отдельную плату. Для того, чтобы определиться с контактами, плату надо перевернуть и найти необходимые обозначения.

Светодиод расположен справа, а фототранзистор слева. Катод условно обозначен буквой К.

Если вам достался концевой выключатель, который просто установлен в пластиковом корпусе, без распаянной монтажной платы, придется определить светодиод, а где фотодиод с помощью мультиметра. Для этого надо найти контакт, который идет одновременно и к светодиоду и к фототранзистору. Это будет контакт Gnd. Контакт на светодиоде, который не подключен к другому контакту (не Gnd) является сигналом. Обычно фотодиод затемнен или вообще черный. Последний оставшийся контакт будет Vcc, который идет к аноду светодиода.

Бесконтактный концевой выключатель и Arduino
После того как вы определились с каждым контактом, можно переходить к созданию небольшой электрической цепи, в которой ваш концевой выключатель сможет передавать сигнал на микроконтроллер (Arduino). Электросхема приведена на рисунке ниже.

После сборки электросхемы, у вас должно получиться нечто, напоминающее рисунок ниже.

Проверить ваш небольшой проект с Arduino можно с помощью скетча, приведенного ниже. Этот скетч был взят с reprap-вики и немного модернизирован. Не забывайте, что контакт сигнала надо подключить к вашему Arduino. При этом можно использовать любой свободный цифровой контакт.
#define ENDSTOP_PIN 2 // какой пин мы используем?
void setup()
{
pinMode(ENDSTOP_PIN, INPUT);
Serial.begin(9600);
Serial.println(“Starting opto endstop exerciser.”);
}
void loop()
{
if (digitalRead(ENDSTOP_PIN))
{
if (0)
Serial.println(“open.”);
else
Serial.println(“blocked.”);
}
else
{
Serial.println(“open.”);
}
delay(500);
}
Оставляйте Ваши комментарии, вопросы и делитесь личным опытом ниже. В дискуссии часто рождаются новые идеи и проекты!