Arduino. Используем фотопрерыватель

После разбора на комплектующие струйного принтера фирмы из двух букв, в руках оказался фотопрерыватель.Arduino. Используем фотопрерыватель

Задача

При помощи фотопрерывателя включать и выключать светодиод.

Для реализации потребуется

  1. Arduino;
  2. Отладочная плата;
  3. Соединительные провода;
  4. Фотопрерыватель;
  5. Резистор 220 Ом 2 шт.;
  6. Резистор 10 КОм;
  7. Светодиод.

Немного теории

Фотоперыватель — это спаренные инфракрасный светодиод и фототранзистор, которые размещены друг напротив друга в одном корпусе. Если между светодиодом и фототранзистором поместить непрозрачный предмет, то фототранзистор поменяет свое состояние, это изменение будем определять микроконтроллером.

Фотопрерыватели часто используют используют в офисной технике и роботостроении для определения положения движущихся элементов, всевозможных крышек, кареток. Зачастую используют в паре с диском на котором есть непрозрачные зубцы(по сути получается энкодер), таким образом можно узнать направление вращения(движения) и пройденный путь.

Реализация

Arduino. Используем фотопрерывательДля определения светодиода и фототранзистора используется маркировка «E» и «S» соответственно.

Подключение фотопрерывателя. К +5 В  подключаем резистор 220 Ом, к нему анод светодиода, катод подключаем к земле (GND). К +5 В подключаем резистор 10 КОм, к нему коллектор фототранзистора, эмиттер к земле (GND). Так же коллектор подключаем к ножке 8, через него мы и будем определять состояние.

Изменения состояния фотопрерывателя будем отражать на светодиоде, можно воспользоваться встроенным светодиодом, или же подключить внешний. К выходу D13 подключить резистор 220 Ом, к резистору подключаем анод светодиода, катод подключаем к выходу GND.

Код:

enum {IN_PIN = 8, LED_PIN = 13};

int detectState = 0; // переменная состояния фотопрерывателя

void setup() {

  pinMode(IN_PIN, INPUT);
  pinMode(LED_PIN, OUTPUT);

}

void loop() {

  detectState = digitalRead(IN_PIN);

  if (detectState == LOW) { // В зависимости от состояния фотопрерывателя
    digitalWrite(LED_PIN, HIGH); // включаем светодиод
  }
  else {
    digitalWrite(LED_PIN, LOW); // выключаем светодиод
  }

}

Демонстрация работы:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *