Управление светодиодом с помощью датчика линии

В данной статье мы разберем работу датчика линии.

Что требуется:

1. Макетная плата

2. Arduino UNO или любой другой аналог.

3. Резистор 220 Ом

4. Светодиод

5. Датчик линии TRCT5000

Наш датчик оснащен как аналоговым, так цифровым портом.

 

1. Подключение аналогового датчика.

 

Аналоговый датчик линии способен различать не только черный и белый цвет, но и оттенки серого. Это дает возможность очень точно контролировать процесс перехода от черного к белому цвету и позволяет намного точнее настроить ваше устройство.

Подключение к плате Arduino очень простое. Vcc подключаем к пину 5V, GND соответственно к GND на плате и A0 подключаем к любому аналоговому пину, мы выбрали A0.

Схема подключения:

Далее выполняем следующий код:

#define LED 3

void setup(){
  Serial.begin(9600);//скорость работы порта
  pinMode(3, OUTPUT);//настройка пина в режим выхода
}

void loop(){
  //считываем значения с датчика линии в переменную value
  //value принимает значения от 0 до 1023
  int value = analogRead(A0);
  //вывод значения value в монитор порта
  Serial.println(value);
  delay(100);
  //в мониторе порта определяем границу между цветами
  //в нашем случае граница равна 500
  //если цвет не черный, то включаем светодиод
  if(value < 500){
     digitalWrite(LED, HIGH);
     //если черный цвет, то отключаем
  } else {
     digitalWrite(LED, LOW); 
  }
}

 

2. Подключение цифрового датчика.

 

Цифровой датчик линии на выходе дает 1 или 0. Если 1 - белый цвет, если 0 - черный или пустота.

Подключение к плате Arduino аналогично подключению аналогового датчика, но вместо разъема A0 используется D0. D0 подключаем к любому цифровому пину Arduino, мы выбрали пин 2.

Схема подключения:

Далее выполняем следующий код:

#define LED 3
#define LINE 2

void setup(){
  Serial.begin(9600);//скорость работы порта
  pinMode(3, OUTPUT);//настройка пина в режим выхода
}

void loop(){
  //считываем значения с датчика линии в переменную value
  //value будет принимать значения 0 или 1
 int value = digitalRead(LINE);
 //вывод значения value в монитор порта
 Serial.println(value);
 delay(100);
 //если value равно 1, то цвет белый. Включаем светодиод
 if(value == HIGH){
   digitalWrite(LED, HIGH);
 //если value равно 0, то цвет черный или пустота. Отключаем светодиод
 } else {
   digitalWrite(LED, LOW); 
 }
}