В данной статье мы разберем работу датчика линии.
Что требуется:
1. Контроллер DaVinci или любой другой аналог
2. Шилд А050
3. Quatro-модуль светодиод
4. Quatro-модуль датчик линии TRCT5000
5. Соединительные провода
Наш датчик оснащен как аналоговым, так цифровым портом. Сейчас мы соберем схему и через монитор порта посмотрим как работает датчик.
#define DIG 7 #define ANALOG A1 int dig = 0; void setup() { pinMode(DIG, INPUT); pinMode(ANALOG, INPUT); Serial.begin(9600); } void loop() { dig = digitalRead(DIG); Serial.print("A:"); Serial.print(analogRead(ANALOG)); Serial.print(", D:"); Serial.println(dig); delay(500); }
Мы видим, что если датчик поднести к черной границе, то аналоговые значения будут стремиться к цифре 1023, при этом цифровое значение будет равно нулю. А если датчик поднести к белой границе, то аналоговое значение будет стремиться к нулю, при этом цифровое будет равно единице.
Как вы видите, аналоговый канал работает в большом диапазоне и его можно настроить на то, чтобы датчик различал оттенки серого. Несмотря на то, что цифровой канал выдает только "0" и "1", его тоже можно настроить на распознавание оттенков. Для этого на плате установлен переменный резистор, для настройки чувствительности датчика.
Теперь мы рассмотрим как управлять светодиодом по аналоговому и цифровому каналам.
1. Подключение по аналоговому каналу.
Загрузим скетч:
#define ANALOG A1 #define LED 3 void setup() { pinMode(ANALOG, INPUT); pinMode(LED, OUTPUT); } void loop() { int value = analogRead(ANALOG); if (value < 500) { digitalWrite(LED, HIGH); } else { digitalWrite(LED, LOW); } }
Видим, что на белой границе светодиод загорается, а на черной затухает.
2. Подключение цифрового датчика.
Цифровой датчик линии на выходе дает 1 или 0. Если 1 - белый цвет, если 0 - черный или пустота.
Загрузим скетч:
#define DIG 7 #define LED 3 void setup() { pinMode(DIG, INPUT); pinMode(LED, OUTPUT); } void loop() { int value = digitalRead(DIG); if (value == HIGH) { digitalWrite(LED, HIGH); } else { digitalWrite(LED, LOW); } }
В итоге получаем тот же эффект: на белой границе светодиод загорается, а на черной - затухает.